You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Scheduler._new_version is called whenever a new version is released. It then waits for the intent lock before updating the scheduler's internal state. If two requests come in very shortly after another, I believe it's possible for them to race, one passing an older version to _new_version, while it might still acquire the lock later than the other one.
Solution: move the intent lock one level higher up: drop it from _new_version and add it on new_version and _initialize instead, before fetching the latest version from the database. This ensures monotonically increasing versions to the _new_version call.
The text was updated successfully, but these errors were encountered:
Scheduler._new_version
is called whenever a new version is released. It then waits for the intent lock before updating the scheduler's internal state. If two requests come in very shortly after another, I believe it's possible for them to race, one passing an older version to_new_version
, while it might still acquire the lock later than the other one.Solution: move the intent lock one level higher up: drop it from
_new_version
and add it onnew_version
and_initialize
instead, before fetching the latest version from the database. This ensures monotonically increasing versions to the_new_version
call.The text was updated successfully, but these errors were encountered: