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

[CRaC] Move recursive checkpoint test to simengine

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: P3 P3
    • repo-crac
    • repo-crac
    • core-libs
    • None
    • Fix Understood

      `jdk/crac/recursiveCheckpoint/Test.java` uses pauseengine but there seems to be no reason for it to do so.

      It also frequently fails internal tests, presumably because it lacks the synchronization between the processes running `test()` and `exec()` which pauseengine requires. The errors we see are:
      ```
      stderr:
      Jun 19, 2025 12:16:39 PM jdk.internal.crac.LoggerContainer info
      INFO: Starting checkpoint
      Jun 19, 2025 12:16:39 PM jdk.internal.crac.LoggerContainer info
      INFO: Starting checkpoint
      cannot read pid
      stdout:
      [0.280s][info][crac] Checkpoint ...
      [0.830s][info][crac] Checkpoint ...
      ```
      and
      ```
      INFO: Starting checkpoint
      crexec: unexpected EOF or error in cr/cpufeatures after 0 parsed bytes
      Error: Could not create the Java Virtual Machine.
      Error: A fatal exception has occurred. Program will exit.
      stdout:
      [0.596s][info][crac] Checkpoint ...
      [0.965s][info][crac] Checkpoint ...
      [0.063s][error][crac] Image cr has incompatible CPU features in its user data
      [0.063s][error][crac] Failed to restore cr
      ```

      It is proposed to make the test use simengine instead. Since the test has been running on all platforms, including MacOS and Windows where pauseengine is basically the same as simengine, this should be trivial.

            tpushkin Timofei Pushkin
            tpushkin Timofei Pushkin
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: