-
Notifications
You must be signed in to change notification settings - Fork 628
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
ISPN-8657 Netty upgrade to 4.1.21 #5676
ISPN-8657 Netty upgrade to 4.1.21 #5676
Conversation
@@ -528,6 +528,11 @@ | |||
<artifactId>netty-transport-native-epoll</artifactId> | |||
</dependency> | |||
|
|||
<dependency> | |||
<groupId>io.netty</groupId> | |||
<artifactId>netty-transport-native-unix-common</artifactId> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why do we need this?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
might make more sense to pull in the bom in dependencyManagement?
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-bom</artifactId>
<version>${version.netty}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The Enforcer plugin discovered another transitive dependency of netty-transport-native-epoll
IIRC. Yes Netty is fragmented, not modular.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@rvansa You probably mean 9.1.11
. Yes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@rvansa no, as bom's are defined in dependencyManagement only the metadata is pulled in, you still need to define every dependency you want to use but you can omit the version.
See netty/netty#5994 (comment) for a good explanation.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@slaskawi if you are using native transports you might want to wait until the next Netty release, see netty/netty#7563
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@johnou Is this a kitchensink import? We want to include only what's needed.
dependencyManagement != dependencies
Whatever goes into dependencyManagement is not dependent upon necessarily. You have to then select what you depend on. We encourage users to do that all the time with Infinispan's bom (here).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree with you guys - let's use the BOM. However I wasn't able to do a full cleanup. The Karaf feature from persistence/remote
pull in client/hotrod
, which in turn uses Maven filtering to fill out its features.xml
file. I believe this can be fixed by using Netty as bundles and not wrapping them. I created ISPN-8735 to investigate this option. Any volunteers?
4.1.20 with a fix for netty/netty#7563 is out. Please update the PR to give CI a chance |
@tristantarrant depending on your usage of Netty netty/netty#7627 might be considered a show stopper too (we haven't been able to update for the past two releases). 4.1.21 coming this week. |
0ea8fc5
to
3716f88
Compare
@tristantarrant @johnou With the latest changes, we pull whichever transport the BOM points us to. I would like to keep it that way. |
@slaskawi the BOM doesn't dictate what transport is used, what I am getting at is for the past two Netty releases there have been two nasty regressions which may cause problems with projects which integrate with infinispan. Netty 4.1.21 is coming this week containing the fixes. |
@johnou Could you please point out, which regressions are you talking about? Also, could you please explain what artifacts do you mean by saying |
@slaskawi the regressions are in my previous comments in this pull request #5676 (comment) which links to netty/netty#7563 that may cause OOO messages and general data corruption when using native transports and #5676 (comment) linking to netty/netty#7627 which can result in the JVM hanging on shutdown. As far as transports goes, in order to use epoll you are required to setup an epoll event loop, programatically, adding the epoll artifact to your classpath isn't enough, I am well aware of how a BOM works (I was the author of it in the Netty project netty/netty#6412) and I believe it is useful in this use-case which is why I suggested it. |
I think we should wait for 4.1.21 |
@@ -666,62 +665,6 @@ | |||
<artifactId>reactive-streams</artifactId> | |||
<version>${version.reactivestreams}</version> | |||
</dependency> | |||
<dependency> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The dependencies should still be defined, just excluding the version tag.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Definitely not, it's a DependencyManagement
not a Dependencies
section.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
h0h0 my bad, so it is, I should have looked at the full diff 👍
@tristantarrant Your call on waiting till |
Sure, let's wait |
Just wanted to catch any regressions (if any) with 4.1.20 |
@johnou Yes, that's exactly what we do (defining Epoll Event Loops and declaring Epoll Transport as a dependency). See the Server Core module and |
Yes I figured so, I was just explaining my statement that you said was incorrect 😄 |
@johnou Ok, got it. Thanks for the explanation! |
@slaskawi Netty 4.1.21 is now available in Central Maven. |
3716f88
to
3e827d7
Compare
3e827d7
to
23d56a4
Compare
@johnou Thanks a lot! I've updated this PR. |
pom.xml
Outdated
@@ -316,6 +315,9 @@ | |||
<version.webdav.servlet>2.0.1</version.webdav.servlet> | |||
<version.weld-se>2.3.4.Final</version.weld-se> | |||
<version.weld>2.3.4.Final</version.weld> | |||
<version.netty-tcpnative-boringssl-static>2.0.7.Final</version.netty-tcpnative-boringssl-static> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
typo, tcpnative -> tcnative
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed. Thanks!
23d56a4
to
cf42007
Compare
CI is having trouble with this PR |
@gustavonalle Yes, it seems the slave got a timeout.... Let me restart all of them and retrigger the job. |
Retriggering build |
Ok, it seems like it is hanging in the OSGi testsuite. |
@tristantarrant I got out the loop for a while. Is it related or not? |
Yes: you have excluded org.conscrypt but something still wants it. 018-02-15T14:26:16,601 | ERROR | pool-1-thread-2 | BootFeaturesInstaller | 10 - org.apache.karaf.features.core - 4.1.4 | Error installing boot features |
Thanks a lot @tristantarrant! I will investigate this in the first free time slot. |
org.conscrypt is optional but it's possible that it wasn't marked as optional in the Netty osgi bundle? |
cf42007
to
b7f9c82
Compare
Rebased and excluded |
Merged, thanks |
https://issues.jboss.org/browse/ISPN-8657