<html>
<head>
<base href="https://bugs.freedesktop.org/" />
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW --- - Weston crash when weston-desktop-shell and weston-keyboard missing"
href="https://bugs.freedesktop.org/show_bug.cgi?id=82957#c3">Comment # 3</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW --- - Weston crash when weston-desktop-shell and weston-keyboard missing"
href="https://bugs.freedesktop.org/show_bug.cgi?id=82957">bug 82957</a>
from <span class="vcard"><a class="email" href="mailto:derekf@osg.samsung.com" title="Derek Foreman <derekf@osg.samsung.com>"> <span class="fn">Derek Foreman</span></a>
</span></b>
<pre>Someone on irc (rawoul) explained to me that the destroy listener is actually
required because if it doesn't set client = NULL then something else might try
to free it later. This apparently can lead to a segfault on shutdown - I've
not tried to reproduce this issue myself.
I've also tried removing the sigchld handler and pushing all its functionality
into the destroy listener - that fails in other interesting ways:
- p->cleanup is always called, even if null. (need a no-op handler or to relax
that constraint)
- if the destroy handler tries to add the destroy listener to the newly
launched client's destroy notifiers it'll screw up the current pass through the
old process's destroy handler list.
- the process struct (shell->child.process) is having its pid set to 0 in the
destroy handler - this results in an incorrect log message when weston's
sigchld handler can't find the dead process' pid.
I've tried deferring the call to launch_desktop_shell_process() with
wl_event_loop_add_idle() but I don't know how to convince myself that the idle
timer can't ever launch the new process before compositor.c processes the
sigchld. (which would again result in a spurious unknown process error in the
log)</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the assignee for the bug.</li>
</ul>
</body>
</html>