[Merge] lp:~jamesodhunt/upstart/bug-901038 into lp:upstart

James Hunt james.hunt at canonical.com
Fri Aug 29 15:38:53 UTC 2014


>Should there be some kind of timeout, say a minute or so to catch the unlikely case where upstart
> is messed up an never starts listening again on dbus?
I can understand the concern, but I don't think we can realistically provide a timeout as we don't know what a reasonable re-exec time is in all circumstances: infinity's >1 minute re-exec time was clearly the result of a bug (bug 1338637), but the re-exec _did_ complete correctly - it just took a very long time.

Also, telinit is connecting to the private D-Bus socket and if that isn't available, Upstarts capabilities are then severly restricted.


> Also, you mention that a rejected reexec request is unlikely, but what happens if a non-root user
> does it, wouldn't that fail and then have the rest of the code return success anyway?
If a non-root user runs 'telinit u', they get rejected immediately as telinit ensures the user running the command is root. I think the only scenarios where the re-exec request would be rejected are:

1) Where telinit is attempting to talk to an old version of upstart that doesn't support re-exec.
   We can ignore this scenario as we don't support down-grade scenarios.

2) Where telinit is attempting to talk to a non-Upstart init daemon.

   I guess this could be an issue in Ubuntu, depending on exactly how we manage the init 
   transition. However, we should be able to arrange for maintainer scripts to set 
   UPSTART_TELINIT_U_NO_WAIT to avoid that issue.




-- 
https://code.launchpad.net/~jamesodhunt/upstart/bug-901038/+merge/231705
Your team Upstart Reviewers is requested to review the proposed merge of lp:~jamesodhunt/upstart/bug-901038 into lp:upstart.



More information about the upstart-devel mailing list