Hi Andong, Not sure exactly why this is happening, but I think this might be unrelated the memory limit. In particular, based on the stack trace, "io.netty.buffer.PooledByteBufAllocatorL$InnerAllocator.<init>(PooledByteBufAllocatorL.java:145)", it would appear that memoryLogger is somehow getting initialized to a null value [1].
-Micah [1] https://github.com/apache/arrow/blob/apache-arrow-0.13.0/java/memory/src/main/java/io/netty/buffer/PooledByteBufAllocatorL.java#L145 On Tuesday, September 10, 2019, Andong Zhan <andong.z...@snowflake.com.invalid> wrote: > Hi folks, > > When I run this simple code with JVM setting: "-Xmx64m" > > > import org.apache.arrow.memory.RootAllocator; > > > public class TestArrow > > { > > public static void main(String args[]) throws Exception > > { > > new RootAllocator(Integer.MAX_VALUE); > > } > > } > > > and got the following error > > > Picked up JAVA_TOOL_OPTIONS: > -Djavax.net.ssl.trustStore=/etc/pki/ca-trust/extracted/java/cacerts > > Exception in thread "main" java.lang.ExceptionInInitializerError > > at > org.apache.arrow.memory.BaseAllocator.createEmpty(BaseAllocator.java:263) > > at org.apache.arrow.memory.BaseAllocator.<init>(BaseAllocator.java:89) > > at org.apache.arrow.memory.RootAllocator.<init>(RootAllocator.java:34) > > at org.apache.arrow.memory.RootAllocator.<init>(RootAllocator.java:30) > > at com.snowflake.TestArrow.main(TestArrow.java:13) > > > Caused by: java.lang.NullPointerException > > at > > io.netty.buffer.PooledByteBufAllocatorL$InnerAllocator.<init>(PooledByteBufAllocatorL.java:145) > > at > > io.netty.buffer.PooledByteBufAllocatorL.<init>(PooledByteBufAllocatorL.java:49) > > at > > org.apache.arrow.memory.AllocationManager.<clinit>(AllocationManager.java:61) > ... 5 more > > Process finished with exit code 1 > > > So how to use RootAllocator in such low memory case? > > I also post an issue here: > https://issues.apache.org/jira/browse/ARROW-6500 > > Thanks, > > Andong >