CRIU: Streamline adoption of criu tests with HCR
- Dominant language
- HTML
- Stars
- 155
- Forks
- 346
- Avg merge
- 2d 9h
- Merged PRs (30d)
- 36
Description
Checkpoint/restore is a new mode of execution where the JVM is start then checkpoint, and restored at a later time. Between checkpoint and restore there may changes that occur in the execution environment. The JVM has compensations for obvious changes (time related APIs), however there may be more subtle changes that occur that are more difficult to track.
For this reason there is a need for broader testing tin the checkpoint restore mode. On approach is to re-write all existing tests for checkpoint/restore, but this is unfeasible. Another approach is to use an agent (like
https://github.com/adoptium/aqa-systemtest/blob/0eb9f57f198fe194c070295c261e8bafeaed08aa/openjdk.test.debugging/docs/HCR_README.md) to insert a checkpoint into the existing tests and modify the test harness to restore the process after it has been checkpointed.
Three key things are needed:
1. Determine where checkpoint should be inserted
2. Agent to insert checkpoint in to test run
3. Modify harness to detect when checkpoint is taken and restore it
Contributor guide
Research direction
Start by reading the linked HCR_README and then inspect the existing test harness and checkpoint/restore tests. The work is complete when the harness can determine where to checkpoint, run an agent that inserts the checkpoint, and restore the process after checkpointing across existing tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- testing, tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100