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
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to