Skip to content

Conversation

@rjernst
Copy link
Member

@rjernst rjernst commented Oct 30, 2025

When rescheduling a task, the task may begin running before the test is able to take more actions. This means reseting the barriers in the auto reschedule test may occur after the second run of the task has begun, which results in a broken barrier.

This commit fixes the race condition by moving the reset of each barrier to occur after the await for the relevant barrier. This ensures that each barrier is ready to be awaited on again by the end of the run. Due to there being two barriers, the second barrier may be reset after the test codes second barrier1.await, but that is ok.

closes #131150

When rescheduling a task, the task may begin running before the test is
able to take more actions. This means reseting the barriers in the auto
reschedule test may occur after the second run of the task has begun,
which results in a broken barrier.

This commit fixes the race condition by moving the reset of each barrier
to occur after the await for the relevant barrier. This ensures that
each barrier is ready to be awaited on again by the end of the run. Due
to there being two barriers, the second barrier may be reset after the
test codes second barrier1.await, but that is ok.

closes elastic#131150
@rjernst rjernst added >test Issues or PRs that are addressing/adding tests :Core/Infra/Core Core issues without another label auto-backport Automatically create backport pull requests when merged branch:9.2 branch:9.1 branch:8.19 labels Oct 30, 2025
@elasticsearchmachine
Copy link
Collaborator

Pinging @elastic/es-core-infra (Team:Core/Infra)

@rjernst rjernst requested a review from a team October 31, 2025 03:32
Copy link
Contributor

@ldematte ldematte left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That was tricky!
LGTM

@rjernst rjernst merged commit 071d549 into elastic:main Oct 31, 2025
34 checks passed
@rjernst rjernst deleted the util/async_task_test_race branch October 31, 2025 13:24
rjernst added a commit to rjernst/elasticsearch that referenced this pull request Oct 31, 2025
When rescheduling a task, the task may begin running before the test is
able to take more actions. This means reseting the barriers in the auto
reschedule test may occur after the second run of the task has begun,
which results in a broken barrier.

This commit fixes the race condition by moving the reset of each barrier
to occur after the await for the relevant barrier. This ensures that
each barrier is ready to be awaited on again by the end of the run. Due
to there being two barriers, the second barrier may be reset after the
test codes second barrier1.await, but that is ok.

closes elastic#131150
rjernst added a commit to rjernst/elasticsearch that referenced this pull request Oct 31, 2025
When rescheduling a task, the task may begin running before the test is
able to take more actions. This means reseting the barriers in the auto
reschedule test may occur after the second run of the task has begun,
which results in a broken barrier.

This commit fixes the race condition by moving the reset of each barrier
to occur after the await for the relevant barrier. This ensures that
each barrier is ready to be awaited on again by the end of the run. Due
to there being two barriers, the second barrier may be reset after the
test codes second barrier1.await, but that is ok.

closes elastic#131150
rjernst added a commit to rjernst/elasticsearch that referenced this pull request Oct 31, 2025
When rescheduling a task, the task may begin running before the test is
able to take more actions. This means reseting the barriers in the auto
reschedule test may occur after the second run of the task has begun,
which results in a broken barrier.

This commit fixes the race condition by moving the reset of each barrier
to occur after the await for the relevant barrier. This ensures that
each barrier is ready to be awaited on again by the end of the run. Due
to there being two barriers, the second barrier may be reset after the
test codes second barrier1.await, but that is ok.

closes elastic#131150
@elasticsearchmachine
Copy link
Collaborator

💚 Backport successful

Status Branch Result
9.2
8.19
9.1

elasticsearchmachine pushed a commit that referenced this pull request Oct 31, 2025
When rescheduling a task, the task may begin running before the test is
able to take more actions. This means reseting the barriers in the auto
reschedule test may occur after the second run of the task has begun,
which results in a broken barrier.

This commit fixes the race condition by moving the reset of each barrier
to occur after the await for the relevant barrier. This ensures that
each barrier is ready to be awaited on again by the end of the run. Due
to there being two barriers, the second barrier may be reset after the
test codes second barrier1.await, but that is ok.

closes #131150
elasticsearchmachine pushed a commit that referenced this pull request Oct 31, 2025
When rescheduling a task, the task may begin running before the test is
able to take more actions. This means reseting the barriers in the auto
reschedule test may occur after the second run of the task has begun,
which results in a broken barrier.

This commit fixes the race condition by moving the reset of each barrier
to occur after the await for the relevant barrier. This ensures that
each barrier is ready to be awaited on again by the end of the run. Due
to there being two barriers, the second barrier may be reset after the
test codes second barrier1.await, but that is ok.

closes #131150
elasticsearchmachine pushed a commit that referenced this pull request Oct 31, 2025
When rescheduling a task, the task may begin running before the test is
able to take more actions. This means reseting the barriers in the auto
reschedule test may occur after the second run of the task has begun,
which results in a broken barrier.

This commit fixes the race condition by moving the reset of each barrier
to occur after the await for the relevant barrier. This ensures that
each barrier is ready to be awaited on again by the end of the run. Due
to there being two barriers, the second barrier may be reset after the
test codes second barrier1.await, but that is ok.

closes #131150
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

auto-backport Automatically create backport pull requests when merged :Core/Infra/Core Core issues without another label Team:Core/Infra Meta label for core/infra team >test Issues or PRs that are addressing/adding tests v8.19.7 v9.1.7 v9.2.1 v9.3.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[CI] AbstractAsyncTaskTests testAutoRepeat failing

3 participants