bpipe icon indicating copy to clipboard operation
bpipe copied to clipboard

Error on all tests: "ERROR: No HTML report was generated for test" caused by VerifyError: Bad method call from inside of a branch

Open bw2 opened this issue 10 years ago • 0 comments

My environment is Groovy Version: 2.3.7 JVM: 1.7.0_71 Vendor: Oracle Corporation OS: Mac OS X

When I try to run bpipe tests, I get "VerifyError: Bad method call from inside of a branch". Googling this led to: http://zeroturnaround.com/forums/topic/verifyerror-bad-method-call-from-inside-of-a-branch/ which says: "Don’t know if it is a JDK bug or not; they opted to make the verifier more strict, disallowing something that’s been allowed in all previous versions. This “feature” is used not only by JRebel, but other libraries/frameworks/JVM-languages out there use this as well."

The best workaround seems to be to running the JVM with the -noverify flag. This flag turns off Bytecode Verification - a JVM feature that checks for things like:

  • array boundaries
  • variable scope
  • execution cannot fall off the end of the code
  • etc.

Ps. The full VerifyError error message was:

Exception in thread "Thread-4" java.lang.VerifyError: Bad <init> method call from inside of a branch
Exception Details:
  Location:
    bpipe/Concurrency$1.<init>(Lbpipe/Concurrency;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V @168: invokespecial
  Reason:
    Error exists in the bytecode
  Bytecode:
    0000000: b800 1a3a 082b 3a09 1909 2a5f b500 1c19
    0000010: 0957 1006 bd00 1e59 032c 5359 042d 5359
    0000020: 0519 0453 5906 1905 5359 0719 0653 5908
    0000030: 1907 5359 10ff 1204 b800 242a 5fab 0000
    0000040: 0000 0144 0000 0004 2d40 6985 0000 002b
    0000050: 2d8a 4adb 0000 0071 31e5 39de 0000 00b7
    0000060: 70f3 c614 0000 010a 5f5a 5903 32b8 002a
    0000070: 5f59 0432 b800 2a5f 5905 32b8 002e 5d58
    0000080: 5906 3212 30b8 0036 c000 30c0 0030 5f59
    0000090: 0732 1238 b800 3cc0 0038 5f59 0832 123e
    00000a0: b800 3cc0 003e 5f57 b700 41a7 00e0 5f5a
    00000b0: 5903 32b8 002a 5f59 0432 b800 2a5f 5905
    00000c0: 32b8 002e 5d58 5906 3212 30b8 0036 c000
    00000d0: 30c0 0030 5f59 0732 1238 b800 3cc0 0038
    00000e0: 5f59 0832 1243 b800 3cc0 0043 5f57 b700
    00000f0: 46a7 009a 5f5a 5903 32b8 002a 5f59 0432
    0000100: b800 2a5f 5905 32b8 002e 5d58 5906 3212
    0000110: 30b8 0036 c000 30c0 0030 5f59 0732 1238
    0000120: b800 3cc0 0038 5f59 0832 1243 b800 3cc0
    0000130: 0043 5f59 1006 3212 3eb8 003c c000 3e5f
    0000140: 57b7 0049 a700 475f 5a59 0332 b800 2a5f
    0000150: 5904 32b8 002a 5f59 0532 b800 2e5d 5859
    0000160: 0632 1230 b800 36c0 0030 c000 305f 5907
    0000170: 3212 38b8 003c c000 385f 57b7 004c a700
    0000180: 0dbb 004e 5912 50b7 0053 bf57 2ab6 0057
    0000190: 3a0a 190a 2a5f b500 5919 0a57 b1       
  Stackmap Table:
    full_frame(@104,{UninitializedThis,Object[#9],Object[#30],Object[#30],Object[#30],Object[#30],Object[#30],Object[#30],Object[#101],Object[#9]},{Object[#103],UninitializedThis})
    full_frame(@174,{UninitializedThis,Object[#9],Object[#30],Object[#30],Object[#30],Object[#30],Object[#30],Object[#30],Object[#101],Object[#9]},{Object[#103],UninitializedThis})
    full_frame(@244,{UninitializedThis,Object[#9],Object[#30],Object[#30],Object[#30],Object[#30],Object[#30],Object[#30],Object[#101],Object[#9]},{Object[#103],UninitializedThis})
    full_frame(@327,{UninitializedThis,Object[#9],Object[#30],Object[#30],Object[#30],Object[#30],Object[#30],Object[#30],Object[#101],Object[#9]},{Object[#103],UninitializedThis})
    full_frame(@385,{UninitializedThis,Object[#9],Object[#30],Object[#30],Object[#30],Object[#30],Object[#30],Object[#30],Object[#101],Object[#9]},{Object[#103],UninitializedThis})
    full_frame(@395,{Object[#2],Object[#9],Object[#30],Object[#30],Object[#30],Object[#30],Object[#30],Object[#30],Object[#101],Object[#9]},{Object[#103]})

    at bpipe.Concurrency.initPool(Concurrency.groovy:116)
    at bpipe.Concurrency$initPool.callCurrent(Unknown Source)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:49)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:137)
    at bpipe.Concurrency.<init>(Concurrency.groovy:93)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
    at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:77)
    at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:102)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:57)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:182)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:186)
    at bpipe.Concurrency.<clinit>(Concurrency.groovy)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
    at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
    at groovy.lang.MetaClassImpl.getProperty(MetaClassImpl.java:1722)
    at groovy.lang.MetaClassImpl.getProperty(MetaClassImpl.java:3458)
    at org.codehaus.groovy.runtime.callsite.ClassMetaClassGetPropertySite.getProperty(ClassMetaClassGetPropertySite.java:48)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:227)
    at bpipe.Runner$_main_closure9.doCall(Runner.groovy:327)
    at bpipe.Runner$_main_closure9.doCall(Runner.groovy)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
    at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
    at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:278)
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:909)
    at groovy.lang.Closure.call(Closure.java:423)
    at groovy.lang.Closure.call(Closure.java:417)
    at groovy.lang.Closure.run(Closure.java:504)
    at java.lang.Thread.run(Thread.java:745)
====================================================================================================
|                              Starting Pipeline at 2014-11-02 12:34                               |
====================================================================================================

=========================================== Stage hello ============================================
Internal error: java.lang.NoClassDefFoundError: Could not initialize class bpipe.Concurrency
=========================================== Bpipe Error ============================================

An error occurred executing your pipeline:

                            Could not initialize class bpipe.Concurrency                            


Please see the details below for more information.

========================================== Error Details ===========================================

java.lang.NoClassDefFoundError: Could not initialize class bpipe.Concurrency
    at bpipe.executor.ThrottledDelegatingCommandExecutor$_start_closure2.doCall(ThrottledDelegatingCommandExecutor.groovy:60)
    at bpipe.executor.ThrottledDelegatingCommandExecutor.start(ThrottledDelegatingCommandExecutor.groovy:60)
    at bpipe.CommandManager.start(CommandManager.groovy:179)
    at bpipe.PipelineContext.async(PipelineContext.groovy:1607)
    at bpipe.PipelineContext.async(PipelineContext.groovy)
    at bpipe.PipelineContext.exec(PipelineContext.groovy:1339)
    at bpipe.PipelineContext.exec(PipelineContext.groovy)
    at bpipe.PipelineContext.exec(PipelineContext.groovy:1296)
    at bpipe.PipelineContext.invokeMethod(PipelineContext.groovy)
    at bpipe.PipelineDelegate.methodMissing(PipelineDelegate.groovy:150)
    at bpipe.PipelineDelegate.invokeMethod(PipelineDelegate.groovy)
    at test.groovy$_run_closure1_closure4_closure5.doCall(test.groovy.groovy:5)
    at test.groovy$_run_closure1_closure4_closure5.doCall(test.groovy.groovy)
    at bpipe.PipelineContext.produceImpl(PipelineContext.groovy:1018)
    at bpipe.PipelineContext.invokeMethod(PipelineContext.groovy)
    at bpipe.PipelineDelegate.methodMissing(PipelineDelegate.groovy:118)
    at bpipe.PipelineDelegate.invokeMethod(PipelineDelegate.groovy)
    at test.groovy$_run_closure1_closure4.doCall(test.groovy.groovy:4)
    at test.groovy$_run_closure1_closure4.doCall(test.groovy.groovy)
    at bpipe.PipelineContext.preserveImpl(PipelineContext.groovy:1094)
    at bpipe.PipelineContext.invokeMethod(PipelineContext.groovy)
    at bpipe.PipelineDelegate.methodMissing(PipelineDelegate.groovy:121)
    at bpipe.PipelineDelegate.invokeMethod(PipelineDelegate.groovy)
    at test.groovy$_run_closure1.doCall(test.groovy.groovy:3)
    at bpipe.PipelineStage.invokeMethod(PipelineStage.groovy)
    at bpipe.PipelineStage$_runBody_closure4.doCall(PipelineStage.groovy:292)
    at bpipe.PipelineStage$_runBody_closure4.doCall(PipelineStage.groovy)
    at bpipe.PipelineStage.runBody(PipelineStage.groovy:291)
    at bpipe.PipelineStage.this$2$runBody(PipelineStage.groovy)
    at bpipe.PipelineStage.run(PipelineStage.groovy:220)
    at bpipe.PipelineCategory$_plus_closure1.doCall(PipelineCategory.groovy:127)
    at bpipe.PipelineStage.invokeMethod(PipelineStage.groovy)
    at bpipe.PipelineStage$_runBody_closure4.doCall(PipelineStage.groovy:292)
    at bpipe.PipelineStage$_runBody_closure4.doCall(PipelineStage.groovy)
    at bpipe.PipelineStage.runBody(PipelineStage.groovy:291)
    at bpipe.PipelineStage.this$2$runBody(PipelineStage.groovy)
    at bpipe.PipelineStage.run(PipelineStage.groovy:220)
    at bpipe.Pipeline.runSegment(Pipeline.groovy:513)
    at bpipe.Pipeline$_execute_closure8.doCall(Pipeline.groovy:664)
    at bpipe.Pipeline$_execute_closure8.doCall(Pipeline.groovy)
    at bpipe.Pipeline.execute(Pipeline.groovy:627)
    at bpipe.Pipeline.execute(Pipeline.groovy)
    at bpipe.Pipeline.this$2$execute(Pipeline.groovy)
    at bpipe.Pipeline$this$2$execute$1.call(Unknown Source)
    at bpipe.Pipeline.run(Pipeline.groovy:475)
    at bpipe.Pipeline$run.callStatic(Unknown Source)
    at bpipe.Pipeline.run(Pipeline.groovy:435)
    at test.groovy.run(test.groovy.groovy:18)
    at test.groovy$run.call(Unknown Source)
    at bpipe.Runner.main(Runner.groovy:375)

bw2 avatar Nov 02 '14 17:11 bw2