<div dir="ltr"><div dir="ltr"><div class="gmail_default" style="font-size:small"><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Jan 12, 2021 at 9:28 PM Cyril Hrubis <<a href="mailto:chrubis@suse.cz" target="_blank">chrubis@suse.cz</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">There was a race that would manifest on slower machines.<br>
<br>
The call to epoll_pwait() could time out before the child has chance to<br>
run, and that would cause the signal to be sent to the parent when it<br>
was already sleeping in wait().<br>
<br>
Ideally the whole test should be rewritten into new library and fixed<br>
properly, however as we are just before a release this is an attempt for<br>
a minimal fix.<br>
<br>
The logic in the test is changed so that:<br>
<br>
- epoll_wait() sleeps indefinitely<br>
- the child:<br>
  - waits for the parent to get asleep<br>
  - sends the signal<br>
  - sleeps<br>
  - writes to the pipe<br>
<br>
This causes the child to actually run, while the parent is blocked in<br>
the epoll_wait(), which greatly increases the changes of the signal<br>
arriving at the right time.<br>
<br>
Fixes: #765<br>
<br>
Signed-off-by: Cyril Hrubis <<a href="mailto:chrubis@suse.cz" target="_blank">chrubis@suse.cz</a>><br></blockquote><div> </div><div><span class="gmail_default" style="font-size:small"></span>Reviewed-by: Li Wang <<a href="mailto:liwang@redhat.com" target="_blank">liwang@redhat.com</a>></div><div><span class="gmail_default"></span> </div></div>-- <br><div dir="ltr"><div dir="ltr"><div>Regards,<br></div><div>Li Wang<br></div></div></div></div>