Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Ensure that pending events in BuildEventStreamer are resolved in FIFO…
… order. 1. `TestAttempt` events would wait for the `TargetCompleteEvent` to be posted before being posted. 2. There was an implicit requirement for the `TestAttempt` events to be posted in a specific order. 3. This didn't break in the noskymeld case because we fulfilled this ordering by using the order of performing the attempts themselves. The sequence would look like: + post `TargetCompleteEvent` -> perform attempt #1 -> post `TestAttempt` #1 -> perform attempt bazelbuild#2 -> post `TestAttempt` bazelbuild#2 4. With skymeld, however, it could happen like this: + defer `TargetCompleteEvent` to wait for `CoverageActionFinishedEvent` + perform attempt #1 -> defer posting `TestAttempt` #1 & wait for `TargetCompleteEvent` + perform attempt bazelbuild#2 -> defer posting `TestAttempt` bazelbuild#2 & wait for `TargetCompleteEvent` + `CoverageActionFinishedEvent` -> release & post `TargetCompleteEvent` + `TargetCompleteEvent` -> release & post `TestAttempt` bazelbuild#2 + `TargetCompleteEvent` -> release & post `TestAttempt` #1 Due to (2), the undefined ordering in (4) would cause an issue. This CL fixes that by ensuring a FIFO ordering of the deferred events. PiperOrigin-RevId: 572165337 Change-Id: Iac4d023d946865b8b81f15b119417192dc4b5c53
- Loading branch information