Hello Team,
We are seeing, ArrowUtilSuite test fails with "NoSuchFieldError: chunkSize"
error.
java.lang.NoSuchFieldError: Class io.netty.buffer.PoolArena does not have
member field 'int chunkSize'.
And Netty library does not have field 'int chunkSize' in 4.1.72/74/82/84
even in higher versions too. But Arrow, versions 7.0.0 to 12.0.1, is still
referring to "chunkSize" field.
Error:
{{
error] Uncaught exception when running
org.apache.spark.sql.util.ArrowUtilsSuite: java.lang.NoSuchFieldError:
Class io.netty.buffer.PoolArena does not have member field 'int chunkSize'
[error] sbt.ForkMain$ForkError: java.lang.NoSuchFieldError: Class
io.netty.buffer.PoolArena does not have member field 'int chunkSize'
[error] at
io.netty.buffer.PooledByteBufAllocatorL$InnerAllocator.<init>(PooledByteBufAllocatorL.java:153)
[error] at
io.netty.buffer.PooledByteBufAllocatorL.<init>(PooledByteBufAllocatorL.java:49)
[error] at
org.apache.arrow.memory.NettyAllocationManager.<clinit>(NettyAllocationManager.java:51)
[error] at
org.apache.arrow.memory.DefaultAllocationManagerFactory.<clinit>(DefaultAllocationManagerFactory.java:26)
[error] at java.base/java.lang.Class.forName0(Native Method)
[error] at java.base/java.lang.Class.forName(Class.java:421)
[error] at java.base/java.lang.Class.forName(Class.java:412)
[error] at
org.apache.arrow.memory.DefaultAllocationManagerOption.getFactory(DefaultAllocationManagerOption.java:108)
}}
Source code in Arrow:
{{
try {
Field f = PooledByteBufAllocator.class.getDeclaredField("directArenas");
f.setAccessible(true);
this.directArenas = (PoolArena<ByteBuffer>[]) f.get(this);
} catch (Exception e) {
throw new RuntimeException("Failure while initializing allocator.
Unable to retrieve direct arenas field.", e);
}
this.chunkSize = *directArenas[0].chunkSize;*
if (memoryLogger.isTraceEnabled()) {
statusThread = new MemoryStatusThread();
statusThread.start();
}}
Is this known issue in Spark test suite ArrowUtilSuite?
--
Senthil kumar