Karel Kolman created FLINK-10925: ------------------------------------ Summary: NPE in PythonPlanStreamer Key: FLINK-10925 URL: https://issues.apache.org/jira/browse/FLINK-10925 Project: Flink Issue Type: Bug Affects Versions: 1.6.2 Reporter: Karel Kolman
Encountered the following issue while testing Python Batch API: {noformat} root@a0810aa4b51b:/opt/flink# ./bin/pyflink.sh examples/python/batch/WordCount.py - Starting execution of program Failed to run plan: null The program didn't contain a Flink job. Perhaps you forgot to call execute() on the execution environment. {noformat} with logs containing the following stacktrace: {noformat} 2018-11-19 09:11:51,036 ERROR org.apache.flink.python.api.PythonPlanBinder - Failed to run plan. java.lang.NullPointerException at org.apache.flink.python.api.streaming.plan.PythonPlanStreamer.close(PythonPlanStreamer.java:129) at org.apache.flink.python.api.PythonPlanBinder.runPlan(PythonPlanBinder.java:201) at org.apache.flink.python.api.PythonPlanBinder.main(PythonPlanBinder.java:98) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.flink.client.program.PackagedProgram.callMainMethod(PackagedProgram.java:529) at org.apache.flink.client.program.PackagedProgram.invokeInteractiveModeForExecution(PackagedProgram.java:421) at org.apache.flink.client.program.ClusterClient.run(ClusterClient.java:426){noformat} My root cause was not having Python installed on the docker image being used. Patching Flink with {noformat} diff --git a/flink-libraries/flink-python/src/main/java/org/apache/flink/python/api/streaming/plan/PythonPlanStreamer.java b/flink-libraries/flink-python/src/main/java/org/apache/flink/python/api/streaming/plan/PythonPlanStreamer.java index d25f3d51ff..3e6a068d8a 100644 --- a/flink-libraries/flink-python/src/main/java/org/apache/flink/python/api/streaming/plan/PythonPlanStreamer.java +++ b/flink-libraries/flink-python/src/main/java/org/apache/flink/python/api/streaming/plan/PythonPlanStreamer.java @@ -126,7 +126,9 @@ public class PythonPlanStreamer { process.destroy(); } finally { try { - server.close(); + if (server != null) { + server.close(); + } } catch (IOException e) { LOG.error("Failed to close socket.", e); } {noformat} an attempt to run Python Batch API example will fail with {noformat} root@33837d1efa28:/opt/flink# ./bin/pyflink.sh examples/python/batch/WordCount.py - Starting execution of program Failed to run plan: python does not point to a valid python binary. The program didn't contain a Flink job. Perhaps you forgot to call execute() on the execution environment {noformat} which correctly identifes the problem you are facing - missing python. -- This message was sent by Atlassian JIRA (v7.6.3#76005)