Repository navigation
fmtk e2e: restart_app tolerates a dead isolate in its pre-restart drain (#3469) - #3539
Merged
Merged
Conversation
…in (#3469) The nightly flows cascade: test_auth ends on a deep-link boot whose instance dies, and the first network scenario's designated recovery — Harness.restart_app() — died in its own pre-restart drain (get_app_errors: 'No Flutter isolate found'), so the restart never ran and every following scenario failed on the dead connection, night after night. The drain now treats the gone-isolate signature as an empty drain (the same trade FlutterRun.recover_from_wedge documents: an error the dying instance threw in its last undriven moments can no longer fail its test) and proceeds with the stop/relaunch; the wedge marker the outgoing instance armed is cleared. Real drained errors and any other drain failure still raise.
mcdonc
force-pushed
the
i3469-fmtk-e2e-f
branch
from
October 2, 2026 13:43
36062ad to
841243a
Compare
This was referenced Oct 2, 2026
Closed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Harness.restart_app()— the fmtk e2e harness's designated recovery for a dead dwds debug connection — died in its own pre-restart drain:get_app_errorson a gone isolate raisedNo Flutter isolate foundbefore the stop/relaunch could run, so the restart never happened. One dead instance then converted into the flows group's nightly cascade (all fourtest_network.pyscenarios + three teardownno_app_errorsERRORs, every scheduled run since the suite split of #3404).The pre-restart drain now treats the gone-isolate signature as an empty drain and proceeds with the stop/relaunch — the same deliberate trade
FlutterRun.recover_from_wedgealready documents: an error the dying instance threw in its last undriven moments can no longer fail its test. The relaunch also clears the wedge marker (isolate_gone_since), which describes the outgoing instance. Real drained errors and any other drain failure still raise, so the drain's laundering protection is unchanged for live apps.Pinned in
test_harness_recovery.pyalongside the existing wedge-recovery legs: a gone-isolate drain relaunches and clears the marker; a drain with real errors and an unrelated drain failure both still raise before any stop.Closes #3469.