Activity log for bug #1748597

Date Who What changed Old value New value Message
2018-02-10 07:41:04 David Bartley bug added bug
2018-02-10 07:42:21 David Bartley description https://bugs.debian.org/827015 was incorporated into the 1.2 package (present on bionic); it would be really nice to backport that fix to prior distros (though I mostly care about trusty and xenial). Without this fix, libunwind will corrupt the signal mask, which breaks enabling the CPU profiler in MongoDB, among other things. https://bugs.debian.org/827015 was incorporated into the 1.2 package (present on bionic); it would be really nice to backport that fix to all prior releases (though I mostly care about trusty and xenial). Without this fix, libunwind will corrupt the signal mask, which breaks the CPU profiler in MongoDB, among other things.
2018-02-10 08:04:00 Hans Joachim Desserud bug watch added https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=827015
2018-02-10 08:04:00 Hans Joachim Desserud bug task added libunwind (Debian)
2018-02-10 09:51:40 David Bartley attachment added sigtest.cpp https://bugs.launchpad.net/ubuntu/+source/libunwind/+bug/1748597/+attachment/5052391/+files/sigtest.cpp
2018-02-10 10:09:32 David Bartley description https://bugs.debian.org/827015 was incorporated into the 1.2 package (present on bionic); it would be really nice to backport that fix to all prior releases (though I mostly care about trusty and xenial). Without this fix, libunwind will corrupt the signal mask, which breaks the CPU profiler in MongoDB, among other things. [Impact] When a C++ exception is thrown with libunwind linked in, the signal mask is corrupted. For MongoDB, if the CPU profiler is enabled (which requires linking libunwind), any exception that is raised within the server may cause random signals to become unblocked on a thread. If SIGTERM becomes unblocked on any thread but the main thread, the server won't exit cleanly (this is particularly evident when running the MongoDB test suite, which starts/stops servers repeatedly). This also seems to impact Pyston: https://lab.nexedi.com/Daetalus/Pyston/commit/1bac7510861a112a9023f821bf3e857a6fb45037 [Test Case] I've attached the test case from the upstream Debian bug (https://bugs.debian.org/827015). $ g++ sigtest.cpp -lpthread Signals blocked: 1 (Hangup) 65 (Unknown signal 65) Throw exception Signals blocked: 1 (Hangup) 65 (Unknown signal 65) $ g++ sigtest.cpp -lpthread -lunwind Signals blocked: 1 (Hangup) 65 (Unknown signal 65) Throw exception Signals blocked: 7 (Bus error) 8 (Floating point exception) 10 (User defined signal 1) 12 (User defined signal 2) 13 (Broken pipe) 15 (Terminated) 17 (Child exited) 20 (Stopped)21 (Stopped (tty input)) 25 (File size limit exceeded) 26 (Virtual timer expired) 27 (Profiling timer expired) 28 (Window changed) 29 (I/O possible) 30 (Power failure) 31 (Bad system call) 32 (Unknown signal 32) 33 (Unknown signal 33) 34 (Real-time signal 0) 35 (Real-time signal 1) 36 (Real-time signal 2) 37 (Real-time signal 3) 38 (Real-time signal 4) 39 (Real-time signal 5) 40 (Real-time signal 6) 41 (Real-time signal 7) 42 (Real-time signal 8) 43 (Real-time signal 9) 44 (Real-time signal 10) 45 (Real-time signal 11) 46 (Real-time signal 12) 47 (Real-time signal 13) 65 (Unknown signal 65) [Regression Potential] This fix is already present in bionic and Debian testing, and has been for a couple months. The upstream fix has existed for over a year.
2018-02-10 10:10:09 David Bartley attachment added 0001-x86_64-Use-sigprocmask-from-signal-frames.patch https://bugs.launchpad.net/ubuntu/+source/libunwind/+bug/1748597/+attachment/5052393/+files/0001-x86_64-Use-sigprocmask-from-signal-frames.patch
2018-02-10 10:10:44 David Bartley attachment added 0001-x86_64-Use-ucontext_t-instead-of-struct-ucontext.patch https://bugs.launchpad.net/ubuntu/+source/libunwind/+bug/1748597/+attachment/5052394/+files/0001-x86_64-Use-ucontext_t-instead-of-struct-ucontext.patch
2018-02-10 10:32:11 Bug Watch Updater libunwind (Debian): status Unknown Fix Released
2018-02-10 12:28:57 Ubuntu Foundations Team Bug Bot tags patch
2018-02-10 12:29:04 Ubuntu Foundations Team Bug Bot bug added subscriber Ubuntu Review Team
2018-02-10 23:33:17 David Bartley description [Impact] When a C++ exception is thrown with libunwind linked in, the signal mask is corrupted. For MongoDB, if the CPU profiler is enabled (which requires linking libunwind), any exception that is raised within the server may cause random signals to become unblocked on a thread. If SIGTERM becomes unblocked on any thread but the main thread, the server won't exit cleanly (this is particularly evident when running the MongoDB test suite, which starts/stops servers repeatedly). This also seems to impact Pyston: https://lab.nexedi.com/Daetalus/Pyston/commit/1bac7510861a112a9023f821bf3e857a6fb45037 [Test Case] I've attached the test case from the upstream Debian bug (https://bugs.debian.org/827015). $ g++ sigtest.cpp -lpthread Signals blocked: 1 (Hangup) 65 (Unknown signal 65) Throw exception Signals blocked: 1 (Hangup) 65 (Unknown signal 65) $ g++ sigtest.cpp -lpthread -lunwind Signals blocked: 1 (Hangup) 65 (Unknown signal 65) Throw exception Signals blocked: 7 (Bus error) 8 (Floating point exception) 10 (User defined signal 1) 12 (User defined signal 2) 13 (Broken pipe) 15 (Terminated) 17 (Child exited) 20 (Stopped)21 (Stopped (tty input)) 25 (File size limit exceeded) 26 (Virtual timer expired) 27 (Profiling timer expired) 28 (Window changed) 29 (I/O possible) 30 (Power failure) 31 (Bad system call) 32 (Unknown signal 32) 33 (Unknown signal 33) 34 (Real-time signal 0) 35 (Real-time signal 1) 36 (Real-time signal 2) 37 (Real-time signal 3) 38 (Real-time signal 4) 39 (Real-time signal 5) 40 (Real-time signal 6) 41 (Real-time signal 7) 42 (Real-time signal 8) 43 (Real-time signal 9) 44 (Real-time signal 10) 45 (Real-time signal 11) 46 (Real-time signal 12) 47 (Real-time signal 13) 65 (Unknown signal 65) [Regression Potential] This fix is already present in bionic and Debian testing, and has been for a couple months. The upstream fix has existed for over a year. [Impact] When a C++ exception is thrown with libunwind linked in, the signal mask is corrupted. For MongoDB, if the CPU profiler is enabled (which requires linking libunwind), any exception that is raised within the server may cause random signals to become unblocked on a thread. If SIGTERM becomes unblocked on any thread but the main thread, the server won't exit cleanly (this is particularly evident when running the MongoDB test suite, which starts/stops servers repeatedly). This also seems to impact Pyston: https://lab.nexedi.com/Daetalus/Pyston/commit/1bac7510861a112a9023f821bf3e857a6fb45037 [Test Case] I've attached the test case from the upstream Debian bug (https://bugs.debian.org/827015). $ g++ sigtest.cpp -lpthread $ ./a.out Signals blocked: 1 (Hangup) 65 (Unknown signal 65) Throw exception Signals blocked: 1 (Hangup) 65 (Unknown signal 65) $ g++ sigtest.cpp -lpthread -lunwind $ ./a.out Signals blocked: 1 (Hangup) 65 (Unknown signal 65) Throw exception Signals blocked: 7 (Bus error) 8 (Floating point exception) 10 (User defined signal 1) 12 (User defined signal 2) 13 (Broken pipe) 15 (Terminated) 17 (Child exited) 20 (Stopped)21 (Stopped (tty input)) 25 (File size limit exceeded) 26 (Virtual timer expired) 27 (Profiling timer expired) 28 (Window changed) 29 (I/O possible) 30 (Power failure) 31 (Bad system call) 32 (Unknown signal 32) 33 (Unknown signal 33) 34 (Real-time signal 0) 35 (Real-time signal 1) 36 (Real-time signal 2) 37 (Real-time signal 3) 38 (Real-time signal 4) 39 (Real-time signal 5) 40 (Real-time signal 6) 41 (Real-time signal 7) 42 (Real-time signal 8) 43 (Real-time signal 9) 44 (Real-time signal 10) 45 (Real-time signal 11) 46 (Real-time signal 12) 47 (Real-time signal 13) 65 (Unknown signal 65) [Regression Potential] This fix is already present in bionic and Debian testing, and has been for a couple months. The upstream fix has existed for over a year.
2018-02-11 04:25:09 David Bartley attachment added debdiff for trusty https://bugs.launchpad.net/ubuntu/+source/libunwind/+bug/1748597/+attachment/5052974/+files/libunwind-trusty.debdiff
2018-02-11 04:25:25 David Bartley attachment added debdiff for xenial https://bugs.launchpad.net/ubuntu/+source/libunwind/+bug/1748597/+attachment/5052975/+files/libunwind-xenial.debdiff
2018-02-11 04:46:17 David Bartley attachment removed debdiff for trusty https://bugs.launchpad.net/ubuntu/+source/libunwind/+bug/1748597/+attachment/5052974/+files/libunwind-trusty.debdiff
2018-02-11 04:46:33 David Bartley attachment added debdiff for trusty https://bugs.launchpad.net/ubuntu/+source/libunwind/+bug/1748597/+attachment/5052980/+files/libunwind-trusty.debdiff
2018-07-26 10:25:59 James Page libunwind (Ubuntu): status New Triaged
2018-07-26 10:26:01 James Page libunwind (Ubuntu): importance Undecided Medium
2018-07-26 10:27:00 James Page nominated for series Ubuntu Xenial
2018-07-26 10:27:00 James Page bug task added libunwind (Ubuntu Xenial)
2018-07-26 10:27:00 James Page nominated for series Ubuntu Trusty
2018-07-26 10:27:00 James Page bug task added libunwind (Ubuntu Trusty)
2018-07-26 10:27:06 James Page libunwind (Ubuntu): status Triaged Fix Released
2018-07-26 10:27:11 James Page libunwind (Ubuntu Xenial): status New Triaged
2018-07-26 10:27:13 James Page libunwind (Ubuntu Trusty): importance Undecided Medium
2018-07-26 10:27:15 James Page libunwind (Ubuntu Xenial): importance Undecided Medium
2018-07-26 10:27:20 James Page libunwind (Ubuntu Trusty): status New Triaged