Activity log for bug #1397250

Date Who What changed Old value New value Message
2014-11-28 09:18:36 Marcello Blancasio bug added bug
2014-12-01 18:22:41 Robie Basak bug added subscriber Robie Basak
2014-12-01 19:43:12 Bryan Quigley bug added subscriber Bryan Quigley
2014-12-01 19:59:57 Bryan Quigley bug watch added http://bugzilla.padl.com/show_bug.cgi?id=414
2014-12-01 20:00:39 Bryan Quigley bug watch added http://bugzilla.padl.com/show_bug.cgi?id=159
2014-12-01 20:00:39 Bryan Quigley bug task added nss-ldap
2014-12-02 01:21:18 Bug Watch Updater nss-ldap: status Unknown Fix Released
2014-12-02 01:21:18 Bug Watch Updater nss-ldap: importance Unknown Medium
2014-12-02 09:19:31 Robie Basak bug added subscriber Ubuntu Server Team
2014-12-02 09:19:52 Robie Basak libnss-ldap (Ubuntu): importance Undecided High
2014-12-02 09:19:59 Robie Basak libnss-ldap (Ubuntu): status New Triaged
2015-08-04 15:51:26 Jon Grimm libnss-ldap (Ubuntu): assignee Jon Grimm (jgrimm)
2015-08-25 15:53:04 Bryan Quigley attachment added break-fork.pl https://bugs.launchpad.net/ubuntu/+source/libnss-ldap/+bug/1397250/+attachment/4452177/+files/break-fork.pl
2016-07-13 08:40:01 Sandro bug added subscriber Sandro
2016-10-20 14:59:27 Robie Basak nominated for series Ubuntu Xenial
2016-10-20 14:59:27 Robie Basak bug task added libnss-ldap (Ubuntu Xenial)
2016-10-20 14:59:27 Robie Basak nominated for series Ubuntu Yakkety
2016-10-20 14:59:27 Robie Basak bug task added libnss-ldap (Ubuntu Yakkety)
2016-10-20 14:59:27 Robie Basak nominated for series Ubuntu Trusty
2016-10-20 14:59:27 Robie Basak bug task added libnss-ldap (Ubuntu Trusty)
2016-10-20 19:48:40 Jon Grimm attachment added libnss-ldap_265-3ubuntu3.debdiff https://bugs.launchpad.net/ubuntu/+source/libnss-ldap/+bug/1397250/+attachment/4764553/+files/libnss-ldap_265-3ubuntu3.debdiff
2016-10-20 19:49:03 Jon Grimm bug added subscriber Ubuntu Sponsors Team
2016-10-20 20:15:25 Jon Grimm attachment added testhosts.pl https://bugs.launchpad.net/ubuntu/+source/libnss-ldap/+bug/1397250/+attachment/4764554/+files/testhosts.pl
2016-10-21 14:12:20 Jon Grimm libnss-ldap (Ubuntu Trusty): assignee Jon Grimm (jgrimm)
2016-10-21 14:12:25 Jon Grimm libnss-ldap (Ubuntu Trusty): status New Confirmed
2016-10-21 15:31:29 Jon Grimm attachment added libnss-ldap_265-3ubuntu3.debdiff https://bugs.launchpad.net/ubuntu/+source/libnss-ldap/+bug/1397250/+attachment/4764884/+files/libnss-ldap_265-3ubuntu3.debdiff
2016-10-21 15:32:58 Jon Grimm attachment removed libnss-ldap_265-3ubuntu3.debdiff https://bugs.launchpad.net/ubuntu/+source/libnss-ldap/+bug/1397250/+attachment/4764553/+files/libnss-ldap_265-3ubuntu3.debdiff
2016-10-21 16:13:35 Robie Basak removed subscriber Ubuntu Sponsors Team
2016-10-21 16:13:39 Robie Basak libnss-ldap (Ubuntu): status Triaged Fix Committed
2016-10-21 17:30:36 Launchpad Janitor libnss-ldap (Ubuntu): status Fix Committed Fix Released
2016-10-24 16:33:17 Jon Grimm libnss-ldap (Ubuntu Trusty): importance Undecided High
2016-10-24 16:33:26 Jon Grimm libnss-ldap (Ubuntu Xenial): status New Won't Fix
2016-10-24 16:33:31 Jon Grimm libnss-ldap (Ubuntu Yakkety): status New Won't Fix
2016-10-24 16:34:14 Jon Grimm attachment added libnss-ldap_264-2.2ubuntu4.14.04.2.debdiff https://bugs.launchpad.net/ubuntu/trusty/+source/libnss-ldap/+bug/1397250/+attachment/4766546/+files/libnss-ldap_264-2.2ubuntu4.14.04.2.debdiff
2016-10-24 17:12:40 Jon Grimm description Ubuntu version: Ubuntu 14.04.1 LTS Package version: libnss-ldap_264-2.2ubuntu4 If a process using libnss-ldap calls fork() and SIGPIPE was blocked, the atfork() handler in the child process failed to catch the SIGPIPE as it was supposed to do, that is in the call to do_close_no_unbind(). So that, the uncaught SIGPIPE will be eventually delivered when the child unblocks signals. This usually make the child process die unexpectedly. I found a well-known Linux vendor fixed this issue with the following patch. This unblocks the SIGPIPE before calling do_close_no_unbind() and restores the original sigmask afterwards: diff -up nss_ldap/ldap-nss.c nss_ldap/ldap-nss.c --- nss_ldap/ldap-nss.c 2009-12-07 20:57:33.000000000 -0500 +++ nss_ldap/ldap-nss.c 2009-12-07 20:58:56.000000000 -0500 @@ -532,8 +532,13 @@ static void do_atfork_child (void) { + sigset_t unblock, mask; debug ("==> do_atfork_child"); + sigemptyset(&unblock); + sigaddset(&unblock, SIGPIPE); + sigprocmask(SIG_UNBLOCK, &unblock, &mask); do_close_no_unbind (); + sigprocmask(SIG_SETMASK, &mask, NULL); _nss_ldap_leave (); debug ("<== do_atfork_child"); } I'd like to see this patch applied. [Impact] * If a process using libnss-ldap calls fork() and SIGPIPE was blocked, the atfork() handler in the child process failed to catch the SIGPIPE as it was supposed to do, that is in the call to do_close_no_unbind(). So that, the uncaught SIGPIPE will be eventually delivered when the child unblocks signals. This usually make the child process die unexpectedly. * This is only reproducible when ldap is configured for STARTTLS. * Upstream fix has been long integrated. [Test Case] * See https://bugs.launchpad.net/ubuntu/trusty/+source/libnss-ldap/+bug/1397250/comments/19 [Regression Potential] * Fix has been upstream since 2010, and limited to path of child forking, and SIGPIPE is blocked. No consequent bugs or regressions in the upstream blamed on this change. [Other Info] * I'm currently limiting my SRU to trusty, as I'm unable to recreate the bug on xenial. Even so, I have tested the fixed code on xenial to ensure there was no regression with the testcase. * Will look at fixing xenial too, IFF someone comes forward able to reproduce the bug/validate the fix.
2016-10-24 17:12:56 Jon Grimm bug added subscriber Ubuntu Sponsors Team
2016-10-24 17:13:01 Jon Grimm libnss-ldap (Ubuntu Trusty): status Confirmed In Progress
2016-11-02 13:19:42 Chris J Arges libnss-ldap (Ubuntu Trusty): status In Progress Fix Committed
2016-11-02 13:19:46 Chris J Arges bug added subscriber Ubuntu Stable Release Updates Team
2016-11-02 13:19:47 Chris J Arges bug added subscriber SRU Verification
2016-11-02 13:19:53 Chris J Arges tags atfork fork sigpipe atfork fork sigpipe verification-needed
2016-11-07 16:06:13 Jon Grimm tags atfork fork sigpipe verification-needed atfork fork sigpipe verification-done
2016-11-08 15:21:19 Sebastien Bacher removed subscriber Ubuntu Sponsors Team
2016-11-10 18:12:35 Launchpad Janitor libnss-ldap (Ubuntu Trusty): status Fix Committed Fix Released
2016-11-10 18:12:42 Brian Murray removed subscriber Ubuntu Stable Release Updates Team
2024-05-07 17:51:33 Launchpad Janitor merge proposal linked https://code.launchpad.net/~liushuyu-011/ubuntu/+source/libnss-ldap/+git/libnss-ldap/+merge/465718
2024-05-09 20:53:23 Vladimir Petko merge proposal unlinked https://code.launchpad.net/~liushuyu-011/ubuntu/+source/libnss-ldap/+git/libnss-ldap/+merge/465718