You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Jan 30, 2020. It is now read-only.
When fleet starts, it attempts to unload any units locally that it knows it started in a past life, but are now scheduled elsewhere [0]. As soon as fleet kicks off the unload routine for that unit, it subscribes to events. If the unit that fleet just started unloading is then scheduled back to that machine, fleet will start it [1]. These two routines are now racing to finish first. If the unload finishes first, everything is ok. If the unload doesn't finish before the unit is scheduled, you'll get into this situation:
$ fleetctl list-units
UNIT STATE LOAD ACTIVE SUB DESC MACHINE
foo.service launched not-found inactive failed - af6ffd86.../192.0.2.32
The unit clearly has state published for it, but it's "not-found". This is because the unload routine finished after the unit was started, and destroyed the unit file on disk.
Not to burst your bubble pal, but Reconcile is basically just Initialize by another name, so I'd say this ticket still applies. But if you want to consider it addressed by #646 that is probably sufficient.
That's what I was implying. Reconcile is different than Initialize, however, as it does not run while events are also mutating state. #646 covers the whole issue at this point
When fleet starts, it attempts to unload any units locally that it knows it started in a past life, but are now scheduled elsewhere [0]. As soon as fleet kicks off the unload routine for that unit, it subscribes to events. If the unit that fleet just started unloading is then scheduled back to that machine, fleet will start it [1]. These two routines are now racing to finish first. If the unload finishes first, everything is ok. If the unload doesn't finish before the unit is scheduled, you'll get into this situation:
The unit clearly has state published for it, but it's "not-found". This is because the unload routine finished after the unit was started, and destroyed the unit file on disk.
[0]
fleet/agent/agent.go
Line 111 in 733fa11
[1]
fleet/agent/agent.go
Line 111 in 733fa11
The text was updated successfully, but these errors were encountered: