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

PPC: test/jdk/jdk/internal/vm/Continuation/Fuzz.java: AssertionError: res: false shouldPin: false

    XMLWordPrintable

Details

    • b11
    • ppc

    Description

      # Symptom

      test/jdk/jdk/internal/vm/Continuation/Fuzz.java fails sporadically with

      Exception in thread "main" java.lang.AssertionError: res: false shouldPin: false
      at Fuzz.verifyPin(Fuzz.java:479)
      at Fuzz.postYield(Fuzz.java:689)
          // ...

      # Analysis
      (Line numbers refer to attachment yield_after_deopt_failure.log)

      The recursive freeze of stack frames does not stop at the bottom frame (line 79) and then fails when trying to freeze the frame of the continuation enter intrinsic `Continuation.enterSpecial` (line 1) with `freeze_pinned_native`. This causes the test failure because freeze/yield should succeed.

      The recursion is supposed to stop when the expression `FKind::frame_bottom(f) >= _bottom_address - 1` is true
      (https://github.com/openjdk/jdk/blob/e4d1cff6597ac25d435fe16e0fc49d23f6e65df4/src/hotspot/share/runtime/continuationFreezeThaw.cpp#L834)
      but there is dead space between `FreezeBase::_bottom_address` (line 23) and `ContinuationHelper::InterpretedFrame::frame_bottom` (line 35)

      The dead space is left over from deoptimization of `Fuzz.com_mny(IIDJFLjava/lang/Object;IDJFLjava/lang/Object;IDJFLjava/lang/Object;IDJFLjava/lang/Object;)I`. It used to accomodate the stack args for the compiled frame.

      Attachments

        Issue Links

          Activity

            People

              rrich Richard Reingruber
              rrich Richard Reingruber
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: