Dennis Bjørn Christensen
06/09/2026, 1:18 PMNoSuchMethodError: isStreamDeallocated() WARNs in fe.warn.log on (3.5.17 shared-data mode). Traced it to a two-Netty-stack conflict. heap histo shows both io.netty.* (unshaded) and <http://io.grpc.netty.shaded.io|io.grpc.netty.shaded.io>.netty.* coexisting in the same JVM. The pom.xml declares grpc-netty-shaded but something transitive brings in a newer unshaded grpc-netty that calls isStreamDeallocated(), which doesn't exist in grpc-core-1.63.0. The broken cleanup path means failed gRPC streams may not be freed. We seem to have a rising old-gen floor on our leader FE that correlates with the exception rate. Confirmed grpc.version=1.63.0 is unchanged across 3.5, 4.0, 4.1, and main.
Is this known/tracked anywhere?Rocky
06/09/2026, 1:19 PMisStreamDeallocated() method in AbstractClientStream).
Here is what I can confirm based on your analysis and the current repository state:
Technical Context
* Dependency Conflict: StarRocks FE explicitly uses grpc-netty-shaded to avoid conflicts with other libraries using different Netty versions. If a transitive dependency (often from a Cloud SDK, Hadoop, or a newly added plugin) pulls in an unshaded grpc-netty, the JVM may load a version of grpc-netty that tries to call isStreamDeallocated() on a grpc-core version (likely the shaded one) that doesn't expose it correctly or is slightly out of sync.
* Memory Leak: The NoSuchMethodError occurring during the gRPC stream cleanup/deallocation path means that resources (streams/buffers) are never released. This directly explains the rising old-gen floor on your leader FE.
* Version Status: I confirmed that grpc.version is indeed set to 1.63.0 in the current main branch and recent 3.x releases. If the unshaded grpc-netty is coming from a transitive dependency, this risk persists across 3.5, 4.0, and 4.1.
Recommendation
Since this is not yet a known issue in the community, you should open a GitHub issue immediately. Your analysis is excellent and provides exactly what the maintainers need:
1. Heap Histo: Proves the coexistence of io.netty._ and io.grpc.netty.shaded.io.netty._.
2. Stack Trace: The NoSuchMethodError: isStreamDeallocated() points directly to the failed cleanup path.
3. Dependency Tree: If you can run mvn dependency:tree -Dverbose on the fe module and identify which component is pulling in the unshaded grpc-netty, it will help the team add the necessary <exclusion> in the parent pom.xml.
If you are using a specific cloud connector (e.g., S3/GCS/OSS) or a custom UDF/plugin, that is the most likely source of the transitive unshaded grpc-netty.
Reference: You can check the current fe/pom.xml on GitHub to see existing exclusions, but this particular leak seems to have slipped through inched past the current guards.
References
• faq/Deploy_faq.md
• administration/Meta_recovery.md
• unloading/arrow_flight.md
• faq/operation_maintenance_faq.mdDennis Bjørn Christensen
06/09/2026, 2:12 PMRocky
06/09/2026, 2:12 PMflight-core:18.0.0 as the culprit is a critical find.
Your discovery confirms the root cause:
* Dependency Conflict: flight-core:18.0.0 pulls in grpc-netty:1.65.0 (unshaded), while StarRocks expects grpc-core:1.63.0 (via the shaded path).
* Method Mismatch: The isStreamDeallocated() method was introduced in grpc-netty around version 1.64/1.65. When the 1.65.0 grpc-netty classes attempt to call this on the 1.63.0 grpc-core runtime, it throws the NoSuchMethodError.
* Leak Mechanism: Because this error occurs inside the Netty event loop during stream teardown, the cleanup logic is aborted. This leaves the gRPC stream and its associated buffers in the Old Gen, leading to the memory leak you observed on the leader FE.
Interim Workaround
Until a fix is merged in StarRocks to exclude or align these versions, you can attempt to force the dependency resolution in your local build or environment by adding an explicit exclusion to the component pulling in Arrow Flight:
xml
<dependency>
<groupId>org.apache.arrow</groupId>
<artifactId>flight-core</artifactId>
<version>18.0.0</version>
<exclusions>
<exclusion>
<groupId>io.grpc</groupId>
<artifactId>grpc-netty</artifactId>
</exclusion>
</exclusions>
</dependency>
I have noted the issue link (#74577). This is a high-quality bug report that will significantly help the maintainers resolve the FE memory instability in stability in shared-data mode.