yahoo/Oak

Exception when closing multiple instances of Oak simultaneously

Opened this issue · 0 comments

I got the following exception when running 16 (independent) instances of Oak concurrently on 16 different threads.

java.lang.NullPointerException
at com.oath.oak.NativeAllocator.BlocksPool.returnBlock(BlocksPool.java:105)
at com.oath.oak.NativeAllocator.OakNativeMemoryAllocator.close(OakNativeMemoryAllocator.java:215)
at com.oath.oak.NovaManager.close(NovaManager.java:31)
at com.oath.oak.InternalOakMap.close(InternalOakMap.java:107)
at com.oath.oak.OakMap.close(OakMap.java:597)
at org.apache.druid.segment.incremental.OakIncrementalIndex$OakFactsHolder.close(OakIncrementalIndex.java:537)
at org.apache.druid.segment.incremental.OakIncrementalIndex.close(OakIncrementalIndex.java:145)
at org.apache.druid.benchmark.indexing.ConcurrentFullScaleIngestionBenchmark.add(ConcurrentFullScaleIngestionBenchmark.java:234)
at org.apache.druid.benchmark.indexing.generated.ConcurrentFullScaleIngestionBenchmark_add_jmhTest.add_AverageTime(ConcurrentFullScaleIngestionBenchmark_add_jmhTest.java:181)
at sun.reflect.GeneratedMethodAccessor12.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.openjdk.jmh.runner.BenchmarkHandler$BenchmarkTask.call(BenchmarkHandler.java:453)
at org.openjdk.jmh.runner.BenchmarkHandler$BenchmarkTask.call(BenchmarkHandler.java:437)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
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)