test(windows): native_git_mirror faalt intermitterend op de spiegel-CI (git-timeouts + file-locking) #933
Labels
No labels
accepted
bug
declined
docs
duplicate
enhancement
good first issue
in-progress
needs-info
privacy
security
triage
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
LibreKAT/Ocideck#933
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Op de volledige-matrix-CI van de GitHub-spiegel (
Test (windows-2022)) faalttest/native_git_mirror_test.dartintermitterend. Het is bestaande, nondeterministische flakiness — niet door #926/#928 veroorzaakt:native_git_mirror30/0 groen;Symptomen
De "native commit/push"-groep doet echte
git-subprocessen (clone/commit/push/diff) inDirectory.systemTemp. Op de Windows-runner:TimeoutException after 0:00:30— een git-operatie haalt de 30s-testlimiet niet onder gelijktijdige belasting (flutter testdraait bestanden parallel; git is traag op Windows-CI).PathAccessException: Deletion failed ... (OS Error: The process cannot access the file because it is being used by another process, errno = 32)— detearDown(temp.deleteSync(recursive: true)) kan de temp-map niet weg krijgen omdat git (of de virusscanner) nog een handle vasthoudt.fatal: destination path '…/seed' already exists and is not an empty directory— een clone in een map die de vorige, mislukte test niet kon opruimen.Voorgestelde aanpak (te verifiëren via de spiegel-CI, ~46 min/ronde)
tearDown: errno 32 een paar keer met korte pauze opnieuw proberen (bekend Windows-patroon) — breekt de cascade waarin een vastzittende map de volgende test besmet.Aandachtspunt: 3 kan de looptijd van de hele Windows-leg verlengen; weeg af tegen 1+2, die het grootste deel van de cascade al zouden moeten wegnemen. Niet lokaal te reproduceren (macOS), dus verifiëren gaat CI-gated.
Losgekoppeld van #926 (die de 15 deterministische testbugs oploste en gemerged is in #928). Zolang deze flakiness bestaat, blijft de Windows-leg intermitterend rood — zonder release-impact (de echte uitbrengpoort is Forgejo-op-tag op de Mac-runner).
Opgelost in #937 (op main als
5f97de9f).Twee Windows-specifieke oorzaken weggenomen:
deleteSyncvan de tempmap probeert het nu een paar keer opnieuw met een korte pauze (nieuwe hulptest/support/temp_dir.dart) en berust na de laatste poging zonder te gooien, zodat een vastzittende map de volgende test niet meer besmet.@OnPlatform-annotatie geeft de suite op Windows drie minuten per test; elders blijft de strakke 30s staan.Aanpak 3 uit de issue (serialiseren) is bewust niet gedaan — achter de hand als de spiegel-CI toch rood blijft. Regressietest voor de herhaal-lus in
test/support_temp_dir_test.dart.make check,make check-secretsenmake sastgroen; niet lokaal te reproduceren (macOS), dus de definitieve bevestiging komt van de Windows-leg van de spiegel-CI.