-
Notifications
You must be signed in to change notification settings - Fork 29.8k
Description
(splitting this from investigation in #19096 into a more specific issue... the engine was rolled back so this isn't an active issue, but is likely to come back on the next roll if not identified/fixed)
When the engine was last rolled, it caused the microbenchmarks to start failing. This seemed to be caused by flutter run processes not being terminated. There's a bug in the tests (#19208) however the engine roll also had a change in behaviour, and it was the combination of both that caused the failure.
Full details are in #19096, but in summary if you roll the engine forward (it's been since reverted to fix the tests, but unless this issue is fixed, it'll come back on the next roll) and comment out all of the microbenchmarks except these two:
addDart1Results(await _runMicrobench(
'lib/stocks/layout_bench.dart', previewDart2: false));
addDart1Results(await _runMicrobench(
'lib/stocks/build_bench.dart', previewDart2: false));
And then run then; they will fail. If #19200 has landed the message should match what's in the PR, but otherwise you'll get a confusing message about trying to complete a future for a second time.
Before the engine roll (or after the revert), when the second test runs flutter run it would stop the previous app; and that would cause the flutter run process still running in the background (from the first test) to terminate. After the roll (before the revert), this would not happen and both processes would read the output of the second test.
I've not yet been able to repro this outside of the tests (in theory it should be simple to just perform the same actions in two terminal windows).