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

[lworld][c1] oopmap missing for calls to store_value_type_fields_to_buf

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: P3
    • Resolution: Fixed
    • Affects Version/s: repo-valhalla
    • Fix Version/s: repo-valhalla
    • Component/s: hotspot
    • Labels:

      Description

      When this new test is added, we get an assert:
      ------
          // C1->C2 force GC for every allocation when storing the returned
          // fields back into a buffered object.
          @Test(compLevel = C1)
          public RefPoint test101(RefPoint rp) {
              return test101_helper(rp);
          }

          @ForceCompile(compLevel = C2) @DontInline
          public RefPoint test101_helper(RefPoint rp) {
              return rp;
          }

          @DontCompile
          public void test101_verifier(boolean warmup) {
              int count = warmup ? 1 : 5;
              for (int i=0; i<count; i++) {
                  RefPoint rp = new RefPoint(1, 2);
                  Object x = rp.x;
                  Object y = rp.y;
                  RefPoint result = new RefPoint(3, 4);
                  try (ForceGCMarker m = ForceGCMarker.mark(warmup)) {
                      result = test101(rp);
                  }
                  Asserts.assertEQ(rp.x, result.x);
                  Asserts.assertEQ(rp.y, result.y);
                  Asserts.assertEQ(x, result.x);
                  Asserts.assertEQ(y, result.y);
              }
          }
      ------
      $ jtreg -DTestlist=test101 TestCallingConventionC1.java

      # Internal Error (/home/iklam/jdk/valhalla/open/src/hotspot/share/compiler/oopMap.cpp:597), pid=30074, tid=30079
      # guarantee(last != NULL) failed: last may not be null

      Current thread (0x00007fe460088000): GCTaskThread "GC Thread#0" [stack: 0x00007fe4421ae000,0x00007fe4422ae000] [id=30079]

      Stack: [0x00007fe4421ae000,0x00007fe4422ae000], sp=0x00007fe4422ab930, free space=1014k
      Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code)
      V [libjvm.so+0x18b3f6b] ImmutableOopMapSet::find_map_at_offset(int) const+0x6b
      V [libjvm.so+0x18b241c] OopMapSet::update_register_map(frame const*, RegisterMap*)+0x10c
      V [libjvm.so+0x10549b7] frame::sender(RegisterMap*) const+0x277
      V [libjvm.so+0x1beb3d0] JavaThread::nmethods_do(CodeBlobClosure*) [clone .part.78]+0xa0
      V [libjvm.so+0x1bf6499] Threads::possibly_parallel_threads_do(bool, ThreadClosure*)+0xa9
      V [libjvm.so+0x1a5f970] ParallelSPCleanupTask::work(unsigned int)+0x30
      V [libjvm.so+0x1d5ba70] GangWorker::loop()+0xe0
      V [libjvm.so+0x1bf96b6] Thread::call_run()+0xf6
      V [libjvm.so+0x18d8cbe] thread_native_entry(Thread*)+0x10e

        Attachments

          Issue Links

            Activity

              People

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

                Dates

                • Created:
                  Updated:
                  Resolved: