mirror of
https://github.com/coder/coder.git
synced 2026-09-24 15:04:27 +08:00
fix(coderd): add blocking GetProvisionerJobByIDWithLock for workspace build cancellation (#19737)
Closes https://github.com/coder/internal/issues/885 Adds a new database method GetProvisionerJobByIDWithLock that uses FOR UPDATE without SKIP LOCKED to fix workspace build cancellation returning 500 errors when jobs are locked.
This commit is contained in:
@@ -663,7 +663,7 @@ func (api *API) patchCancelWorkspaceBuild(rw http.ResponseWriter, r *http.Reques
|
||||
return xerrors.New("user is not allowed to cancel workspace builds")
|
||||
}
|
||||
|
||||
job, err := db.GetProvisionerJobByIDForUpdate(ctx, workspaceBuild.JobID)
|
||||
job, err := db.GetProvisionerJobByIDWithLock(ctx, workspaceBuild.JobID)
|
||||
if err != nil {
|
||||
code = http.StatusInternalServerError
|
||||
resp.Message = "Internal error fetching provisioner job."
|
||||
|
||||
Reference in New Issue
Block a user