On 27/03/15 07:29 AM, Bruno Prémont wrote:
> When weston fails to run while being launched by weston-launch it's
> socketpair causes poll() to notify POLLIN|POLLHUP and lets recvmsg()
> return 0.
> 
> Properly cleanup and exit in that case instead of poll()ing in a tight
> loop and leaving tty in graphics mode if we get SIGKILLed as only way
> out.
> 
> This happens only when weston-launch (and weston) are being traced
> as in `strace -f weston-launch` as then signalfd is not passing the
> SIGCHLD signal.

How would I go about reproducing this bug?

When I strace -f weston-launch sigchild gets through just fine.

> 
> Signed-off-by: Bruno Prémont <[email protected]>
> ---
> --- a/src/weston-launch.c     2015-03-01 18:46:27.289835438 +0100
> +++ b/src/weston-launch.c     2015-03-01 18:46:24.599835453 +0100
> @@ -771,6 +771,8 @@ main(int argc, char *argv[])
>                       error(0, errno, "poll failed");
>               if (fds[0].revents & POLLIN)
>                       handle_socket_msg(&wl);
> +             if (fds[0].revents & POLLHUP)
> +                     quit(&wl, 0);
>               if (fds[1].revents)
>                       handle_signal(&wl);
>       }
> 
> 
> 
> _______________________________________________
> wayland-devel mailing list
> [email protected]
> http://lists.freedesktop.org/mailman/listinfo/wayland-devel
> 

_______________________________________________
wayland-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to