Clean up a few more daemon behaviors

Authored by epriestley on Mar 24 2017, 8:40 PM.


Clean up a few more daemon behaviors

Ref T12298.

  • If all daemons in all pools are hibernating already, we may exit immediately without sending EXIT events and fail to update the web UI.
  • A max() should be min() ("sleep for at most 180 seconds", not "sleep for at least 180 seconds").
  • If there are no daemons in a pool (unlikely/theoretical), we might not set the shutdown flag on the pool correctly.
  • An autoscale message may actually mean that a pool is exiting.

Test Plan:

  • Ran bin/phd debug task, waited for daemon to hibernate, killed it, saw it vanish from daemon console.
  • Saw it hibernate for 60s, not 180s.
  • Uh, killed a pool real fast and nothing broke? This one is hard/impossible to test.
  • Read the newer autoscale message.

Reviewers: chad

Reviewed By: chad

Maniphest Tasks: T12298

Differential Revision: https://secure.phabricator.com/D17560