[ 
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)

Reply via email to