RVM
  1. RVM
  2. RVM-194

Assertion failure in OSR State Extractor running chart

    Details

    • Type: Bug Bug
    • Status: Closed Closed
    • Priority: Major Major
    • Resolution: Duplicate
    • Affects Version/s: None
    • Fix Version/s: 2.9.2
    • Component/s: Compiler: Optimizing
    • Labels:
      None
    • Number of attachments :
      0

      Description

      See: http://jikesrvm.anu.edu.au/cattrack/results/rvmx86lnx32.anu.edu.au/commit.847/development/default/dacapo/chart

      Stackdump is:
      – Stack –
      at [0x6b2e7d80] Lorg/jikesrvm/VM; _assertionFailure(Ljava/lang/String;Ljava/lang/String;)V at line 528
      at [0x6b2e7d98] Lorg/jikesrvm/VM; _assert(ZLjava/lang/String;Ljava/lang/String;)V at line 511
      at [0x6b2e7db4] Lorg/jikesrvm/VM; _assert(Z)V at line 489
      at [0x6b2e7e08] Lorg/jikesrvm/osr/ia32/OSR_OptExecStateExtractor; getObjectFrom(II[BLorg/vmmagic/unboxed/Offset;Lorg/jikesrvm/osr/ia32/OSR_TempRegisters;)Ljava/lang/Object; at line 464
      at [0x6b2e7ea4] Lorg/jikesrvm/osr/ia32/OSR_OptExecStateExtractor; getExecStateSequence(Lorg/jikesrvm/scheduler/VM_Thread;[BLorg/vmmagic/unboxed/Offset;Lorg/vmmagic/unboxed/Offset;ILorg/vmmagic/unboxed/Offset;Lorg/jikesrvm/osr/ia32/OSR_TempRegisters;Lorg/jikesrvm/osr/OSR_EncodedOSRMap;)Lorg/jikesrvm/osr/OSR_ExecutionState; at line 357
      at [0x6b2e7f44] Lorg/jikesrvm/osr/ia32/OSR_OptExecStateExtractor; extractState(Lorg/jikesrvm/scheduler/VM_Thread;Lorg/vmmagic/unboxed/Offset;Lorg/vmmagic/unboxed/Offset;I)Lorg/jikesrvm/osr/OSR_ExecutionState; at line 124
      at [0x6b2e7fbc] Lorg/jikesrvm/adaptive/OSR_OnStackReplacementPlan; execute()V at line 115
      at [0x6b2e7fd8] Lorg/jikesrvm/adaptive/recompilation/VM_CompilationThread; run()V at line 55
      at [0x6b2e8000] Lorg/jikesrvm/scheduler/VM_Thread; startoff()V at line 606

      The code in question is below. My guess would be this is happening because of the recent object/address constant improvements.

      private static Object getObjectFrom(int vtype, int value, byte[] stack, Offset fpOffset,
      OSR_TempRegisters registers) {
      if (vtype == ICONST)

      { //kv:todo : to become ACONST // the only constant object is NULL, I believe. if (VM.VerifyAssertions) VM._assert(value == 0); return VM_Magic.addressAsObject(Address.zero()); }

      else if (vtype == PHYREG)

      { return registers.objs[value]; }

      else if (vtype == SPILL)

      { return VM_Magic.getObjectAtOffset(stack, fpOffset.minus(value)); }

      else

      { VM.sysWrite("fatal error : ( vtype = " + vtype + " )\n"); if (VM.VerifyAssertions) VM._assert(VM.NOT_REACHED); return null; }

      }

        Activity

        Hide
        David Grove added a comment -

        Duplicate of 193....Peter and I opened simultaneously.

        Show
        David Grove added a comment - Duplicate of 193....Peter and I opened simultaneously.
        David Grove made changes -
        Field Original Value New Value
        Status Open [ 1 ] Closed [ 6 ]
        Resolution Duplicate [ 3 ]

          People

          • Assignee:
            Unassigned
            Reporter:
            David Grove
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: