atuq: la TASA — pinta 3 de 13 con el perfil del usuario, y cuando pinta siempre a ~200 s
Diez corridas idénticas con `scripts/cosmic/tasa-primera-pintura.sh` (--as-user, VGA=1, ventana 480 s,
captura cada 30 s), más las cinco anteriores, todas anotadas en docs/state/primera-pintura.json:
perfil del usuario 3 de 13 pintaron 184, 199, 204 s
perfil nuevo en tmpfs 2 de 2 197, 197 s
Dos cosas que la tasa dice y una anécdota no podía: cuando pinta, pinta SIEMPRE en la misma ventana
(184…204 s) y nunca a los 300, 400 ni 900 ⇒ no es una cola larga, son DOS REGÍMENES —o sale a los
~200 s o no sale—; y con el perfil del usuario falla ~3 de cada 4, mientras que con perfil nuevo en
tmpfs no falló (2 de 2, pocas corridas para afirmar que nunca, suficientes para saber dónde mirar:
qué hace el primer arranque del perfil que el perfil ya hecho no hace).
⚠ Condición de la medida, parte del número: las diez salieron con el anfitrión a load ~10 (tanda de
KDE de otro agente + una VM de otra sesión, en 4 cores). El número es un PISO, no una constante.
⚠ Y una trampa del arnés medida en las corridas 8–10: con esa carga el guest tarda más de 420 s en
llegar al shell y los `esperar` vencen. No las invalida —se verificó una por una que el navegador se
lanzó y dejó su MOZ_LOG de 1200–5000 líneas— pero una corrida abortada de verdad se ve casi igual:
por eso el guion cuenta las abortadas APARTE en vez de sumarlas a los fallos.
This commit is contained in:
Executable
+38
@@ -0,0 +1,38 @@
|
||||
#!/bin/sh
|
||||
# tasa-primera-pintura.sh — corre N veces `atuq-en-imagen.py` y saca la TASA, no una anécdota.
|
||||
#
|
||||
# scripts/cosmic/tasa-primera-pintura.sh [N] (def 10)
|
||||
#
|
||||
# ── POR QUÉ UNA TASA ───────────────────────────────────────────────────────────────────────────
|
||||
# El §6.10.sexies del SDD 26 midió cinco corridas sobre la MISMA imagen: pintó en tres (+197, +197,
|
||||
# +204 s) y no pintó en dos, siendo las dos últimas el MISMO comando. Con un fallo intermitente una
|
||||
# corrida no decide en ningún sentido —ni el ✓ ni el ✗—, así que lo que hay que publicar es cuántas
|
||||
# de cuántas. Cada corrida deja su entrada en `docs/state/primera-pintura.json` (el guion ACUMULA) y
|
||||
# `scripts/vigia-imagen.py` informa la tasa.
|
||||
#
|
||||
# ⚠ Una corrida ABORTADA no es un ✗. Si la VM muere por fuera —este repo es compartido y hay sesiones
|
||||
# que matan todos los `qemu` de la máquina— el guion no llega a anotar nada; acá se detecta mirando
|
||||
# que la salida traiga el veredicto, y se cuenta aparte. Un aborto contado como fallo infla la tasa
|
||||
# de fallo con algo que no es del producto.
|
||||
set -u
|
||||
ROOT="$(cd "$(dirname "$0")/../.." && pwd)"; cd "$ROOT"
|
||||
N="${1:-10}"
|
||||
WAIT="${WAIT:-480}"; CADENCE="${CADENCE:-30}"
|
||||
ok=0; fallo=0; aborto=0; i=1
|
||||
echo "== $N corridas · --as-user · VGA=1 · ventana ${WAIT}s · cadencia ${CADENCE}s"
|
||||
while [ "$i" -le "$N" ]; do
|
||||
log="work/tasa-$i.txt"
|
||||
VGA=1 MEM="${MEM:-2560}" SMP="${SMP:-2}" timeout 2400 \
|
||||
python3 scripts/cosmic/atuq-en-imagen.py --as-user --until-paint \
|
||||
--wait "$WAIT" --cadence "$CADENCE" --out "work/tasa-corrida-$i" > "$log" 2>&1
|
||||
if grep -qa "PRIMERA PINTURA" "$log"; then
|
||||
t=$(grep -a "primera pintura:" "$log" | head -1)
|
||||
ok=$((ok+1)); echo " [$i/$N] ✓ ${t#*✓ }"
|
||||
elif grep -qa "el navegador NO pintó" "$log"; then
|
||||
fallo=$((fallo+1)); echo " [$i/$N] ✗ no pintó en ${WAIT}s"
|
||||
else
|
||||
aborto=$((aborto+1)); echo " [$i/$N] ⚠ corrida abortada (no hay veredicto) — $log"
|
||||
fi
|
||||
i=$((i+1))
|
||||
done
|
||||
echo "== TASA: $ok pintaron / $((ok+fallo)) corridas válidas (abortadas: $aborto)"
|
||||
Reference in New Issue
Block a user