The GitHub Actions job "Tests (AMD)" on 
airflow.git/repro-go-sdk-activeworkloads-race has succeeded.
Run started by GitHub user ColtenOuO (triggered by ColtenOuO).

Head commit for run:
af0c263a9e1b855b40dc87cc34e25f9dc2ef6309 / ColtenOuO <[email protected]>
Go SDK: fix data race on Edge Worker's activeWorkloads map

Every fetched job is dispatched via `go w.runWorkload(...)`, which reads
and writes worker.activeWorkloads from that goroutine, while heartbeat()
and the drain check in mainLoop() read it from a different goroutine --
all without synchronization. Since maxConcurrency defaults to 16, running
more than one task at a time is the normal case, not an edge case.

Reproduced with `go test -race` (4 distinct races reported) and, without
-race, an actual unrecoverable `fatal error: concurrent map writes` that
crashes the whole worker process, not just one task.

Guard all reads/writes of activeWorkloads with a mutex.

Report URL: https://github.com/apache/airflow/actions/runs/29829966598

With regards,
GitHub Actions via GitBox


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to