We're updating the issue view to help you get more done. 

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

Description

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

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 -- 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:

1 2 3 4 5 6 7 8 9 10 11 12 13 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;

Environment

Linux gcc1-power7.osuosl.org 3.8.8-202.fc18.ppc64p7 #1 SMP Thu Apr 18 14:11:12 MST 2013 ppc64 ppc64 ppc64 GNU/Linux (64 threads)

Status

Assignee

Erik Brangs

Reporter

Erik Brangs

Labels

None

External issue ID

None

Fix versions

Affects versions

3.1.3

Priority

Medium