Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-30325

Byte code manipulation broken for java 7 classes

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: Blocker Blocker
    • lucene-search-plugin
    • None
    • java 7 and Jenkins 1.609.2

      When running a recent Jenkins with a JVM greater than 6 (which is required for lucene), the runtime will crash with java.lang.VerifyError. This is most likely caused by incorrect byte code manipulation by something in jenkins core. Adding the flag "-XX:-UseSplitVerifier" to the java 7 JVM removes the problem. More information on the problem is here:
      http://chrononsystems.com/blog/java-7-design-flaw-leads-to-huge-backward-step-for-the-jvm

      Lucene is compiled to Java 7 because java 6 has been deprecated since 2013 (even if some support is available to 2017), so without java 7 support, it won't work.

      java.lang.VerifyError: Expecting a stackmap frame at branch target 22
      Exception Details:
      Location:
      org/apache/lucene/util/packed/PackedInts$Format.<init>(Ljava/lang/String;II)V @13: ifeq
      Reason:
      Expected stackmap frame at this location.
      Bytecode:
      0x0000000: 2a2b 1cb7 0050 2a1d 1202 b800 5499 0009
      0x0000010: b500 56a7 0006 b500 56b1

      at org.apache.lucene.util.packed.PackedInts.fastestFormatAndBits(PackedInts.java:253)
      at org.apache.lucene.util.packed.PackedInts.getMutable(PackedInts.java:1000)

            tobias_ Tobias Olsson
            tobias_ Tobias Olsson
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: