Chamikara Madhusanka Jayalath created BEAM-11433:
----------------------------------------------------
Summary: Dataflow Multi-language pipelines broken for Java 11 users
Key: BEAM-11433
URL: https://issues.apache.org/jira/browse/BEAM-11433
Project: Beam
Issue Type: Improvement
Components: cross-language, runner-dataflow
Reporter: Chamikara Madhusanka Jayalath
Fix For: 2.27.0
I get [1] for Dataflow multi-language Kafka example [2] when running the
pipeline with Java11 installed in the computer and with Java11 containers.
Due to recent changes related to JDK specific container naming, Beam
environments default to Java 11 containers. This means that Dataflow
multi-language pipelines will end up using Java 11 containers for users that
use Java 11. Seems like these containers are currently broken for Dataflow.
See [2] for instructions for reproducing (run with Java11 containers instead of
Java8 containers)
[~emilymye], what would be a good solution for Dataflow till we support Java 11
? I suspect we'll run into similar failures if we just run regular Java
pipelines on UW with Java 11 containers.
This should be a blocker for Beam 2.27.0 since this breaks Dataflow
multi-language pipelines for Java 11 users.
cc: [~pabloem] [~robertwb] [~kenn]
[1]
Error message from worker: generic::unknown:
java.lang.IllegalArgumentException: unable to deserialize Custom DoFn With
Execution Info
org.apache.beam.sdk.util.SerializableUtils.deserializeFromByteArray(SerializableUtils.java:74)
org.apache.beam.runners.core.construction.ParDoTranslation.doFnWithExecutionInformationFromProto(ParDoTranslation.java:706)
org.apache.beam.runners.core.construction.ParDoTranslation.getDoFn(ParDoTranslation.java:360)
org.apache.beam.fn.harness.FnApiDoFnRunner.<init>(FnApiDoFnRunner.java:346)
org.apache.beam.fn.harness.FnApiDoFnRunner$Factory.createRunnerForPTransform(FnApiDoFnRunner.java:178)
org.apache.beam.fn.harness.FnApiDoFnRunner$Factory.createRunnerForPTransform(FnApiDoFnRunner.java:152)
org.apache.beam.fn.harness.control.ProcessBundleHandler.createRunnerAndConsumersForPTransformRecursively(ProcessBundleHandler.java:239)
org.apache.beam.fn.harness.control.ProcessBundleHandler.createRunnerAndConsumersForPTransformRecursively(ProcessBundleHandler.java:200)
org.apache.beam.fn.harness.control.ProcessBundleHandler.createRunnerAndConsumersForPTransformRecursively(ProcessBundleHandler.java:200)
org.apache.beam.fn.harness.control.ProcessBundleHandler.createRunnerAndConsumersForPTransformRecursively(ProcessBundleHandler.java:200)
org.apache.beam.fn.harness.control.ProcessBundleHandler.createBundleProcessor(ProcessBundleHandler.java:505)
org.apache.beam.fn.harness.control.ProcessBundleHandler.lambda$processBundle$0(ProcessBundleHandler.java:279)
org.apache.beam.fn.harness.control.ProcessBundleHandler$BundleProcessorCache.get(ProcessBundleHandler.java:567)
org.apache.beam.fn.harness.control.ProcessBundleHandler.processBundle(ProcessBundleHandler.java:274)
org.apache.beam.fn.harness.control.BeamFnControlClient.delegateOnInstructionRequestType(BeamFnControlClient.java:173)
org.apache.beam.fn.harness.control.BeamFnControlClient.lambda$processInstructionRequests$0(BeamFnControlClient.java:157)
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
java.base/java.lang.Thread.run(Thread.java:834) Caused by:
java.io.InvalidClassException:
org.apache.beam.sdk.io.Read$UnboundedSourceAsSDFWrapperFn; local class
incompatible: stream classdesc serialVersionUID = -1752193696517031629, local
class serialVersionUID = 3454873399160940695
java.base/java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:689)
java.base/java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:2012)
java.base/java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1862)
java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2169)
java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1679)
java.base/java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2464)
java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2358)
java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2196)
java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1679)
java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:493)
java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:451)
org.apache.beam.sdk.util.SerializableUtils.deserializeFromByteArray(SerializableUtils.java:71)
... 18 more passed through: ==>
dist_proc/dax/workflow/worker/fnapi_service.cc:632
[2]
https://github.com/apache/beam/blob/master/sdks/python/apache_beam/examples/kafkataxi/README.md
--
This message was sent by Atlassian Jira
(v8.3.4#803005)