Xi Shen created ZEPPELIN-1548: --------------------------------- Summary: ConcurrentModificationException when trying to create JDBC interpreter Key: ZEPPELIN-1548 URL: https://issues.apache.org/jira/browse/ZEPPELIN-1548 Project: Zeppelin Issue Type: Bug Components: Interpreters Environment: - docker - jdk-8 - hadoop v2.7.3 *binary package from web* - zeppelin v0.6.1 *binary package from web* - hive v2.1.0 *binary package from web* Reporter: Xi Shen
Environment set up: - one docker container running Hadoop in pseudo-cluster mode - one docker container running Hive2 - one docker container running Zeppelin After Zeppelin startup, I updated the jdbc interpreter to use {{hive.url=jdbc:hive2://hive:1000}}. And I added the following dependencies: - org.apache.hive:hive-jdbc:2.1.0 - org.apache.hadoop:hadoop-common:2.7.3 After I saved the configuration, I created a new notebook and executed: {code} %jdbc(hive) show tables {code} But I got: {code} java.net.ConnectException: Connection refused at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:589) at org.apache.thrift.transport.TSocket.open(TSocket.java:182) at org.apache.zeppelin.interpreter.remote.ClientFactory.create(ClientFactory.java:51) at org.apache.zeppelin.interpreter.remote.ClientFactory.create(ClientFactory.java:37) at org.apache.commons.pool2.BasePooledObjectFactory.makeObject(BasePooledObjectFactory.java:60) at org.apache.commons.pool2.impl.GenericObjectPool.create(GenericObjectPool.java:861) at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:435) at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:363) at org.apache.zeppelin.interpreter.remote.RemoteInterpreterProcess.getClient(RemoteInterpreterProcess.java:189) at org.apache.zeppelin.interpreter.remote.RemoteInterpreter.init(RemoteInterpreter.java:163) at org.apache.zeppelin.interpreter.remote.RemoteInterpreter.getFormType(RemoteInterpreter.java:328) at org.apache.zeppelin.interpreter.LazyOpenInterpreter.getFormType(LazyOpenInterpreter.java:105) at org.apache.zeppelin.notebook.Paragraph.jobRun(Paragraph.java:260) at org.apache.zeppelin.scheduler.Job.run(Job.java:176) at org.apache.zeppelin.scheduler.RemoteScheduler$JobRunner.run(RemoteScheduler.java:328) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) {code} In the {{./logs}} directory, I did not find a *zeppelin-\*-jdbc\*.log* file, which I think a clear indication that the interpreter never gets created. Here's some snippet of the *zeppelin\*.log* file: {code} INFO [2016-10-14 02:35:28,480] ({qtp88558700-16} DependencyResolver.java[load]:100) - copy /opt/zeppelin/local-repo/io/netty/netty/3.6.2.Final/netty-3.6.2.Final.jar to /opt/zeppelin/local-repo/2BY2TS152 INFO [2016-10-14 02:35:28,481] ({qtp88558700-16} DependencyResolver.java[load]:100) - copy /opt/zeppelin/local-repo/org/apache/commons/commons-compress/1.4.1/commons-compress-1.4.1.jar to /opt/zeppelin/local-repo/2BY2TS152 INFO [2016-10-14 02:35:28,481] ({qtp88558700-16} DependencyResolver.java[load]:100) - copy /opt/zeppelin/local-repo/org/tukaani/xz/1.0/xz-1.0.jar to /opt/zeppelin/local-repo/2BY2TS152 INFO [2016-10-14 02:35:28,567] ({qtp88558700-459} InterpreterFactory.java[createInterpretersForNote]:576) - Create interpreter instance jdbc for note 2BYEFJRDP INFO [2016-10-14 02:35:28,567] ({qtp88558700-459} InterpreterFactory.java[createInterpretersForNote]:606) - Interpreter org.apache.zeppelin.jdbc.JDBCInterpreter 1044622404 created INFO [2016-10-14 02:35:28,583] ({pool-1-thread-7} SchedulerFactory.java[jobStarted]:131) - Job paragraph_1476353914739_-698717456 started by scheduler org.apache.zeppelin.interpreter.remote.RemoteInterpretershared_session1000964802 INFO [2016-10-14 02:35:28,584] ({pool-1-thread-7} Paragraph.java[jobRun]:252) - run paragraph 20161013-101834_778249242 using jdbc org.apache.zeppelin.interpreter.LazyOpenInterpreter@3e43ac44 INFO [2016-10-14 02:35:28,591] ({pool-1-thread-7} RemoteInterpreterProcess.java[reference]:148) - Run interpreter process [/opt/zeppelin/bin/interpreter.sh, -d, /opt/zeppelin/interpreter/jdbc, -p, 33939, -l, /opt/zeppelin/local-repo/2BY2TS152] INFO [2016-10-14 02:35:28,726] ({qtp88558700-14} NotebookServer.java[onClose]:227) - Closed connection to 192.168.99.1 : 61687. (1006) EOF: Broken pipe ERROR [2016-10-14 02:35:28,757] ({qtp88558700-14} NotebookServer.java[onMessage]:221) - Can't handle message java.util.ConcurrentModificationException at java.util.LinkedList$ListItr.checkForComodification(LinkedList.java:966) at java.util.LinkedList$ListItr.next(LinkedList.java:888) at org.apache.zeppelin.socket.NotebookServer.broadcast(NotebookServer.java:316) at org.apache.zeppelin.socket.NotebookServer.updateParagraph(NotebookServer.java:602) at org.apache.zeppelin.socket.NotebookServer.onMessage(NotebookServer.java:174) at org.apache.zeppelin.socket.NotebookSocket.onWebSocketText(NotebookSocket.java:56) {code} I think this one corresponds to the one I saw from the web UI: {code} Caused by: java.net.ConnectException: Connection refused at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:589) at org.apache.thrift.transport.TSocket.open(TSocket.java:182) ... 9 more {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)