← Back to team overview

touch-packages team mailing list archive

[Bug 530779] Re: init: does not wait for parent to exit when following forks

 

This bug has been reported on the Ubuntu ISO testing tracker.

A list of all reports related to this bug can be found here:
http://iso.qa.ubuntu.com/qatracker/reports/bugs/530779

** Tags added: iso-testing

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to upstart in Ubuntu.
https://bugs.launchpad.net/bugs/530779

Title:
  init: does not wait for parent to exit when following forks

Status in upstart :
  In Progress
Status in upstart package in Ubuntu:
  Triaged
Status in upstart source package in Precise:
  Triaged

Bug description:
  When following a fork, once Upstart receives the new pid, it
  immediately starts following that and forgets about the parent
  entirely not even waiting for it to exit.

  There are two problems with this:

  The first is the kind of daemon that forks early, but then maintains
  communication with the parent so that the parent can exit with an
  appropriate exit code in case of error (rather than the kind which
  only fork once they are ready).  These kinds aren't ready until the
  parent exits, not at the point of the fork.  Since upstart follows the
  fork, it will think they are ready "too early"

  The second is simply any that writes a pid file (which is perhaps a
  simplification of the above), if they write the pid file in the parent
  (as even nih_main_daemonise does!) then there's no guarantee the pid
  file actually exists when the "start" command returns.

  (Other than the fact we use ptrace tends to mean that the race works
  out in our favour)

To manage notifications about this bug go to:
https://bugs.launchpad.net/upstart/+bug/530779/+subscriptions