Skip to content

Conversation

@ioquatix
Copy link
Member

@ioquatix ioquatix commented Sep 1, 2025

There is a race condition in Async::Barrier that occurred when barrier.stop is called while tasks are still finishing, particularly those with ensure blocks. When stop is called, it closes the internal queue used for task completion signaling. However, tasks that are still executing their cleanup code (in ensure blocks) would attempt to signal their completion to this now-closed queue, resulting in a Queue::ClosedError.

Types of Changes

  • Bug fix.

Contribution

@ioquatix ioquatix force-pushed the async-barrier-stop-race branch 2 times, most recently from 9303110 to 314d082 Compare September 1, 2025 01:43
@ioquatix ioquatix force-pushed the async-barrier-stop-race branch from 314d082 to edf01b7 Compare September 1, 2025 01:44
@ioquatix ioquatix merged commit 35ef83e into main Sep 1, 2025
73 of 79 checks passed
@ioquatix ioquatix deleted the async-barrier-stop-race branch September 1, 2025 02:01
@ioquatix ioquatix added this to the v2.28.1 milestone Sep 1, 2025
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.

2 participants