-
Notifications
You must be signed in to change notification settings - Fork 181
netty-tcnative conflict, and using hadoop #1475
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
Comments
Can you give a bit more background as to why you need |
Okay, I see. Thanks for the quick reply! We wanted 2.0.5.Final because the latest version of grpc uses it. Just talked to some people and it sounds like there's some potential that 2.0.1.Final would work too, so I'll try that. Alternatively, I might just try to re-shade the shaded netty classes to point to the unshaded version, which I think will effectively allow me to sub in my version of netty. |
Update: reverting to 2.0.1.Final didn't help |
Hi, The root of the issue is that grpc 1.4.0 updated its dependency on netty from version 4.1.8 to 4.1.11. During that transition, netty substantially changed netty-tcnative (they changed their package from tomcat to netty.internal). The cloud bigtable client has historically recommended for its users to explicitly add the tcnative dependency as opposed to transitively depending on it. This created a big issue for us: upgrading to newer netty would be a breaking change for our users, so we stayed with the older version of netty, which is shaded along in the -shaded & -hadoop jars. However since tcnative couldn't be shaded, it was kept as a transitive dependency, forcing our users to stay with the previous version of tcnative. So tcnative >= 2 will not work. I'm working on a more permanent solution and also I think I have a temporary workaround for you. But I'd like to understand your situation a bit better first. Would you mind giving me a bit more detail as to:
Thanks! |
Hi Igor, I see, definitely a difficult situation. Also: a little background, I'm an engineer at Square, working in one of our large java repos. To answer your questions:
Let me know if I can clarify any of that! Thanks, |
Thanks for the detailed information! As a longer term solution we will shaded netty-tcnative into bigtable-hbase-1.x-hadoop. This is currently being worked on by grpc: |
We try to avoid having app-specific dependancies, but yeah I think that would do the trick and I don't really see any other solutions. Thanks! |
I'll close this ticket for now. But I'll make sure to update it when this workaround is no longer necessary. (ie. when netty-tcnative is shaded. |
Sounds good, thanks! |
Please follow progress on #1487 |
Hi,
I'm running into an issue with the cloud-bigtable-client that is conceptually similar to #1445.
Initially, I was using
bigtable-hbase-1.2
at 0.9.5. I need to havenetty-tcnative:2.0.5.Final
in my project for other dependancies, which caused problems becausebigtable-hbase-1.2
shades a version of netty that isn't compatible withnetty-tcnative:2.0.5.Final
.Based on the discussion in #1445, I switched to
bigtable-hbase-1.x:1.0.0-pre1
with netty excluded, and that solved my original issue. However, my project also uses hadoop, and this new artifact caused all hadoop jobs to fail due to a bunch of class not found exceptions.Based on #1436, I tried using
bigtable-hbase-1.x:-hadoop1.0.0-pre1
. That fixed the issue with hadoop, but because that artifact shades netty I still had the original problem with my incompatible netty-tcnative version.Is there any way I can make
netty-tcnative:2.0.5.Final
work with the bigtable client and hadoop?The text was updated successfully, but these errors were encountered: