I built an X server with this patch and tested it. However, apport does
not seem to be called at all. The X.org log says "re-raising 11", and in
strace I see:
7363 --- SIGSEGV (Segmentation fault) @ 0 (0) ---
7363 rt_sigaction(SIGSEGV, {SIG_IGN}, {0x80b4ce0, [SEGV], SA_RESTART}, 8) = 0
[...]
7363 write(2, " ddxSigGiveUp: re-raising 11\n", 29) = 29
7363 tgkill(7363, 7363, SIGSEGV) = 0
7363 exit_group(1) = ?
This looks a little weird, since tgkill() expects a "thread id". I am
not actually sure what this means, and whether it is actually identical
to the process ID. If I do
strace -f sh -c 'kill -SEGV $$'
I get
kill(7022, SIGSEGV) = 0
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV (core dumped) +++
NB the "core dumped", which I do *not* see for the X process. (and thus
apport is never called).
raise(3) indicates that in a multi-threaded program, raise() is not
equivalent to kill(), but to pthread_kill(pthread_self(), sig); I guess
this eventually leads to calling tgkill().
So at this point I'm lost. It might be a kernel bug that it doesn't dump
core for tgkill(), or something weird about signal handling in multi-
threaded programs which I don't understand.
--
Xorg crashes do not work with apport
https://bugs.launchpad.net/bugs/226668
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs