-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Type Pollution Scalability issue over Vertx/Netty HTTP 2 pipeline traversal #5039
Labels
Comments
I've opened netty/netty#13741 to mitigate this, but will likely solve just the |
Thanks to netty/netty#13741 in, I can just send a pr to fix the listener case at #5039 (comment) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
As reported (and fixed) at netty/netty#12806, only
ChannelDuplexHandler
s in netty have been fixed to solve the infamous type pollution issue: by running an hello-world like test with HTTP 2 in quarkus and attaching https://github.com/RedHatPerf/type-pollution-agent to it, this case popupThe first one in the chart (not reported) is a false positive (meaning that we have a single concrete class in all the relevant code paths making the issue to disappear, optimized away by the JIT): this is is why I'm reporting the affected classes starting from
2
.This case instead is real, awaiting to be triggered by "normal" and possible runtime condititions
eg
If the user/vertx setup a pipeline which contains 1 more
io.netty.channel.ChannelInboundHandler
-only orio.netty.channel.ChannelOutboundHandler
-only types, which will hit:other than just
io.vertx.core.http.impl.VertxHttp2ConnectionHandler
'; this will make the type checks there for this class to happen for real, causing the klass'ssecondary_super_cache
to ping pong among these types, and hitting the issue at netty/netty#12806 (comment)In short, the problem arise because
io.vertx.core.http.impl.VertxHttp2ConnectionHandler
is extendingHttp2ConnectionHandler
's which is transitively implementing both inbound/outbound handlers.As usual; this seems a kind of fix which should happen within Netty, but I'm reporting here because is directly affecting us and Netty's
Http2ChannelDuplexHandler
TBH, being a duplex handler, doesn't seem affect (last famous words...).Additionally, we do have other interfaces which the IntelliJ diagram seems to have forgotten (it's a bug???) ie
Http2FrameListener
andHttp2Connection.Listener
, but only the latter appear in the agent's report.It doesn't seem harmful because the only implementor of
Http2Connection$Listener
seemsVertxHttp2ConnectionHandler
apart from an implementor within Netty which we don't use (because we don't useHttp2ChannelDuplexHandler
).The text was updated successfully, but these errors were encountered: