Nigel Kilmer created BEAM-2321:
----------------------------------
Summary: gRPC configuration failure using DataflowRunner and
Bigtable
Key: BEAM-2321
URL: https://issues.apache.org/jira/browse/BEAM-2321
Project: Beam
Issue Type: Bug
Components: runner-dataflow
Affects Versions: 2.0.0
Reporter: Nigel Kilmer
Assignee: Daniel Halperin
I'm attempting to run a pipeline that uses the DataflowRunner and writes to
Bigtable (v0.9.6.2). This exception is thrown (looks like it's when the
BigtableSession is being created):
java.lang.IllegalArgumentException: Jetty ALPN/NPN has not been properly
configured.
at
io.grpc.netty.GrpcSslContexts.selectApplicationProtocolConfig(GrpcSslContexts.java:174)
at io.grpc.netty.GrpcSslContexts.configure(GrpcSslContexts.java:151)
at io.grpc.netty.GrpcSslContexts.configure(GrpcSslContexts.java:139)
at io.grpc.netty.GrpcSslContexts.forClient(GrpcSslContexts.java:109)
at
com.google.cloud.bigtable.grpc.BigtableSession.createSslContext(BigtableSession.java:124)
at
com.google.cloud.bigtable.grpc.BigtableSession.access$000(BigtableSession.java:81)
at
com.google.cloud.bigtable.grpc.BigtableSession$2.run(BigtableSession.java:151)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
I can run the same pipeline without issue using the DirectRunner instead, and
it was also working for me using the 0.7.0 snapshot of Beam last week. I've
already checked with the cloud-bigtable-client project; they said that it
should be working since I have a dependency on netty_tcnative configured. The
fact that the same pipeline works with the DirectRunner and not with the
DataflowRunner makes me think it's a DataflowRunner bug.
My pipeline is pretty simple; it looks like this:
Pipeline p = Pipeline.create(gcpOptions);
p.apply(PubsubIO.readProtos(TestProto.class)
.fromSubscription(pubsubSubscription))
.apply(ParDo.of(new BigtableMutationTransform()))
.apply(BigtableIO.write().withBigtableOptions(bigtableOptionsBuilder).withTableId("table_id"));
p.run();
Let me know if you need more context.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)