[CRIU] Re: [PATCH v2] restorer: close log file before detaching from crtools

Cyrill Gorcunov gorcunov at openvz.org
Tue Feb 21 04:18:22 EST 2012


On Tue, Feb 21, 2012 at 12:10:36PM +0300, Kinsbursky Stanislav wrote:
> v2: it's toom risky to jump to address equal to line numbet (there could be
> valid executable code). So now jump is done to 0 address and %sp encodes line
> number (32 most significant bits) and error code (32 least significant bits).
> 
> There is a race between log close by process being restoring and opened file
> desctriptors check in zdtm test suite - crtools can exit and compare file
> descriptors before detached restored process will perform all the rest tasks
> (including close of the log) and execute final system call:
> 
> --- dump/sleeping00/8578/dump.fd        2012-02-20 14:31:31.246096000 +0300
> +++ dump/sleeping00/8578/restore.fd     2012-02-20 14:31:31.418095999 +0300
> @@ -1,4 +1,5 @@
> 
>  0 -> /dev/null
>  1 -> /dev/null
> +1023 -> /root/crtools/test/dump/sleeping00/8578/restore.log
>  2 -> /dev/null
> 
> The solution is to close log in restorer before final command received. But
> this leads to another problem: we have to inform somehow about possible errors
> afterwards This is done by forced segmentation fault and looks like this
> (dmesg):
> 
> pipe00[4678]: segfault at 0 ip 00007f4c8ab77d02 sp 000002ed00000001 error 4
> 
> Where %sp encodes line number (32 most significant bits) and error code (32
> least significant bits).
> 
> Signed-off-by: Stanislav Kinsbursky <skinsbursky at openvz.org>
> ---

Looks good to me. Thanks Stas.

	Cyrill


More information about the CRIU mailing list