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

G1: SPECjbb2013 crashes due to a broken object reference

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: P2
    • Resolution: Fixed
    • Affects Version/s: hs25
    • Fix Version/s: hs25
    • Component/s: hotspot
    • Labels:
    • Subcomponent:
    • Resolved In Build:
      b57
    • Verification:
      Not verified

      Backports

        Description

        While running some benchmarks for a G1 fix I've gotten several crashes in Java code. The crashes seem to come right after encountering an unexpected ClassCastException. I believe that the cause for the exception is that the object reference we're trying to cast is a dead pointer into the heap since sometimes it's to an object of a completely wrong type and sometimes the pointer is in the middle of another object.

        The main two stack traces I get are:
        Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
        v ~RuntimeStub::throw_class_cast_exception Runtime1 stub
        J 5336 C1 org.spec.jbb.infra.txinjector.Driver$TokenPopulateTask.run()V (48 bytes) @ 0x00007ffb897e87e3 [0x00007ffb897e8140+0x6a3]
        J 6363 C2 java.util.concurrent.ThreadPoolExecutor.runWorker(Ljava/util/concurrent/ThreadPoolExecutor$Worker;)V (225 bytes) @ 0x00007ffb8a038238 [0x00007ffb8a037ce0+0x558]
        J 4817 C1 java.util.concurrent.ThreadPoolExecutor$Worker.run()V (9 bytes) @ 0x00007ffb897c9d4c [0x00007ffb897c9c40+0x10c]
        J 2907 C1 java.lang.Thread.run()V (17 bytes) @ 0x00007ffb8996f40c [0x00007ffb8996f2c0+0x14c]
        v ~StubRoutines::call_stub

        and: (where the top frame was deopted: reason=class_check action=maybe_recompile pc=0x00007fda217d6dc0 method=org.spec.jbb.infra.txinjector.Driver$ProbeTask.getRunTask()Ljava/lang/Runnable; @ 14)

        j org.spec.jbb.infra.txinjector.Driver$ProbeTask.getRunTask()Ljava/lang/Runnable;+14
        J 4283 C2 org.spec.jbb.core.scheduler.SingleLoopTimerScheduler$TimerTask.fire(J)V (48 bytes) @ 0x00007fda21d8e0b0 [0x00007fda21d8da00+0x6b0]
        j org.spec.jbb.core.scheduler.SingleLoopTimerScheduler$TimerTask.run()V+15
        J 4431 C1 java.lang.Thread.run()V (17 bytes) @ 0x00007fda21a793cc [0x00007fda21a79280+0x14c]
        v ~StubRoutines::call_stub

        I've also seen this crash in the GC code, also due to a broken object reference.

        I can't reproduce this with hs25-b43 so I believe this is a fairly recent regression.

        I've not been able to run jbb2013 with +Verify{Before,After}GC because the benchmark refuses to ramp up because it thinks the machine is too slow.

        ILW=HMM => P2

          Attachments

          1. 8024919.patch
            1 kB
          2. hs_err_pid10056.log
            638 kB
          3. hs_err_pid13853.log
            637 kB
          4. hs_err_pid21095.log
            636 kB
          5. hs_err_pid24632.log
            638 kB
          6. hs_err_pid26550.log
            638 kB
          7. hs_err_pid6198.log
            637 kB

            Issue Links

              Activity

                People

                Assignee:
                iveresov Igor Veresov
                Reporter:
                mgerdin Mikael Gerdin (Inactive)
                Votes:
                0 Vote for this issue
                Watchers:
                6 Start watching this issue

                  Dates

                  Created:
                  Updated:
                  Resolved: