[CRIU] [PATCH] tty: open tty-s with O_NOCTTY

Pavel Emelyanov xemul at parallels.com
Thu Aug 14 10:59:48 PDT 2014


On 08/14/2014 09:18 PM, Andrey Vagin wrote:
> When we open tty, we don't want to set it as controlling terminal.

What if it was controlling when we dumped it? Who would
restore this "state"?

> This bug was caught by pty04. Where we get unexpected SIGCONT,
> which is sent after closing a controlling terminal.
> 
> ./pty04 --pidfile=pty04.pid --outfile=pty04.out
> Dump 9578
> Restore
> Test: zdtm/live/static/pty04, Result: FAIL
> ==================================== ERROR ====================================
> Test: zdtm/live/static/pty04, Namespace:
> Dump log   : /home/jenkins/workspace/Rpi-CRIU/test/dump/static/pty04/9578/1/dump.log
> --------------------------------- grep Error ---------------------------------
> ------------------------------------- END -------------------------------------
> Restore log: /home/jenkins/workspace/Rpi-CRIU/test/dump/static/pty04/9578/1/restore.log
> --------------------------------- grep Error ---------------------------------
> (00.083420) Error (cr-restore.c:1092): 9578 killed by signal 0
> (00.083708) Error (cr-restore.c:1713): Restoring FAILED.
> ------------------------------------- END -------------------------------------
> ================================= ERROR OVER =================================
> 
> Reported-by: Mr Jenkins
> Signed-off-by: Andrey Vagin <avagin at openvz.org>
> ---
>  tty.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/tty.c b/tty.c
> index 5fca74c..6d351cd 100644
> --- a/tty.c
> +++ b/tty.c
> @@ -557,7 +557,7 @@ static int pty_open_unpaired_slave(struct file_desc *d, struct tty_info *slave)
>  
>  		unlock_pty(master);
>  
> -		fd = open(pts_name, slave->tfe->flags);
> +		fd = open(pts_name, slave->tfe->flags | O_NOCTTY);
>  		if (fd < 0) {
>  			pr_perror("Can't open slave %s", pts_name);
>  			goto err;
> 



More information about the CRIU mailing list