question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

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 issue

When 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:closed
  • Created 5 years ago
  • Comments:8 (8 by maintainers)

github_iconTop GitHub Comments

1reaction
izeyecommented, Nov 24, 2018

Due to dependency locking, master depends on reactor-netty 0.8.1.RELEASE which has a classifier for its netty-transport-native-epoll dependency but 1.0.x depends on reactor-netty 0.7.4.RELEASE which doesn’t have a classifier for its netty-transport-native-epoll dependency. I guess that’s why 1.0.7 doesn’t have libnetty_transport_native_epoll_x86_64.so.

1reaction
wilkinsonacommented, Nov 23, 2018

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.

Read more comments on GitHub >

github_iconTop 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 >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found