-
Type:
Task
-
Resolution: Unresolved
-
Priority:
Major - P3
-
Affects Version/s: None
-
Component/s: Bazel
-
Server Programmability
-
Programmability 2026-08-04
-
None
-
None
-
None
-
None
-
None
-
None
-
None
Flushes streams before aborting on each abort path.
There's a risk of introducing deadlock behaviour by putting a flush in an abort path. However:
- Limit risk of flush issues by only flushing stdout/stderr.
- `callAbort` is only used in assert_util.cpp by assertions that all already log directly before the abort so they already carry the same level of risk without the flush.
- `quickExit` has a `quickExitWithoutLogging` variant that ensures no logging paths occur. The documentation for `quickExit` indicates that it does pre-exit checks that could log. Adding flushes does not significantly change the risk profile.
Fixes issue with 'bazel test' output not capturing unit test information. Discovered when unit testing where tripwire assert had fired during a test causing haveTripwireAssertionsOccurred to fire during TestingProctor::exitAbruptlyIfDeferredErrors.