Bug 60935

Summary: weston-launch does not handle weston signal exits
Product: Wayland Reporter: U. Artie Eoff <ullysses.a.eoff>
Component: westonAssignee: Wayland bug list <wayland-bugs>
Status: VERIFIED FIXED QA Contact:
Severity: blocker    
Priority: medium    
Version: unspecified   
Hardware: Other   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:

Description U. Artie Eoff 2013-02-16 01:08:51 UTC
weston-launch does not exit with the exitcode of the weston process when the weston process is killed by a signal (i.e. SIGTERM, SIGKILL, SIGABRT, SIGSEGV). This is bad for detecting if weston crashed during an automated test.  It seems I always get a "Hangup" message with exitcode 129 regardless of how I kill weston.  This makes it even more difficult (from a testing perspective) to detect "weston as the cause" for test failures.

weston-launch should exit with the same exitcode as weston in all scenarios.

Setting severity as blocker since weston-launch can't be reliably used for automated testing.

A fix for this should be back-ported to the 1.0 tag, too.
Comment 1 Kristian Høgsberg 2013-03-13 13:47:30 UTC
commit 479d1cf903e132fe247508f2c883dfae141bc076
Author: Philipp Brüschweiler <blei42@gmail.com>
Date:   Sat Mar 9 19:38:57 2013 +0100

    weston-launch: return correct error code if weston dies because of a signal
    
    Partial fix for https://bugs.freedesktop.org/show_bug.cgi?id=60935. The
    correct code is now returned, but I can't reproduce the SIGHUP using the
    fbdev backend.

Should fix this.  If this works for you, I'll pull it back to 1.0.
Comment 2 Kristian Høgsberg 2013-03-19 18:40:35 UTC
Oops, I was updating the bug too fast there.  That commit was never pushed and Philip updated it to use different exit codes for weston signal exit vs weston-launch signal exit.  This is now on weston master:

commit 7a3ec74cb61c0faae18dfec3782f58b91a193801
Author: Philipp Brüschweiler <blei42@gmail.com>
Date:   Sun Mar 10 15:14:01 2013 +0100

    weston-launch: return better value if weston dies because of a signal
    
    Before this commit, weston-launch returned 0 if weston was killed by a
    signal. This makes it hard to automatically test weston by using
    weston-launch, as there is no way to know why weston was terminated.
    
    This commit makes weston-launch return 10+N instead, where N is the code
    of the signal that terminated weston. 10 was chosen because it allows a
    script to distinguish it from the case that weston-launch itself was
    killed by a signal (128+N), and does not overlap the standard exit codes
    defined in sysexits.h.
    
    Partial fix for https://bugs.freedesktop.org/show_bug.cgi?id=60935. I
    can't reproduce the SIGHUP using the fbdev backend.
    
    v3: better commit message.
Comment 3 Joe Konno 2013-07-22 17:07:02 UTC
Verified, within context of original filing. There appear to be other issues, though, so new bugs will be filed accordingly to address them.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.