I have problem with python scripting while reindexing.
elasticsearch verion 5.2.1 installed in C:\httpd\elasticsearch-5.2.1, with lang-python plugin installed.
OS is windows 10
Here's my script:
POST _reindex
{
"size": 1,
"source": {
"index": "test-index"
},
"dest": {
"index": "temp"
},
"script": {
"file": "testscript",
"lang": "python",
"params": {
"factor": 2
}
}
}
and here is testscript.py in config\scripts directory:
try:
import json
res = "{\"result\": \"ok\"}"
obj = json.loads(res)
data = obj["result"]
except Exception as e:
ctx["_source"]["nlp-error"] = e
ctx["_source"]["nlp-result"] = data
and here is plugin-security.policy in plugins\lang-python directory:
grant {
// needed to generate runtime classes
permission java.lang.RuntimePermission "createClassLoader";
// needed by PySystemState init (TODO: see if we can avoid this)
permission java.lang.RuntimePermission "getClassLoader";
// Standard set of classes
permission org.elasticsearch.script.ClassPermission "<<STANDARD>>";
permission java.io.FilePermission "C:\\httpd\\elasticsearch-5.2.1\\plugins\\lang-python\\-", "read";
};
When I'm trying to run reindex script, I get the following error:
{
"error": {
"root_cause": [
{
"type": "py_exception",
"reason": null
}
],
"type": "py_exception",
"reason": null,
"caused_by": {
"type": "access_control_exception",
"reason": "access denied (\"java.io.FilePermission\" \"C:\\httpd\\elasticsearch-5.2.1\\plugins\\lang-python\\jython-standalone-2.7.0.jar\" \"read\")"
}
},
"status": 500
}
Here is log:
[2017-02-21T19:04:06,960][WARN ][r.suppressed ] path: /_reindex, params: {}
org.python.core.PyException: null
at org.python.core.Py.JavaError(Py.java:546) ~[?:?]
at org.python.core.Py.setException(Py.java:1316) ~[?:?]
at org.python.pycode._pyx7.f$0(<script>:11) ~[?:?]
at org.python.pycode._pyx7.call_function(<script>) ~[?:?]
at org.python.core.PyTableCode.call(PyTableCode.java:167) ~[?:?]
at org.python.core.PyCode.call(PyCode.java:18) ~[?:?]
at org.python.core.Py.runCode(Py.java:1386) ~[?:?]
at org.python.core.__builtin__.eval(__builtin__.java:497) ~[?:?]
at org.python.core.__builtin__.eval(__builtin__.java:501) ~[?:?]
at org.python.util.PythonInterpreter.eval(PythonInterpreter.java:259) ~[?:?]
at org.elasticsearch.script.python.PythonScriptEngineService$4.run(PythonScriptEngineService.java:275) ~[?:?]
at org.elasticsearch.script.python.PythonScriptEngineService$4.run(PythonScriptEngineService.java:272) ~[?:?]
at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_111]
at org.elasticsearch.script.python.PythonScriptEngineService.evalRestricted(PythonScriptEngineService.java:272) ~[?:?]
at org.elasticsearch.script.python.PythonScriptEngineService.access$100(PythonScriptEngineService.java:55) ~[?:?]
at org.elasticsearch.script.python.PythonScriptEngineService$PythonExecutableScript.run(PythonScriptEngineService.java:176) ~[?:?]
at org.elasticsearch.index.reindex.AbstractAsyncBulkIndexByScrollAction$ScriptApplier.apply(AbstractAsyncBulkIndexByScrollAction.java:476) ~[reindex-5.2.1.jar:5.2.1]
at org.elasticsearch.index.reindex.AbstractAsyncBulkIndexByScrollAction$ScriptApplier.apply(AbstractAsyncBulkIndexByScrollAction.java:423) ~[reindex-5.2.1.jar:5.2.1]
at org.elasticsearch.index.reindex.AbstractAsyncBulkIndexByScrollAction.buildBulk(AbstractAsyncBulkIndexByScrollAction.java:97) ~[reindex-5.2.1.jar:5.2.1]
at org.elasticsearch.index.reindex.AbstractAsyncBulkByScrollAction.prepareBulkRequest(AbstractAsyncBulkByScrollAction.java:209) [reindex-5.2.1.jar:5.2.1]
at org.elasticsearch.index.reindex.AbstractAsyncBulkByScrollAction$1.doRun(AbstractAsyncBulkByScrollAction.java:174) [reindex-5.2.1.jar:5.2.1]
at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:596) [elasticsearch-5.2.1.jar:5.2.1]
at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37) [elasticsearch-5.2.1.jar:5.2.1]
at org.elasticsearch.index.reindex.WorkingBulkByScrollTask$RunOnce.doRun(WorkingBulkByScrollTask.java:316) [reindex-5.2.1.jar:5.2.1]
at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37) [elasticsearch-5.2.1.jar:5.2.1]
at org.elasticsearch.index.reindex.WorkingBulkByScrollTask$DelayedPrepareBulkRequest$1.doRun(WorkingBulkByScrollTask.java:246) [reindex-5.2.1.jar:5.2.1]
at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:596) [elasticsearch-5.2.1.jar:5.2.1]
at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37) [elasticsearch-5.2.1.jar:5.2.1]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_111]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_111]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_111]
Caused by: java.security.AccessControlException: access denied ("java.io.FilePermission" "C:\httpd\elasticsearch-5.2.1\plugins\lang-python\jython-standalone-2.7.0.jar" "read")
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:472) ~[?:1.8.0_111]
at java.security.AccessController.checkPermission(AccessController.java:884) ~[?:1.8.0_111]
at java.lang.SecurityManager.checkPermission(SecurityManager.java:549) ~[?:1.8.0_111]
at java.lang.SecurityManager.checkRead(SecurityManager.java:888) ~[?:1.8.0_111]
at java.util.zip.ZipFile.<init>(ZipFile.java:210) ~[?:1.8.0_111]
at java.util.zip.ZipFile.<init>(ZipFile.java:149) ~[?:1.8.0_111]
at java.util.zip.ZipFile.<init>(ZipFile.java:163) ~[?:1.8.0_111]
at org.python.modules.zipimport.zipimporter.makeBundle(zipimporter.java:304) ~[?:?]
at org.python.modules.zipimport.zipimporter.makeBundle(zipimporter.java:38) ~[?:?]
at org.python.core.util.importer.getModuleCode(importer.java:197) ~[?:?]
at org.python.core.util.importer.importer_load_module(importer.java:95) ~[?:?]
at org.python.modules.zipimport.zipimporter.zipimporter_load_module(zipimporter.java:163) ~[?:?]
at org.python.modules.zipimport.zipimporter$zipimporter_load_module_exposer.__call__(Unknown Source) ~[?:?]
Can anyone please help me?
Thanks.