[ 
https://issues.apache.org/jira/browse/BEAM-11433?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Chamikara Madhusanka Jayalath updated BEAM-11433:
-------------------------------------------------
    Description: 
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 Docker 
environments default to using Java version specific 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) 

[2] 
[https://github.com/apache/beam/blob/master/sdks/python/apache_beam/examples/kafkataxi/README.md]

  was:
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


> 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: Bug
>          Components: cross-language, runner-dataflow
>            Reporter: Chamikara Madhusanka Jayalath
>            Priority: P1
>             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 Docker 
> environments default to using Java version specific 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) 
> [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)

Reply via email to