glibc 2.35 enables restartable sequences (rseq) during process startup. This designates a memory area, associated with each thread, to which the kernel can write as it sees fit.
This has two consequences for CRIU: A restored process can crash once the memory for the registered rseq area is unmapped (this is the rseq area for the new process). And the restored process, when running, will appear to present a successful rseq registration, but the kernel will not write to the rseq areas of any restored threads.
Linux 5.13 added PTRACE_GET_RSEQ_CONFIGURATION in commit torvalds/linux@90f093f to support checkpoint and restore.
Downstream bug report: https://bugzilla.redhat.com/show_bug.cgi?id=2033397
glibc 2.35 enables restartable sequences (rseq) during process startup. This designates a memory area, associated with each thread, to which the kernel can write as it sees fit.
This has two consequences for CRIU: A restored process can crash once the memory for the registered rseq area is unmapped (this is the rseq area for the new process). And the restored process, when running, will appear to present a successful rseq registration, but the kernel will not write to the rseq areas of any restored threads.
Linux 5.13 added
PTRACE_GET_RSEQ_CONFIGURATIONin commit torvalds/linux@90f093f to support checkpoint and restore.Downstream bug report: https://bugzilla.redhat.com/show_bug.cgi?id=2033397