Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8225367

[lworld][c1] TestLWorld.java fails with -XX:ValueFieldMaxFlatSize=0

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: P3 P3
    • repo-valhalla
    • repo-valhalla
    • hotspot

      Scenario #4 of TestLWorld.java fails with a heap verification error:

      $ jtreg ....... -vmoptions:-XX:+EnableValhallaC1 -vmoptions:-XX:TieredStopAtLevel=1 -DVerbose=true -DScenarios=4 TestLWorld.java

      # Internal Error (/home/iklam/jdk/valhalla/open/src/hotspot/share/oops/compressedOops.inline.hpp:51), pid=30120, tid=30182
      # assert(check_obj_alignment(result)) failed: address not aligned: 0x0000000000000001
      #
      # JRE version: Java(TM) SE Runtime Environment (13.0) (fastdebug build 13-internal+0-adhoc.iklam.open)
      # Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 13-internal+0-adhoc.iklam.open, mixed mode, tiered, compressed oops, g1 gc, linux-amd64)
      # Problematic frame:
      # V [libjvm.so+0xc68c4a] CompressedOops::decode_not_null(unsigned int)+0x8a

      Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code)
      V [libjvm.so+0xc68c4a] CompressedOops::decode_not_null(unsigned int)+0x8a
      V [libjvm.so+0x11d1d52] void VerifyLiveClosure::verify_liveness<unsigned int>(unsigned int*)+0x62
      V [libjvm.so+0x11d243d] void VerifyLiveClosure::do_oop_work<unsigned int>(unsigned int*)+0x9d
      V [libjvm.so+0x11cfa85] void OopOopIterateDispatch<G1Mux2Closure>::Table::oop_oop_iterate<InstanceKlass, unsigned int>(G1Mux2Closure*, oop, Klass*)+0xd5
      V [libjvm.so+0x11cb666] HeapRegion::verify(VerifyOption, bool*) const+0x2f6
      V [libjvm.so+0x10def64] VerifyRegionClosure::do_heap_region(HeapRegion*)+0xc4
      V [libjvm.so+0x11dc402] HeapRegionManager::par_iterate(HeapRegionClosure*, HeapRegionClaimer*, unsigned int) const+0x72
      V [libjvm.so+0x10dc28d] G1ParVerifyTask::work(unsigned int)+0x6d
      V [libjvm.so+0x1d31440] GangWorker::loop()+0xe0
      V [libjvm.so+0x1bcfa86] Thread::call_run()+0xf6
      V [libjvm.so+0x18b0a2e] thread_native_entry(Thread*)+0x10e

      This failure can be avoided by changing this part of the scenario 4 flags:

      public abstract class ValueTypeTest {
         ...
          public String[] getVMParameters(int scenario) {
              switch (scenario) {
              ...
              case 4: return new String[] {
                      "-DVerifyIR=false",
                      "-XX:ValueArrayElemMaxFlatOops=-1",
                      "-XX:ValueArrayElemMaxFlatSize=-1",
           // "-XX:ValueFieldMaxFlatSize=0", // comment out this line to avoid the crash
                      "-XX:+ValueTypePassFieldsAsArgs",
                      "-XX:-ValueTypeReturnedAsFields"};
              case 5: return new String[] {

            iklam Ioi Lam
            iklam Ioi Lam
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: