<p dir="ltr"><br>
On Aug 14, 2014 10:00 PM, &quot;Pavel Emelyanov&quot; &lt;<a href="mailto:xemul@parallels.com">xemul@parallels.com</a>&gt; wrote:<br>
&gt;<br>
&gt; On 08/14/2014 09:18 PM, Andrey Vagin wrote:<br>
&gt; &gt; When we open tty, we don&#39;t want to set it as controlling terminal.<br>
&gt;<br>
&gt; What if it was controlling when we dumped it? Who would<br>
&gt; restore this &quot;state&quot;</p>
<p dir="ltr">Yes, we call ioctl (<b>TIOCSCTTY</b>). I can&#39;t show a place in code, because I&#39;m from the phone.</p>
<p dir="ltr">&gt;<br>
&gt; &gt; This bug was caught by pty04. Where we get unexpected SIGCONT,<br>
&gt; &gt; which is sent after closing a controlling terminal.<br>
&gt; &gt;<br>
&gt; &gt; ./pty04 --pidfile=pty04.pid --outfile=pty04.out<br>
&gt; &gt; Dump 9578<br>
&gt; &gt; Restore<br>
&gt; &gt; Test: zdtm/live/static/pty04, Result: FAIL<br>
&gt; &gt; ==================================== ERROR ====================================<br>
&gt; &gt; Test: zdtm/live/static/pty04, Namespace:<br>
&gt; &gt; Dump log   : /home/jenkins/workspace/Rpi-CRIU/test/dump/static/pty04/9578/1/dump.log<br>
&gt; &gt; --------------------------------- grep Error ---------------------------------<br>
&gt; &gt; ------------------------------------- END -------------------------------------<br>
&gt; &gt; Restore log: /home/jenkins/workspace/Rpi-CRIU/test/dump/static/pty04/9578/1/restore.log<br>
&gt; &gt; --------------------------------- grep Error ---------------------------------<br>
&gt; &gt; (00.083420) Error (cr-restore.c:1092): 9578 killed by signal 0<br>
&gt; &gt; (00.083708) Error (cr-restore.c:1713): Restoring FAILED.<br>
&gt; &gt; ------------------------------------- END -------------------------------------<br>
&gt; &gt; ================================= ERROR OVER =================================<br>
&gt; &gt;<br>
&gt; &gt; Reported-by: Mr Jenkins<br>
&gt; &gt; Signed-off-by: Andrey Vagin &lt;<a href="mailto:avagin@openvz.org">avagin@openvz.org</a>&gt;<br>
&gt; &gt; ---<br>
&gt; &gt;  tty.c | 2 +-<br>
&gt; &gt;  1 file changed, 1 insertion(+), 1 deletion(-)<br>
&gt; &gt;<br>
&gt; &gt; diff --git a/tty.c b/tty.c<br>
&gt; &gt; index 5fca74c..6d351cd 100644<br>
&gt; &gt; --- a/tty.c<br>
&gt; &gt; +++ b/tty.c<br>
&gt; &gt; @@ -557,7 +557,7 @@ static int pty_open_unpaired_slave(struct file_desc *d, struct tty_info *slave)<br>
&gt; &gt;<br>
&gt; &gt;               unlock_pty(master);<br>
&gt; &gt;<br>
&gt; &gt; -             fd = open(pts_name, slave-&gt;tfe-&gt;flags);<br>
&gt; &gt; +             fd = open(pts_name, slave-&gt;tfe-&gt;flags | O_NOCTTY);<br>
&gt; &gt;               if (fd &lt; 0) {<br>
&gt; &gt;                       pr_perror(&quot;Can&#39;t open slave %s&quot;, pts_name);<br>
&gt; &gt;                       goto err;<br>
&gt; &gt;<br>
&gt;<br>
</p>