Bug#1087931: bookworm-pu: package criu/3.17.1-2+deb12u1
* Salvatore Bonaccorso:
> Hi Florian,
>
> On Wed, Nov 20, 2024 at 02:05:46PM +0100, Florian Weimer wrote:
>> * Salvatore Bonaccorso:
>>
>> > [ Changes ]
>> > Quoting the upsream commit is likely the best to explain the changes:
>> >
>> > | cr-restore: rseq: dynamically handle *libc with rseq
>> > | Before this patch we assumed that CRIU is compiled against
>> > | the same GLibc as it runs with. But as we see from real
>> > | world examples like #1935 it's not always true.
>> > |
>> > | The idea of this patch is to detect rseq configuration
>> > | for the main CRIU process and use it to unregister
>> > | rseq for all further child processes. It's correct,
>> > | because we restore pstree using clone*() syscalls,
>> > | don't use exec*() (!) syscalls, so rseq gets inherited
>> > | in the kernel and rseq configuration remains the same
>> > | for all children processes.
>>
>> There's are further commit you should consider picking up:
>>
>> commit 089345f77a34d1bc7ef146d650636afcd3cdda21
>> Author: Florian Weimer <fweimer@redhat.com>
>> Date: Wed Jul 10 18:34:50 2024 +0200
>>
>> Adjust to glibc __rseq_size semantic change
>>
>> In commit 2e456ccf0c34a056e3ccafac4a0c7effef14d918 ("Linux: Make
>> __rseq_size useful for feature detection (bug 31965)") glibc 2.40
>> changed the meaning of __rseq_size slightly: it is now the size
>> of the active/feature area (20 bytes initially), and not the size
>> of the entire initially defined struct (32 bytes including padding).
>> The reason for the change is that the size including padding does not
>> allow detection of newly added features while previously unused
>> padding is consumed.
>>
>> The prep_libc_rseq_info change in criu/cr-restore.c is not necessary
>> on kernels which have full ptrace support for obtaining rseq
>> information because the code is not used. On older kernels, it is
>> a correctness fix because with size 20 (the new value), rseq
>> registeration would fail.
>>
>> The two other changes are required to make rseq unregistration work
>> in tests.
>>
>> Signed-off-by: Florian Weimer <fweimer@redhat.com>
>
> Do you consider this optional, or required for the fix to land in
> bookrworm?
The mentioned glibc change is probably in bookworm already. I think
it's this one from 2.36-9+deb12u8:
- Fixes rseq extension mechanism.
I think you need the test changes of the criu patch to get a clean
run. The non-test changes are dormant with sufficiently recent
kernels that contain full ptrace support.
Reply to: