Skip to content

Fix race condition between set() and push()

Pre-release
Pre-release
Compare
Choose a tag to compare
@gwynne gwynne released this 24 Oct 09:59
20ebbf1

A worker can end up picking up a job between set() and push(), causing a race condition that results in the job running twice. This update fixes the race by adding an initial state for jobs that haven't yet been pushed.

There is no test included because I couldn't work out a clean way to reliably test for the race.

Fixes #13.

Thanks to @sterien7 for reporting, and to @sidepelican for the excellent analysis of the problem in the original report against the old version of the driver!