pruef-call-kategorien gab dreimal von dreimal 127 zurueck -- NACH der Zeile "ALLES IN ORDNUNG". Ursache ist eine libuv-Assertion auf Windows: Assertion failed: !(handle->flags & UV_HANDLE_CLOSING), file src\win\async.c, line 94 `process.exit()` schlaegt zu, waehrend Playwright seinen Transportkanal noch abbaut. Das Ergebnis stimmte, der Rueckgabewert log. In einem Sammellauf zaehlt so ein Lauf als Fehlschlag, obwohl nichts fehlschlug -- und wer sich angewoehnt, den Rueckgabewert dieser einen Datei zu ignorieren, uebersieht spaeter den echten. Meine Notiz sagte "sporadisch". Es war drei von drei. Auch eigene Notizen altern. MEIN ERSTER FIX WAR DIE ELEGANTERE LOESUNG UND DIE SCHLECHTERE. Ich wollte keine feste Pause -- 400 ms sind eine Rechnung auf DIESEM Rechner, und auf einem langsameren waere der Fehler still zurueckgekommen. Also: auf das Ereignis "disconnected" warten, danach zwoelf Runden der Ereignisschleife (setImmediate). Sauber begruendet. Gemessen: ZWEI VON DREI Laeufen weiterhin 127. Die feste Pause, die ich fuer schlechter hielt, war zweimal gruen. Die Annahme war falsch: "disconnected" meldet, dass die Verbindung weg ist, nicht dass der Kanal abgebaut ist -- und setImmediate gibt der Schleife Durchlaeufe, aber keine ZEIT. Der Kindprozess braucht echte Millisekunden. Eine stimmige Herleitung ersetzt keine Messung. Jetzt beides: erst das Ereignis (richtige Ordnung), dann eine zeitliche Reserve von 600 ms gegen gemessene 400, ueber PRUEF_ABBAU_MS einstellbar. Fuenf Laeufe hintereinander gruen. Neu: server/helfer-beenden.mjs (sauberBeenden) und tools/mess-rueckgabewerte.sh -- letzteres misst alle 42 Browser- Pruefungen mit demselben Muster daraufhin, ob noch weitere "in Ordnung" melden und trotzdem einen Fehlercode zurueckgeben. Laeuft nacheinander, nicht parallel: Zwei gleichzeitige Prueflaeufe sind kein Prueflauf. Co-Authored-By: Claude Opus 5 <[email protected]>
44 lines
1.6 KiB
Bash
44 lines
1.6 KiB
Bash
#!/usr/bin/env bash
|
|
# Welche Browser-Pruefungen melden "in Ordnung" und geben trotzdem einen
|
|
# Fehler-Rueckgabewert zurueck?
|
|
#
|
|
# Hintergrund: pruef-call-kategorien gab dreimal von dreimal 127 zurueck,
|
|
# NACH "ALLES IN ORDNUNG" -- eine libuv-Assertion beim Beenden (Playwright-
|
|
# Transportkanal wird abgebaut, waehrend process.exit() zuschlaegt).
|
|
# Behoben ueber server/helfer-beenden.mjs. Offen war: Wie viele andere
|
|
# Dateien mit demselben Muster haben dasselbe Problem?
|
|
#
|
|
# NACHEINANDER, nicht parallel: Die Pruefungen belegen feste Ports und
|
|
# legen dieselben Testkonten an. Zwei gleichzeitige Laeufe sind kein
|
|
# Prueflauf, sondern zwei kaputte (06.09.2026, RunOne).
|
|
#
|
|
# Aufruf: bash tools/mess-rueckgabewerte.sh
|
|
|
|
cd "$(dirname "$0")/.." || exit 1
|
|
AUS="rueckgabewerte-$(date +%Y%m%d-%H%M%S).txt"
|
|
echo "Messlauf gestartet $(date '+%H:%M:%S')" | tee "$AUS"
|
|
|
|
luegner=0
|
|
gemessen=0
|
|
for f in server/pruef-*.mjs; do
|
|
grep -q 'await import("./index.js")' "$f" || continue
|
|
grep -q "playwright" "$f" || continue
|
|
name=$(basename "$f")
|
|
ausgabe=$(node "$f" 2>&1)
|
|
code=$?
|
|
gemessen=$((gemessen + 1))
|
|
letzte=$(echo "$ausgabe" | grep -viE "^$" | tail -1 | cut -c1-60)
|
|
if echo "$ausgabe" | grep -qiE "ALLES IN ORDNUNG|Alles in Ordnung" && [ "$code" -ne 0 ]; then
|
|
echo "LUEGT $name -> EXIT=$code | $letzte" | tee -a "$AUS"
|
|
luegner=$((luegner + 1))
|
|
elif [ "$code" -ne 0 ]; then
|
|
echo "rot $name -> EXIT=$code | $letzte" | tee -a "$AUS"
|
|
else
|
|
echo "ok $name" | tee -a "$AUS"
|
|
fi
|
|
done
|
|
|
|
echo "" | tee -a "$AUS"
|
|
echo "$gemessen Browser-Pruefungen gemessen, $luegner mit luegendem Rueckgabewert." | tee -a "$AUS"
|
|
echo "Fertig $(date '+%H:%M:%S')" | tee -a "$AUS"
|