micrometer-registry-statsd pollutes classpath with `/META-INF/native/libnetty_transport_native_epoll_x86_64.so` from Netty 4.1.29, breaking use of later versions of Netty
See original GitHub issueWhen micrometer-registry-statsd
is on the classpath and it appears before netty-transport-native-epoll
, libnetty_transport_native_epoll_x86_64.so
is found in micrometer-registry-statsd
and loaded from there. This means that, even if you’re using a later version of Netty, you’re stuck with the shared library from 4.1.29. This causes a failure to be thrown from native code:
15:19:18.442 [reactor-http-client-epoll-8] WARN io.netty.channel.epoll.EpollEventLoop - Unexpected exception in the selector loop.
io.netty.channel.ChannelException: timerfd_settime() failed: Invalid argument
at io.netty.channel.epoll.Native.epollWait0(Native Method)
at io.netty.channel.epoll.Native.epollWait(Native.java:114)
at io.netty.channel.epoll.EpollEventLoop.epollWait(EpollEventLoop.java:253)
at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:278)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:897)
at java.lang.Thread.run(Thread.java:748)
This happens because -1
is passed into Native.epollWait0
where it should be given special treatment. Instead it’s passed into timerfd_settime()
which rejects it as invalid.
See https://github.com/netty/netty/issues/8444 for the (embarrassing) background.
Issue Analytics
- State:
- Created 5 years ago
- Comments:8 (8 by maintainers)
Top Results From Across the Web
Netty 4.1.84.Final released - Netty.news
We are happy to announce the release of netty 4.1.84.Final. This release is a bug-fix release. The most important changes are:.
Read more >io.netty:netty-all - Snyk Vulnerability Database
version published direct vulnerabilities
5.0.0.Alpha2 3 Mar, 2015 0. C. 0. H. 0. M. 0. L
5.0.0.Alpha1 22 Dec, 2013 0. C. 0. H. 0....
Read more >What is the right way to upgrade netty and its components for ...
Note that: Spring boot version 2.5.5 uses netty 4.1.68.Final , so you should be OK if you upgrade spring-boot-starter-parent to 2.5.5.
Read more >grpc java client netty-tcnative-boringssl-static issue.
Hi I just upgraded to the very latest grpc versions and also tried to move to the latest netty-tcnative-boringssl-static.
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Due to dependency locking,
master
depends onreactor-netty
0.8.1.RELEASE which has a classifier for itsnetty-transport-native-epoll
dependency but1.0.x
depends onreactor-netty
0.7.4.RELEASE which doesn’t have a classifier for itsnetty-transport-native-epoll
dependency. I guess that’s why 1.0.7 doesn’t havelibnetty_transport_native_epoll_x86_64.so
.Thanks for double-checking, @izeye. You’re right. Sorry, I should have checked the built jars rather than looking at the build configuration and dependencies of 1.0.x and 1.1.x. I can’t spot why the native library isn’t part of 1.0.x, but I can see now that it isn’t.
To reword my earlier request slightly:
Could this please be fixed and 1.1.1 released in time for next week’s Boot releases? As things stand we’re stuck on Netty 4.1.29. If we try to upgrade our build hangs due to the native library pollution described above.