[
https://issues.apache.org/jira/browse/BEAM-5710?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16725569#comment-16725569
]
Steve Niemitz commented on BEAM-5710:
-------------------------------------
Ah amazing thank you! I also had reported this in BEAM-6249 so we can probably
close/link that one as well.
> Compatibility issues with netty 4.1.28 + tcnative 2.0.12 in beam 2.7.0 on
> dataflow
> ----------------------------------------------------------------------------------
>
> Key: BEAM-5710
> URL: https://issues.apache.org/jira/browse/BEAM-5710
> Project: Beam
> Issue Type: Bug
> Components: runner-dataflow
> Affects Versions: 2.7.0
> Reporter: Steve Niemitz
> Assignee: Boyuan Zhang
> Priority: Major
>
> I have a beam job that runs in dataflow. The job uses BigtableIO to read
> from bigtable. Transitively, it pulls in netty 4.1.28 and netty-tcnative
> 2.0.12. This has worked fine in the past (beam 2.4.0 and 2.6.0), however in
> beam 2.7.0, the job now crashes the JVM when BigtableIO attempts to
> initialize GCP, which attempts to initialize netty-tcnative.
> I found a very similar bug reported to netty here:
> [https://github.com/netty/netty/issues/8337]
> Also, the problem seems to go away if I downgrade our tcnative version to
> 2.0.10.
>
> The error is a segfault attempting to call aprMajorVersion() in tcnative:
> {code:java}
> Stack: [0x00007fda4b8f2000,0x00007fda4b9f3000], sp=0x00007fda4b9efd78, free
> space=1015k
> Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native
> code)
> C 0x00007fda4aac1db0
> j
> io.netty.internal.tcnative.Library.initialize(Ljava/lang/String;Ljava/lang/String;)Z+31
> j io.netty.handler.ssl.OpenSsl.initializeTcNative(Ljava/lang/String;)Z+3
> j io.netty.handler.ssl.OpenSsl.<clinit>()V+225
> v ~StubRoutines::call_stub
> V [libjvm.so+0x672446] JavaCalls::call_helper(JavaValue*, methodHandle*,
> JavaCallArguments*, Thread*)+0x1056
> V [libjvm.so+0x624827]
> InstanceKlass::call_class_initializer_impl(instanceKlassHandle, Thread*)+0xd7
> V [libjvm.so+0x626e3c] InstanceKlass::initialize_impl(instanceKlassHandle,
> Thread*)+0x1ac
> V [libjvm.so+0x627201] InstanceKlass::initialize(Thread*)+0x41
> V [libjvm.so+0x7ad066] LinkResolver::resolve_static_call(CallInfo&,
> KlassHandle&, Symbol*, Symbol*, KlassHandle, bool, bool, Thread*)+0x246
> V [libjvm.so+0x7ad2ef] LinkResolver::resolve_invokestatic(CallInfo&,
> constantPoolHandle, int, Thread*)+0x23f
> V [libjvm.so+0x7ae3a1] LinkResolver::resolve_invoke(CallInfo&, Handle,
> constantPoolHandle, int, Bytecodes::Code, Thread*)+0x4f1
> V [libjvm.so+0x66bf72] InterpreterRuntime::resolve_invoke(JavaThread*,
> Bytecodes::Code)+0x1b2
> j
> io.grpc.netty.GrpcSslContexts.defaultSslProvider()Lio/netty/handler/ssl/SslProvider;+0
> {code}
> Additionally, if I run my job using the beam 2.6.0 container
> (--workerHarnessContainerImage=dataflow.gcr.io/v1beta3/beam-java-batch:beam-2.6.0),
> it also succeeds.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)