Dont shade netty at distributedlog-core-shaded#1231
Closed
sijie wants to merge 1 commit into
Closed
Conversation
*Problem* JVM crashed when `distributedlog-core-shaded` (where netty was shaded) is used in a project where netty isn't shaded and epoll is enabled. The conflict happens on loading the native epoll transport because shaded netty doesn't actually shade the native jni library. so signature mismatch when both version of netty try to resolve jni library. *Solution* Dont shade netty at all. Let the application resolve which netty version to use.
Member
Author
|
travis and IT passed. since this change is only touch the dlog shaded jar, ignore CI results to merge this, allowing to unblock pulsar. |
Member
Author
|
IGNORE CI |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Descriptions of the changes in this PR:
Problem
JVM crashed on linux platforms, when
distributedlog-core-shaded(where netty4.1.12.Finalwas shaded) is used in a project where a non-shaded netty4.1.21.Finalis used and epoll is enabled.Because Epoll is enabled on linux platforms. However because two different netty versions bring in two different jni bindings, when the netty epoll transport tries to resolve the jni library, it hit the signature mismatch issue.
Solution
Dont shade netty at all. Let the application resolve which netty version to use.