Bug 2105220

Summary: criu: Rebuild for full rseq support
Product: Red Hat Enterprise Linux 9 Reporter: Florian Weimer <fweimer>
Component: criuAssignee: Adrian Reber <areber>
Status: CLOSED ERRATA QA Contact: Chao Ye <cye>
Severity: medium Docs Contact:
Priority: medium    
Version: 9.1CC: areber, cye, mmarusak, mpitt
Target Milestone: rcKeywords: Triaged
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard: CockpitTest
Fixed In Version: criu-3.17-4.el9 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2022-11-15 10:25:23 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 2033446, 2085529    
Bug Blocks: 2107449    

Description Florian Weimer 2022-07-08 09:32:17 UTC
criu/cr-restore.c contains this:

#if defined(__GLIBC__) && defined(RSEQ_SIG)
static void prep_libc_rseq_info(struct rst_rseq_param *rseq)
{
	if (!kdat.has_rseq) {
		rseq->rseq_abi_pointer = 0;
		return;
	}

	rseq->rseq_abi_pointer = encode_pointer(__criu_thread_pointer() + __rseq_offset);
	rseq->rseq_abi_size = __rseq_size;
	rseq->signature = RSEQ_SIG;
}
#else
static void prep_libc_rseq_info(struct rst_rseq_param *rseq)
{
	/*
	 * TODO: handle built-in rseq on other libc'ies like musl
	 * We can do that using get_rseq_conf kernel feature.
	 *
	 * For now we just assume that other libc libraries are
	 * not registering rseq by default.
	 */
	rseq->rseq_abi_pointer = 0;
}
#endif

This means that we need to rebuild criu to pick up the new installed glibc headers in glibc-2.34-37.el9 or later, otherwise only the TODO part will be built, and restore can fail due to interference from rseq.

Before rebuilding, please check that glibc-2.34-37.el9 is in the buildroot, or use a side tag.

Comment 1 Tom Sweeney 2022-07-18 20:15:45 UTC
*** Bug 2107449 has been marked as a duplicate of this bug. ***

Comment 2 Chao Ye 2022-08-01 09:45:31 UTC
Hi Adrian,

I saw there is a new build available already, should we reload errata with this bug, and moving this forward?
https://brewweb.engineering.redhat.com/brew/buildinfo?buildID=2087664
https://errata.devel.redhat.com/advisory/96402

Chao

Comment 3 Adrian Reber 2022-08-01 09:52:54 UTC
Hello Chao,

yes, criu-3.17-4.el9 is the build we want. I was not aware that errata had the older build. I just reloaded the correct build in errata. Thanks for spotting this.

Comment 7 Chao Ye 2022-08-04 06:11:22 UTC
Confirm criu errata now contains latest criu-3.17-4.el9	build:
https://errata.devel.redhat.com/advisory/96402

Comment 9 errata-xmlrpc 2022-11-15 10:25:23 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (criu bug fix and enhancement update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2022:8130