You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We use https://github.com/pf4j/pf4j for the system with netty server serving grpc with some pluggable handlers which are sharing netty in a classpath, but have anything else within an isolated classpath. If two plugins trying to work with dynamodb, each with own copy of the sdk, second plugin will get the exception above, trying to init
Each sdk have isolated init from the shared netty part. Netty is pretty big framework and embedding it into each plugin could be a great waste of memory. So would be nice to have something like classloader id on such an id.
Current Behavior
Steps to Reproduce
Create a global classloader, load netty, create a child classloader (loading first from child, then from parent), load sdk in there, call sdk. Create the second classloader same as first child, repeat the sdk call.
This commit prevents the Netty client from throwing an exception in cases where
it tries to declare an attribute key and the key already exists. This can happen
when separate instances of the SDK are loaded by different classloaders, but the
Netty classes loaded by a third and shared by the other classloaders.
Fixesaws#1886
Evaluation of the ReleaseOnceChannelPool in two classloaders with shared netty will lead to the exception
and
Describe the bug
We use https://github.com/pf4j/pf4j for the system with netty server serving grpc with some pluggable handlers which are sharing netty in a classpath, but have anything else within an isolated classpath. If two plugins trying to work with dynamodb, each with own copy of the sdk, second plugin will get the exception above, trying to init
https://github.com/aws/aws-sdk-java-v2/blob/master/http-clients/netty-nio-client/src/main/java/software/amazon/awssdk/http/nio/netty/internal/ReleaseOnceChannelPool.java#L38
at the moment its a 2.13.33 version.
Expected Behavior
Each sdk have isolated init from the shared netty part. Netty is pretty big framework and embedding it into each plugin could be a great waste of memory. So would be nice to have something like classloader id on such an id.
Current Behavior
Steps to Reproduce
Create a global classloader, load netty, create a child classloader (loading first from child, then from parent), load sdk in there, call sdk. Create the second classloader same as first child, repeat the sdk call.
The project we're using is the https://github.com/bsideup/liiklus.
Possible Solution
Adding classloader id could help, so that attributes wouldn't care about others.
Context
Almost the same issue was fixed in the grpc grpc/grpc-java#6707
Your Environment
The text was updated successfully, but these errors were encountered: