AnsweredAssumed Answered

MAPR JDBC driver does not load with IBM JRE

Question asked by the6campbells on Jun 27, 2017
Latest reply on Jun 28, 2017 by MichaelSegel

The MAPR JDBC driver will fail to load unless -Dio.netty.allocator.numDirectArenas=<n> (where n is a value such as 10 etc).

A basic Java/JDBC program that attempts to make a connection will fail as will tools such as SQLSquirrel if the IBM JRE is being used.

Why it the netty based logic not correctly able to compute default values and in turn not cause the Java exception?


[DRILL-5256] Exception in thread "main" java.lang.ExceptionInInitializerError - ASF JIRA 

 

Exception in thread "main" java.lang.ExceptionInInitializerError
at java.lang.J9VMInternals.ensureError(J9VMInternals.java:141)
at java.lang.J9VMInternals.recordInitializationFailure(J9VMInternals.java:130)
at org.apache.drill.exec.memory.BaseAllocator.<clinit>(BaseAllocator.java:48)
at org.apache.drill.exec.memory.RootAllocatorFactory.newRoot(RootAllocatorFactory.java:38)
at com.mapr.drill.client.DRJDBCClient.openSession(Unknown Source)
at com.mapr.drill.client.DRJDBCClient.<init>(Unknown Source)
at com.mapr.drill.core.DRJDBCConnection.connect(Unknown Source)
at com.mapr.jdbc.common.BaseConnectionFactory.doConnect(Unknown Source)
at com.mapr.jdbc.common.AbstractDriver.connect(Unknown Source)
at test.main(test.java:39)

Caused by: java.lang.NullPointerException
at io.netty.buffer.PooledByteBufAllocatorL$InnerAllocator.<init>(PooledByteBufAllocatorL.java:93)
at io.netty.buffer.PooledByteBufAllocatorL.<init>(PooledByteBufAllocatorL.java:56)
at org.apache.drill.exec.memory.AllocationManager.<clinit>(AllocationManager.java:60)
... 8 more

Outcomes