Skip to content

fix: use background context for async worker release#498

Open
Mesut Oezdil (mesutoezdil) wants to merge 2 commits into
agent-substrate:mainfrom
mesutoezdil:fix/worker-release-context
Open

fix: use background context for async worker release#498
Mesut Oezdil (mesutoezdil) wants to merge 2 commits into
agent-substrate:mainfrom
mesutoezdil:fix/worker-release-context

Conversation

@mesutoezdil

Copy link
Copy Markdown
Contributor

AssignWorkerStep starts a background goroutine to release a stale
worker assignment. It builds its context from the request ctx, but
that ctx is cancelled right after the workflow returns (releaseLock
runs on defer). If the goroutine has not called UpdateWorker yet, the
call fails with a cancelled context and the worker keeps the stale
assignment forever. Nothing else clears it while the pod is alive.

Fix: use context.Background() for the release call, same pattern used
in cmd/atenet/internal/router/resumer.go.

Tested with go test ./cmd/ateapi/internal/controlapi/...

The release goroutine used the workflow ctx, which is cancelled
right after the request returns. This can kill the release call
before it runs, leaving the worker stuck with a stale assignment.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant