[
https://issues.apache.org/jira/browse/BEAM-630?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15488397#comment-15488397
]
Eugene Kirpichov edited comment on BEAM-630 at 9/13/16 9:01 PM:
----------------------------------------------------------------
Wonderful. This seems like a bug in ByteBuddy - it legitimately produces a
broken class file (the class name that the JVM complains is illegal by that
link, "Lorg/apache/beam/sdk/transforms/DoFn$ProcessContext;", is actually
illegal cause it contains a semicolon - see
https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html#jvms-4.2.1,
https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html#jvms-4.2.2), but
in some cases JVM skips verifying it. With -DforkCount=0 it doesn't, for some
reason I don't quite understand yet (and it probably doesn't matter), but with
-XX:+BytecodeVerificationLocal it fails even when run as a test method from
IDEA.
Don't ask how I found out (hint: I found out by reading JVM source code).
To answer the implicit question "why does anything work". Seems like ByteBuddy
generated a constant pool entry of type "class" containing this invalid class
name, but the entry is not used in the rest of the code. So it fails
verification, but doesn't cause anything to break at runtime. Weird.
was (Author: jkff):
Wonderful. This seems like a bug in ByteBuddy - it legitimately produces a
broken class file (the class name that the JVM complains is illegal by that
link, "Lorg/apache/beam/sdk/transforms/DoFn$ProcessContext;", is actually
illegal cause it contains a semicolon - see
https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html#jvms-4.2.1,
https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html#jvms-4.2.2), but
in some cases JVM skips verifying it. With -DforkCount=0 it doesn't, for some
reason I don't quite understand yet (and it probably doesn't matter), but with
-XX:+BytecodeVerificationLocal it fails even when run as a test method from
IDEA.
Don't ask how I found out (hint: I found out by reading JVM source code).
> DataflowRunnableOnService test suite is broken
> ----------------------------------------------
>
> Key: BEAM-630
> URL: https://issues.apache.org/jira/browse/BEAM-630
> Project: Beam
> Issue Type: Bug
> Components: runner-dataflow
> Affects Versions: Not applicable
> Reporter: Daniel Halperin
> Assignee: Eugene Kirpichov
>
> Looks like it's related to problems with the new DoFnSignatures/Invoker:
> https://builds.apache.org/job/beam_PostCommit_RunnableOnService_GoogleCloudDataflow/1134/#showFailuresLink
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)