> How is systemd relevant?

Because it replaced upstart, and support for discontinued software tends
to get much less attention. If the issue was known for years and wasn't
fixed while the software still had a future, it became extremely
unlikely to be fixed once it didn't have a future.

> Precise is still supported. Trusty will be supported until 2019.

It's now 2021, and Trusty is in it's extended security maintenance
phase, of which this issue certainly does not qualify for. So it seems
the assessment was accurate.

-- 
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/703800

Title:
  init: restart command fails to restart main process when pre-stop
  stanza exists

Status in upstart :
  Triaged
Status in upstart package in Ubuntu:
  Triaged

Bug description:
  While testing the portmap daemon's recent changes in Ubuntu which
  cause statd to properly follow it on stop/start, I tried to restart
  portmap, only to find that it was not in fact restarted.

  This happens with any job that has a pre-stop. The reason is that in
  job_restart(), the code does this:

  
      job_change_goal (job, JOB_STOP);
      job_change_goal (job, JOB_START);

  job_change_goal will return as soon as the *first* state change has
  been completed. If there is no pre-stop, that is the change from
  JOB_RUNNING to JOB_KILLED, which does dutifully kill the main process.

  However, if there is a pre-stop, the pre-stop is run, but then
  job_change_state returns to job_change_goal, which then returns to
  job_restart, which then changes the goal back to start, which makes
  the new job_next_state() one that will bypass the change to
  JOB_KILLED.

  This was found on upstart v0.6.7-3 in Ubuntu, but also exists in the
  code in the current trunk.

  TEST CASE

  1. create job file /etc/init/test-restart-prestop.conf  with this content:
  # test-restart-prestop

  pre-stop exec /bin/true

  exec /bin/sleep 3600
  2. run "start test-restart-prestop" -- record pid of job
  3. immediately run "restart test-restart-prestop" -- if bug is present, pid 
remains the same when it should be a new pid.

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

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to