Skip to content

Drillbit fails to start with NoSuchFieldError: sizeClass due to un-relocated Netty classes from hadoop-aws#3055

Open
shfshihuafeng wants to merge 1 commit into
apache:masterfrom
shfshihuafeng:DRILL-8547
Open

Drillbit fails to start with NoSuchFieldError: sizeClass due to un-relocated Netty classes from hadoop-aws#3055
shfshihuafeng wants to merge 1 commit into
apache:masterfrom
shfshihuafeng:DRILL-8547

Conversation

@shfshihuafeng

@shfshihuafeng shfshihuafeng commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

DRILL-8547: Drillbit fails to start with NoSuchFieldError: sizeClass due to un-relocated Netty classes from hadoop-aws

Description

Drillbit fails to start with java.lang.NoSuchFieldError: sizeClass immediately after distribution build. The root cause is an un-relocated (old) copy of io.netty.buffer.PoolArena shipped inside software.amazon.awssdk:bundle:2.24.6, which is a transitive dependency of org.apache.hadoop:hadoop-aws:3.4.1 declared in distribution/pom.xml.

This old PoolArena class shadows Drill's own netty-buffer-4.1.118.Final on the classpath, causing PooledByteBufAllocatorL$InnerAllocator to fail when it accesses the sizeClass field that only exists in the newer netty version.

Error Stack Trace:

Exception in thread "main" java.lang.NoSuchFieldError: sizeClass
        at io.netty.buffer.PooledByteBufAllocatorL$InnerAllocator.<init>(PooledByteBufAllocatorL.java:112)
        at io.netty.buffer.PooledByteBufAllocatorL.<init>(PooledByteBufAllocatorL.java:58)
        at org.apache.drill.exec.memory.AllocationManager.<clinit>(AllocationManager.java:63)
        at org.apache.drill.exec.memory.BaseAllocator.<clinit>(BaseAllocator.java:49)
        at org.apache.drill.exec.memory.RootAllocatorFactory.newRoot(RootAllocatorFactory.java:45)
        at org.apache.drill.exec.memory.RootAllocatorFactory.newRoot(RootAllocatorFactory.java:40)
        at org.apache.drill.exec.server.BootStrapContext.<init>(BootStrapContext.java:90)
        at org.apache.drill.exec.server.Drillbit.<init>(Drillbit.java:173)
        at org.apache.drill.exec.server.Drillbit.start(Drillbit.java:579)
        at org.apache.drill.exec.server.Drillbit.start(Drillbit.java:559)
        at org.apache.drill.exec.server.Drillbit.main(Drillbit.java:555)

Test

  1. Start Drill (e.g., ./drillbit.sh start).
  2. The NoSuchFieldError appears immediately during startup.

…due to un-relocated Netty classes from hadoop-aws

@cgivre cgivre left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM +1 (Pending CI)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants