zeppelin
zeppelin copied to clipboard
[ZEPPELIN-5165]. fix bug in interpreter.cmd-0.9.0 Windows
What is this PR for?
- For
zeppelin-0.9.0, Windows,bin\interpreter.cmdcallsRemoteInterpreterServerbut missesgroupIdparamters, resulting inArrayIndexOutOfBoundsExceptionwhen any paragraphs are executed.
What type of PR is it?
[Bug Fix]
Todos
- [x] - change
bin\interpreter.cmd
What is the Jira issue?
- Open an issue on Jira ZEPPELIN-5165
How should this be tested?
- Running zeppelin 0.9.0 on Windows.
Screenshots (if appropriate)
The bug snapshot:

Sorry, I don't know why changing the .cmd file causes core / test-core-modules (hadoop2) failed above. Could anyone help me? Thanks.
I have restarted the CI process.
I have restarted the CI process.
Hi @Reamer, Thanks!
I found the checks failed at zeppelin-integration at ParagraphActionsIT#testSingleDynamicFormCheckboxForm.
I ran the zeppelin-integration test in Mac OS 10.14.1 but got different results.
In my test, testSingleDynamicFormCheckboxForm passed while three tests in InterpreterModeActionsIT failed. Some error logs are as follows. Is it caused by the operating system?
java.lang.AssertionError: The number of python process is
Expected: "1"
but: was "0"
Expected :1
Actual :0
<Click to see difference>
at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
at org.junit.Assert.assertThat(Assert.java:956)
at org.junit.rules.ErrorCollector$1.call(ErrorCollector.java:65)
at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:78)
at org.junit.rules.ErrorCollector.checkThat(ErrorCollector.java:63)
at org.apache.zeppelin.integration.InterpreterModeActionsIT.testPerUserIsolatedAction(InterpreterModeActionsIT.java:652)
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.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.rules.Verifier$1.evaluate(Verifier.java:35)
at org.junit.rules.RunRules.evaluate(RunRules.java:20)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runners.Suite.runChild(Suite.java:128)
at org.junit.runners.Suite.runChild(Suite.java:27)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
Even after applying the fix to bin/interpreter.cmd, it fails with a Classpath error
INFO [2021-01-30 20:16:10,905] ({RegisterThread} RemoteInterpreterServer.java[run]:595) - Start registration
INFO [2021-01-30 20:16:10,905] ({RemoteInterpreterServer-Thread} RemoteInterpreterServer.java[run]:193) - Launching ThriftServer at 192.168.0.50:50936
INFO [2021-01-30 20:16:12,014] ({RegisterThread} RemoteInterpreterServer.java[run]:609) - Registering interpreter process
INFO [2021-01-30 20:16:12,060] ({RegisterThread} RemoteInterpreterServer.java[run]:611) - Registered interpreter process
INFO [2021-01-30 20:16:12,060] ({RegisterThread} RemoteInterpreterServer.java[run]:632) - Registration finished
WARN [2021-01-30 20:16:20,926] ({pool-2-thread-1} ZeppelinConfiguration.java[<init>]:85) - Failed to load XML configuration, proceeding with a default,for a stacktrace activate the debug log
INFO [2021-01-30 20:16:20,931] ({pool-2-thread-1} ZeppelinConfiguration.java[create]:135) - Server Host: 127.0.0.1
INFO [2021-01-30 20:16:20,932] ({pool-2-thread-1} ZeppelinConfiguration.java[create]:139) - Server Port: 8080
INFO [2021-01-30 20:16:20,932] ({pool-2-thread-1} ZeppelinConfiguration.java[create]:141) - Context Path: /
INFO [2021-01-30 20:16:20,932] ({pool-2-thread-1} ZeppelinConfiguration.java[create]:142) - Zeppelin Version: 0.10.0-SNAPSHOT
INFO [2021-01-30 20:16:20,935] ({pool-2-thread-1} RemoteInterpreterServer.java[createLifecycleManager]:286) - Creating interpreter lifecycle manager: org.apache.zeppelin.interpreter.lifecycle.NullLifecycleManager
INFO [2021-01-30 20:16:20,935] ({pool-2-thread-1} RemoteInterpreterServer.java[init]:229) - Creating RemoteInterpreterEventClient with connection pool size: 10
ERROR [2021-01-30 20:16:21,058] ({pool-2-thread-1} RemoteInterpreterServer.java[createInterpreter]:391) - org.apache.zeppelin.spark.SparkInterpreter
java.lang.ClassNotFoundException: org.apache.zeppelin.spark.SparkInterpreter
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at org.apache.zeppelin.interpreter.remote.RemoteInterpreterServer.createInterpreter(RemoteInterpreterServer.java:374)
at org.apache.zeppelin.interpreter.thrift.RemoteInterpreterService$Processor$createInterpreter.getResult(RemoteInterpreterService.java:1603)
at org.apache.zeppelin.interpreter.thrift.RemoteInterpreterService$Processor$createInterpreter.getResult(RemoteInterpreterService.java:1)
at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:38)
at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:38)
at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:313)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
It looks like we need to keep on eyes. Can someone help to review it?
@jongyoul We don't have CI for windows platform, so it is hard to keep quality of zeppelin on windows. If we want to support zeppelin on windows, I think we should enable CI for windows platform.
Yes, as I remember, we already talked about this issue before. I also would like to prepare for Windows CI but we might not have much knowledge for it. What can we do?
I have no better idea, unless someone in community can help to do that