Uploaded image for project: 'JikesRVM'
  1. JikesRVM
  2. RVM-1082

Assertion failure in org.jikesrvm.mm.mmtk.Lock on PPC64

    Details

      Description

      I'm seeing spurious test failures on the PPC64 machine at the GCC compile farm:

      -- Stack --
      (0x00000000421debe8 5311)   at [0x00000000421debe8, 0x0000000035f1c534] Lorg/jikesrvm/VM; sysFail(Ljava/lang/String;)V at line 2331
      (0x00000000421dec08 5139)   at [0x00000000421dec08, 0x00000000354e5668] Lorg/jikesrvm/VM; _assertionFailure(Ljava/lang/String;Ljava/lang/String;)V at line 630
      (0x00000000421dec60 2705)   at [0x00000000421dec60, 0x0000000035dae3b4] Lorg/jikesrvm/VM; _assert(ZLjava/lang/String;Ljava/lang/String;)V at line 613
         at [0x00000000421dec60, 0x0000000035dae3b4] Lorg/jikesrvm/VM; _assert(Z)V at line 588
         at [0x00000000421dec60, 0x0000000035dae3b4] Lorg/jikesrvm/mm/mmtk/Lock; release()V at line 161
      (0x00000000421dec90 4754)   at [0x00000000421dec90, 0x000000003555f350] Lorg/mmtk/utility/heap/PageResource; unlock()V at line 310
         at [0x00000000421dec90, 0x000000003555f350] Lorg/mmtk/utility/heap/FreeListPageResource; releasePages(Lorg/vmmagic/unboxed/Address;)V at line 214
         at [0x00000000421dec90, 0x000000003555f350] Lorg/mmtk/policy/immix/ImmixSpace; release(Lorg/vmmagic/unboxed/Address;)V at line 338
         at [0x00000000421dec90, 0x000000003555f350] Lorg/mmtk/policy/immix/Chunk; sweep(Lorg/vmmagic/unboxed/Address;Lorg/vmmagic/unboxed/Address;Lorg/mmtk/policy/immix/ImmixSpace;[IBZ)V at line 61
      (0x00000000421ded18 13481)   at [0x00000000421ded18, 0x000000003555e71c] Lorg/mmtk/policy/immix/CollectorLocal; sweepAllBlocks(Z)V at line 114
      (0x00000000421ded78 6390)   at [0x00000000421ded78, 0x0000000035d99040] Lorg/mmtk/policy/immix/CollectorLocal; release(Z)V at line 103
         at [0x00000000421ded78, 0x0000000035d99040] Lorg/mmtk/plan/generational/immix/GenImmixCollector; collectionPhase(SZ)V at line 150
      (0x00000000421dedb0 5094)   at [0x00000000421dedb0, 0x0000000035d99680] Lorg/mmtk/plan/Phase; processPhaseStack(Z)V at line 474
      (0x00000000421dee18 5092)   at [0x00000000421dee18, 0x000000003555ea94] Lorg/mmtk/plan/Phase; beginNewPhaseStack(I)V at line 385
      (0x00000000421dee38 6379)   at [0x00000000421dee38, 0x00000000354dd0d8] Lorg/mmtk/plan/StopTheWorldCollector; collect()V at line 40
      (0x00000000421dee58 6367)   at [0x00000000421dee58, 0x0000000035648540] Lorg/mmtk/plan/ParallelCollector; run()V at line 50
      (0x00000000421dee78 13675)   at [0x00000000421dee78, 0x0000000035eee778] Lorg/jikesrvm/mm/mminterface/CollectorThread; run()V at line 80
      (0x00000000421defb0 18605)   at [0x00000000421defb0, 0x0000000035eee588] Lorg/jikesrvm/scheduler/RVMThread; startoff()V at line 2628
      

      Failures happen mostly in longer-running benchmarks (e.g. DaCapo). I haven't kept any statistics but eclipse seems to be particularly affected.

      The relevant code fragment is:

      else if (oldState==LOCKED_QUEUED &&
                       Magic.attemptInt(this,offset,LOCKED_QUEUED,QUEUEING)) {
              RVMThread toAwaken=queue.dequeue();
              if (VM.VerifyAssertions) VM._assert(toAwaken!=null);
              boolean queueEmpty=queue.isEmpty();
              Magic.sync();
              if (queueEmpty) {
                state=CLEAR;
              } else {
                state=CLEAR_QUEUED;
              }
              toAwaken.monitor().lockedBroadcastNoHandshake();
              break;
      

        Attachments

          Activity

            People

            • Assignee:
              ebrangs Erik Brangs
              Reporter:
              ebrangs Erik Brangs
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: