mirror of https://github.com/portainer/portainer
fix(edgestacks): fix a deadlock in UpdateEdgeStackFunc() (#8735)
parent
feab2a757e
commit
1a451823d9
|
@ -100,11 +100,8 @@ func (service ServiceTx) UpdateEdgeStack(ID portainer.EdgeStackID, edgeStack *po
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// UpdateEdgeStackFunc is a no-op inside a transaction.
|
// Deprecated: use UpdateEdgeStack inside a transaction instead.
|
||||||
func (service ServiceTx) UpdateEdgeStackFunc(ID portainer.EdgeStackID, updateFunc func(edgeStack *portainer.EdgeStack)) error {
|
func (service ServiceTx) UpdateEdgeStackFunc(ID portainer.EdgeStackID, updateFunc func(edgeStack *portainer.EdgeStack)) error {
|
||||||
service.service.mu.Lock()
|
|
||||||
defer service.service.mu.Unlock()
|
|
||||||
|
|
||||||
edgeStack, err := service.EdgeStack(ID)
|
edgeStack, err := service.EdgeStack(ID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -112,15 +109,7 @@ func (service ServiceTx) UpdateEdgeStackFunc(ID portainer.EdgeStackID, updateFun
|
||||||
|
|
||||||
updateFunc(edgeStack)
|
updateFunc(edgeStack)
|
||||||
|
|
||||||
err = service.UpdateEdgeStack(ID, edgeStack)
|
return service.UpdateEdgeStack(ID, edgeStack)
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
service.service.idxVersion[ID] = edgeStack.Version
|
|
||||||
service.service.cacheInvalidationFn(ID)
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// DeleteEdgeStack deletes an Edge stack.
|
// DeleteEdgeStack deletes an Edge stack.
|
||||||
|
|
Loading…
Reference in New Issue