[ 
https://issues.apache.org/jira/browse/DRILL-1735?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Daniel Barclay (Drill/MapR) updated DRILL-1735:
-----------------------------------------------
    Description: 
When the Drill JDBC driver is used in local mode (as  
DriverManager.getConnection("jdbc:drill:zk=local", ... ), the close() method 
doesn't free resources:  Calling getConnection() and then close() and then 
repeating that pair of calls enough times results in an exception, the root 
cause exeception of which is an IOException saying "Too many open files":



  was:
When the Drill JDBC driver is used in local mode (as  
DriverManager.getConnection("jdbc:drill:zk=local", ... ), the close() method 
doesn't free resources:  Calling getConnection() and then close() and then 
repeating that pair of calls enough times results in an exception, the root 
cause exeception of which is an IOException saying "Too many open files":

java.sql.SQLException: Failure while attempting to start Drillbit in embedded 
mode.
        at 
org.apache.drill.jdbc.DrillConnectionImpl.<init>(DrillConnectionImpl.java:81)
        at 
org.apache.drill.jdbc.DrillJdbc41Factory$DrillJdbc41Connection.<init>(DrillJdbc41Factory.java:88)
        at 
org.apache.drill.jdbc.DrillJdbc41Factory.newDrillConnection(DrillJdbc41Factory.java:57)
        at 
org.apache.drill.jdbc.DrillJdbc41Factory.newDrillConnection(DrillJdbc41Factory.java:1)
        at 
org.apache.drill.jdbc.DrillFactory.newConnection(DrillFactory.java:51)
        at 
net.hydromatic.avatica.UnregisteredDriver.connect(UnregisteredDriver.java:126)
        at java.sql.DriverManager.getConnection(DriverManager.java:571)
        at java.sql.DriverManager.getConnection(DriverManager.java:187)
        at 
temp.BugXxxxCloseDoesntCloseTest.testBug(BugXxxxCloseDoesntCloseTest.java:26)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at 
org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
        at 
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
        at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
        at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
        at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
        at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
Caused by: java.lang.IllegalStateException: failed to create a child event loop
        at 
io.netty.util.concurrent.MultithreadEventExecutorGroup.<init>(MultithreadEventExecutorGroup.java:68)
        at 
io.netty.channel.MultithreadEventLoopGroup.<init>(MultithreadEventLoopGroup.java:49)
        at 
io.netty.channel.nio.NioEventLoopGroup.<init>(NioEventLoopGroup.java:61)
        at 
io.netty.channel.nio.NioEventLoopGroup.<init>(NioEventLoopGroup.java:52)
        at 
org.apache.drill.exec.rpc.TransportCheck.createEventLoopGroup(TransportCheck.java:75)
        at 
org.apache.drill.exec.server.BootStrapContext.<init>(BootStrapContext.java:45)
        at org.apache.drill.exec.server.Drillbit.<init>(Drillbit.java:95)
        at 
org.apache.drill.jdbc.DrillConnectionImpl.<init>(DrillConnectionImpl.java:78)
        ... 18 more
Caused by: io.netty.channel.ChannelException: failed to open a new selector
        at io.netty.channel.nio.NioEventLoop.openSelector(NioEventLoop.java:128)
        at io.netty.channel.nio.NioEventLoop.<init>(NioEventLoop.java:120)
        at 
io.netty.channel.nio.NioEventLoopGroup.newChild(NioEventLoopGroup.java:87)
        at 
io.netty.util.concurrent.MultithreadEventExecutorGroup.<init>(MultithreadEventExecutorGroup.java:64)
        ... 25 more
Caused by: java.io.IOException: Too many open files
        at sun.nio.ch.IOUtil.makePipe(Native Method)
        at io.netty.channel.nio.NioEventLoop.openSelector(NioEventLoop.java:126)
        ... 28 more







java.sql.SQLException: Failure while attempting to start Drillbit in embedded 
mode.
        at 
org.apache.drill.jdbc.DrillConnectionImpl.<init>(DrillConnectionImpl.java:81)
        at 
org.apache.drill.jdbc.DrillJdbc41Factory$DrillJdbc41Connection.<init>(DrillJdbc41Factory.java:88)
        at 
org.apache.drill.jdbc.DrillJdbc41Factory.newDrillConnection(DrillJdbc41Factory.java:57)
        at 
org.apache.drill.jdbc.DrillJdbc41Factory.newDrillConnection(DrillJdbc41Factory.java:1)
        at 
org.apache.drill.jdbc.DrillFactory.newConnection(DrillFactory.java:51)
        at 
net.hydromatic.avatica.UnregisteredDriver.connect(UnregisteredDriver.java:126)
        at java.sql.DriverManager.getConnection(DriverManager.java:571)
        at java.sql.DriverManager.getConnection(DriverManager.java:187)
        at 
org.apache.drill.jdbc.test.BugXxxxCloseDoesntCloseTest.testBug(BugXxxxCloseDoesntCloseTest.java:42)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at 
org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
        at 
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
        at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
        at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
        at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
        at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
Caused by: java.lang.IllegalStateException: failed to create a child event loop
        at 
io.netty.util.concurrent.MultithreadEventExecutorGroup.<init>(MultithreadEventExecutorGroup.java:68)
        at 
io.netty.channel.MultithreadEventLoopGroup.<init>(MultithreadEventLoopGroup.java:49)
        at 
io.netty.channel.nio.NioEventLoopGroup.<init>(NioEventLoopGroup.java:61)
        at 
io.netty.channel.nio.NioEventLoopGroup.<init>(NioEventLoopGroup.java:52)
        at 
org.apache.drill.exec.rpc.TransportCheck.createEventLoopGroup(TransportCheck.java:75)
        at 
org.apache.drill.exec.server.BootStrapContext.<init>(BootStrapContext.java:45)
        at org.apache.drill.exec.server.Drillbit.<init>(Drillbit.java:95)
        at 
org.apache.drill.jdbc.DrillConnectionImpl.<init>(DrillConnectionImpl.java:78)
        ... 18 more
Caused by: io.netty.channel.ChannelException: failed to open a new selector
        at io.netty.channel.nio.NioEventLoop.openSelector(NioEventLoop.java:128)
        at io.netty.channel.nio.NioEventLoop.<init>(NioEventLoop.java:120)
        at 
io.netty.channel.nio.NioEventLoopGroup.newChild(NioEventLoopGroup.java:87)
        at 
io.netty.util.concurrent.MultithreadEventExecutorGroup.<init>(MultithreadEventExecutorGroup.java:64)
        ... 25 more
Caused by: java.io.IOException: Too many open files
        at sun.nio.ch.IOUtil.makePipe(Native Method)
        at io.netty.channel.nio.NioEventLoop.openSelector(NioEventLoop.java:126)
        ... 28 more




> JDBC driver's close() leaks resources in local mode
> ---------------------------------------------------
>
>                 Key: DRILL-1735
>                 URL: https://issues.apache.org/jira/browse/DRILL-1735
>             Project: Apache Drill
>          Issue Type: Bug
>            Reporter: Daniel Barclay (Drill/MapR)
>
> When the Drill JDBC driver is used in local mode (as  
> DriverManager.getConnection("jdbc:drill:zk=local", ... ), the close() method 
> doesn't free resources:  Calling getConnection() and then close() and then 
> repeating that pair of calls enough times results in an exception, the root 
> cause exeception of which is an IOException saying "Too many open files":



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to