diff --git a/.changelog/5361.bugfix.md b/.changelog/5361.bugfix.md new file mode 100644 index 00000000000..ee77bc86130 --- /dev/null +++ b/.changelog/5361.bugfix.md @@ -0,0 +1 @@ +go/worker/common: Reset runtime provisioned status on failure diff --git a/go/worker/common/committee/node.go b/go/worker/common/committee/node.go index 840b9af84c6..8fd422b81da 100644 --- a/go/worker/common/committee/node.go +++ b/go/worker/common/committee/node.go @@ -604,9 +604,13 @@ func (n *Node) handleNewEventLocked(ev *roothash.Event) { // Guarded by n.CrossNode. func (n *Node) handleRuntimeHostEventLocked(ev *host.Event) { - if ev.Started != nil { + switch { + case ev.Started != nil: atomic.StoreUint32(&n.hostedRuntimeProvisioned, 1) + case ev.FailedToStart != nil, ev.Stopped != nil: + atomic.StoreUint32(&n.hostedRuntimeProvisioned, 0) } + for _, hooks := range n.hooks { hooks.HandleRuntimeHostEventLocked(ev) }