diff --git a/docs/evidencia/cuelgue-headless/ab-verificacion.txt b/docs/evidencia/cuelgue-headless/ab-verificacion.txt new file mode 100644 index 00000000..e03e321a --- /dev/null +++ b/docs/evidencia/cuelgue-headless/ab-verificacion.txt @@ -0,0 +1,10 @@ +presión lista: disponible=1977 MiB +Terminated sleep 1 + 10/50 · viejo segv=20 colg=0 · nuevo segv=0 colg=0 + 20/50 · viejo segv=38 colg=1 · nuevo segv=0 colg=0 + 30/50 · viejo segv=58 colg=1 · nuevo segv=0 colg=0 + 40/50 · viejo segv=78 colg=1 · nuevo segv=0 colg=0 + 50/50 · viejo segv=98 colg=1 · nuevo segv=0 colg=0 + +viejo segfaults=98 COLGADAS=1 screenshots=49/50 +nuevo segfaults=0 COLGADAS=0 screenshots=50/50 diff --git a/docs/evidencia/cuelgue-headless/caza-bajo-presion.txt b/docs/evidencia/cuelgue-headless/caza-bajo-presion.txt new file mode 100644 index 00000000..131aee7d --- /dev/null +++ b/docs/evidencia/cuelgue-headless/caza-bajo-presion.txt @@ -0,0 +1,16 @@ +── nivel CONTROL: sin presión + arranca con disponible=4402 MiB psi=0.02 +.................... + nivel 0: ok=20 COLGADAS=0 muertas=0 (disponible final 4291 MiB, psi 0.00 ) +── nivel: apuntando a 2000 MiB disponibles + arranca con disponible=1944 MiB psi=0.00 +.......X..X......... + nivel 2000: ok=18 COLGADAS=2 muertas=0 (disponible final 2210 MiB, psi 0.00 ) +── nivel: apuntando a 1200 MiB disponibles + arranca con disponible=1184 MiB psi=0.54 +.................... + nivel 1200: ok=20 COLGADAS=0 muertas=0 (disponible final 1178 MiB, psi 3.45 ) +── nivel: apuntando a 700 MiB disponibles + arranca con disponible=673 MiB psi=2.31 +.................... + nivel 700: ok=20 COLGADAS=0 muertas=0 (disponible final 681 MiB, psi 0.23 ) diff --git a/docs/evidencia/cuelgue-headless/cuelgue-2000-11/navegador.log b/docs/evidencia/cuelgue-headless/cuelgue-2000-11/navegador.log new file mode 100644 index 00000000..c9996619 --- /dev/null +++ b/docs/evidencia/cuelgue-headless/cuelgue-2000-11/navegador.log @@ -0,0 +1,24 @@ +*** You are running in headless mode. +[60] Sandbox: writing /proc/self/uid_map: EPERM +[76] Sandbox: writing /proc/self/uid_map: EPERM +[Parent 2, IPC I/O Parent] WARNING: Failed to launch rdd subprocess @FSC::SFNS::Send2 (Error:0): file ipc/glue/GeckoChildProcessHost.cpp:822 +[Parent 2, IPC I/O Parent] WARNING: Failed to launch tab subprocess @FSC::SFNS::Failed (Error:0): file ipc/glue/GeckoChildProcessHost.cpp:822 +[Parent 2, IPC I/O Parent] WARNING: Failed to launch tab subprocess @FSC::SFNS::Failed (Error:0): file ipc/glue/GeckoChildProcessHost.cpp:822 +[Parent 2, IPC I/O Parent] WARNING: Failed to launch tab subprocess @FSC::SFNS::Failed (Error:0): file ipc/glue/GeckoChildProcessHost.cpp:822 +[Parent 2, IPC I/O Parent] WARNING: Failed to launch tab subprocess @FSC::SFNS::Failed (Error:0): file ipc/glue/GeckoChildProcessHost.cpp:822 +[Parent 2, IPC I/O Parent] WARNING: Failed to launch tab subprocess @FSC::SFNS::Failed (Error:0): file ipc/glue/GeckoChildProcessHost.cpp:822 +[Parent 2, IPC I/O Parent] WARNING: Failed to launch tab subprocess @FSC::SFNS::Failed (Error:0): file ipc/glue/GeckoChildProcessHost.cpp:822 +JavaScript error: resource://gre/modules/ExtensionParent.sys.mjs, line 2059: TypeError: can't access property "addMessageListener", messageManager is null +JavaScript error: resource://gre/modules/ExtensionParent.sys.mjs, line 2059: TypeError: can't access property "addMessageListener", messageManager is null +JavaScript error: resource://gre/modules/ExtensionParent.sys.mjs, line 2059: TypeError: can't access property "addMessageListener", messageManager is null +JavaScript error: resource://gre/modules/ExtensionParent.sys.mjs, line 2059: TypeError: can't access property "addMessageListener", messageManager is null +JavaScript error: resource://gre/modules/ExtensionParent.sys.mjs, line 2059: TypeError: can't access property "addMessageListener", messageManager is null +JavaScript error: resource://gre/modules/ExtensionParent.sys.mjs, line 2059: TypeError: can't access property "addMessageListener", messageManager is null +[Parent 2, IPC I/O Parent] WARNING: Failed to launch tab subprocess @FSC::SFNS::Failed (Error:0): file ipc/glue/GeckoChildProcessHost.cpp:822 +[111] Sandbox: writing /proc/self/uid_map: EPERM +console.error: Region.sys.mjs: "Error fetching region" (new Error("TIMEOUT", "resource://gre/modules/Region.sys.mjs", 750)) +console.error: Region.sys.mjs: "Failed to fetch region" (new Error("TIMEOUT", "resource://gre/modules/Region.sys.mjs", 394)) +console.error: services.settings: + Remote Settings startup changesets bundle could not be extracted (TypeError: NetworkError: Network request failed) +console.error: Region.sys.mjs: "Error fetching region" (new Error("TIMEOUT", "resource://gre/modules/Region.sys.mjs", 750)) +console.error: Region.sys.mjs: "Failed to fetch region" (new Error("TIMEOUT", "resource://gre/modules/Region.sys.mjs", 394)) diff --git a/docs/evidencia/cuelgue-headless/cuelgue-2000-11/procesos.txt b/docs/evidencia/cuelgue-headless/cuelgue-2000-11/procesos.txt new file mode 100644 index 00000000..67f0224a --- /dev/null +++ b/docs/evidencia/cuelgue-headless/cuelgue-2000-11/procesos.txt @@ -0,0 +1,50 @@ +--- pid 339 comm=bwrap + state=S (sleeping) + wchan=poll_schedule_timeout.constprop.0 + syscall= + rss=2188 kB +--- pid 351 comm=bwrap + state=S (sleeping) + wchan=do_wait + syscall=61 0xffffffffffffffff 0x7ffcdd14157c 0x0 0x0 0x0 0x0 0x7ffcdd141510 0x + rss=1292 kB +--- pid 352 comm=firefox + state=S (sleeping) + wchan=poll_schedule_timeout.constprop.0 + syscall=7 0x7fa9f3a370e0 0x2 0xffffffffffffffff 0x0 0x0 0x0 0x7fffeabda818 0x7 + rss=156724 kB +--- pid 560 comm=Web Content + state=S (sleeping) + wchan=poll_schedule_timeout.constprop.0 + syscall=7 0x7f333656c840 0x2 0xffffffffffffffff 0x0 0x0 0x0 0x7ffc4b1a1238 0x7 + rss=65212 kB +--- pid 590 comm=forkserver + state=S (sleeping) + wchan=unix_stream_read_generic + syscall=47 0x3 0x7fffff839580 0x0 0x0 0x0 0x0 0x7fffff839538 0x7f4b8d263b52 + rss=39432 kB +--- pid 599 comm=Web Content + state=S (sleeping) + wchan=poll_schedule_timeout.constprop.0 + syscall=7 0x7f4b79f80e90 0x2 0xffffffffffffffff 0x0 0x0 0x0 0x7fffff8392b8 0x7 + rss=59444 kB +--- pid 600 comm=Web Content + state=S (sleeping) + wchan=poll_schedule_timeout.constprop.0 + syscall=7 0x7f4b79f69840 0x2 0xffffffffffffffff 0x0 0x0 0x0 0x7fffff8392b8 0x7 + rss=59792 kB +--- pid 604 comm=Web Content + state=S (sleeping) + wchan=poll_schedule_timeout.constprop.0 + syscall=7 0x7f4b79f81020 0x2 0xffffffffffffffff 0x0 0x0 0x0 0x7fffff8392b8 0x7 + rss=59432 kB +--- pid 30266 comm=bwrap + state=S (sleeping) + wchan=do_wait + syscall=61 0xffffffffffffffff 0x7fff48ae4d6c 0x0 0x0 0x0 0x0 0x7fff48ae4d00 0x + rss=1300 kB +--- pid 30267 comm=firefox + state=S (sleeping) + wchan=poll_schedule_timeout.constprop.0 + syscall=7 0x7f899dc8fdd0 0x2 0xffffffffffffffff 0x0 0x0 0x0 0x7fff8116ba08 0x7 + rss=150844 kB diff --git a/docs/evidencia/cuelgue-headless/cuelgue-2000-11/ps.txt b/docs/evidencia/cuelgue-headless/cuelgue-2000-11/ps.txt new file mode 100644 index 00000000..51da6a9d --- /dev/null +++ b/docs/evidencia/cuelgue-headless/cuelgue-2000-11/ps.txt @@ -0,0 +1,23 @@ + PID PPID STAT RSS WCHAN COMMAND + 339 20680 SN 2188 poll_schedule_timeout.co bwrap + 351 339 SN 1292 do_wait bwrap + 352 351 SNl 156724 poll_schedule_timeout.co firefox + 560 351 SNl 65212 poll_schedule_timeout.co Web Content + 599 590 SNl 59444 poll_schedule_timeout.co Web Content + 600 590 SNl 59792 poll_schedule_timeout.co Web Content + 604 590 SNl 59432 poll_schedule_timeout.co Web Content + 3446 1 S 4 do_wait bwrap + 5948 1 S 4 do_wait bwrap + 7816 1 S 4 do_wait bwrap +12045 1 S 4 do_wait bwrap +15909 1 S 4 do_wait bwrap +15939 1 S 4 do_wait bwrap +29205 1 S 4 do_wait bwrap +30266 1 SN 1300 do_wait bwrap +30267 30266 SNl 150844 poll_schedule_timeout.co firefox +30441 30266 SNl 53432 poll_schedule_timeout.co Web Content +30473 30469 SNl 50204 poll_schedule_timeout.co Web Content +30475 30469 SNl 49888 poll_schedule_timeout.co Web Content +30477 30469 SNl 49952 poll_schedule_timeout.co Web Content +31269 1 S 4 do_wait bwrap +31821 1 S 4 do_wait bwrap diff --git a/docs/evidencia/cuelgue-headless/cuelgue-2000-11/resumen.txt b/docs/evidencia/cuelgue-headless/cuelgue-2000-11/resumen.txt new file mode 100644 index 00000000..34656c2b --- /dev/null +++ b/docs/evidencia/cuelgue-headless/cuelgue-2000-11/resumen.txt @@ -0,0 +1,4 @@ +nivel=2000 corrida=11 COLGADA a 60s +al lanzar: disponible=1964 MiB psi_some_avg10=0.00 oom_kill=75 +ahora: disponible=1983 MiB psi_some_avg10=0.00 oom_kill=75 +--- ¿mató el kernel a alguien DURANTE esta corrida? delta=0 diff --git a/docs/evidencia/cuelgue-headless/cuelgue-2000-8/navegador.log b/docs/evidencia/cuelgue-headless/cuelgue-2000-8/navegador.log new file mode 100644 index 00000000..d6bb2330 --- /dev/null +++ b/docs/evidencia/cuelgue-headless/cuelgue-2000-8/navegador.log @@ -0,0 +1,24 @@ +*** You are running in headless mode. +[61] Sandbox: writing /proc/self/uid_map: EPERM +[77] Sandbox: writing /proc/self/uid_map: EPERM +[Parent 2, IPC I/O Parent] WARNING: Failed to launch rdd subprocess @FSC::SFNS::Send2 (Error:0): file ipc/glue/GeckoChildProcessHost.cpp:822 +[Parent 2, IPC I/O Parent] WARNING: Failed to launch tab subprocess @FSC::SFNS::Failed (Error:0): file ipc/glue/GeckoChildProcessHost.cpp:822 +[Parent 2, IPC I/O Parent] WARNING: Failed to launch tab subprocess @FSC::SFNS::Failed (Error:0): file ipc/glue/GeckoChildProcessHost.cpp:822 +[Parent 2, IPC I/O Parent] WARNING: Failed to launch tab subprocess @FSC::SFNS::Failed (Error:0): file ipc/glue/GeckoChildProcessHost.cpp:822 +[Parent 2, IPC I/O Parent] WARNING: Failed to launch tab subprocess @FSC::SFNS::Failed (Error:0): file ipc/glue/GeckoChildProcessHost.cpp:822 +[Parent 2, IPC I/O Parent] WARNING: Failed to launch tab subprocess @FSC::SFNS::Failed (Error:0): file ipc/glue/GeckoChildProcessHost.cpp:822 +[Parent 2, IPC I/O Parent] WARNING: Failed to launch tab subprocess @FSC::SFNS::Failed (Error:0): file ipc/glue/GeckoChildProcessHost.cpp:822 +JavaScript error: resource://gre/modules/ExtensionParent.sys.mjs, line 2059: TypeError: can't access property "addMessageListener", messageManager is null +JavaScript error: resource://gre/modules/ExtensionParent.sys.mjs, line 2059: TypeError: can't access property "addMessageListener", messageManager is null +JavaScript error: resource://gre/modules/ExtensionParent.sys.mjs, line 2059: TypeError: can't access property "addMessageListener", messageManager is null +JavaScript error: resource://gre/modules/ExtensionParent.sys.mjs, line 2059: TypeError: can't access property "addMessageListener", messageManager is null +JavaScript error: resource://gre/modules/ExtensionParent.sys.mjs, line 2059: TypeError: can't access property "addMessageListener", messageManager is null +JavaScript error: resource://gre/modules/ExtensionParent.sys.mjs, line 2059: TypeError: can't access property "addMessageListener", messageManager is null +[Parent 2, IPC I/O Parent] WARNING: Failed to launch tab subprocess @FSC::SFNS::Failed (Error:0): file ipc/glue/GeckoChildProcessHost.cpp:822 +[109] Sandbox: writing /proc/self/uid_map: EPERM +console.error: Region.sys.mjs: "Error fetching region" (new Error("TIMEOUT", "resource://gre/modules/Region.sys.mjs", 750)) +console.error: Region.sys.mjs: "Failed to fetch region" (new Error("TIMEOUT", "resource://gre/modules/Region.sys.mjs", 394)) +console.error: services.settings: + Remote Settings startup changesets bundle could not be extracted (TypeError: NetworkError: Network request failed) +console.error: Region.sys.mjs: "Error fetching region" (new Error("TIMEOUT", "resource://gre/modules/Region.sys.mjs", 750)) +console.error: Region.sys.mjs: "Failed to fetch region" (new Error("TIMEOUT", "resource://gre/modules/Region.sys.mjs", 394)) diff --git a/docs/evidencia/cuelgue-headless/cuelgue-2000-8/procesos.txt b/docs/evidencia/cuelgue-headless/cuelgue-2000-8/procesos.txt new file mode 100644 index 00000000..366531a5 --- /dev/null +++ b/docs/evidencia/cuelgue-headless/cuelgue-2000-8/procesos.txt @@ -0,0 +1,40 @@ +--- pid 30264 comm=bwrap + state=S (sleeping) + wchan=poll_schedule_timeout.constprop.0 + syscall= + rss=2196 kB +--- pid 30266 comm=bwrap + state=S (sleeping) + wchan=do_wait + syscall=61 0xffffffffffffffff 0x7fff48ae4d6c 0x0 0x0 0x0 0x0 0x7fff48ae4d00 0x + rss=1300 kB +--- pid 30267 comm=firefox + state=S (sleeping) + wchan=poll_schedule_timeout.constprop.0 + syscall=7 0x7f899dc8fdd0 0x2 0xffffffffffffffff 0x0 0x0 0x0 0x7fff8116ba08 0x7 + rss=144436 kB +--- pid 30441 comm=Web Content + state=S (sleeping) + wchan=poll_schedule_timeout.constprop.0 + syscall=7 0x7f89fde9db50 0x2 0xffffffffffffffff 0x0 0x0 0x0 0x7ffde45e6c88 0x7 + rss=53260 kB +--- pid 30469 comm=forkserver + state=S (sleeping) + wchan=unix_stream_read_generic + syscall=47 0x3 0x7ffe96c38cf0 0x0 0x0 0x0 0x0 0x7ffe96c38ca8 0x7f1af0a9bb52 + rss=41200 kB +--- pid 30473 comm=Web Content + state=S (sleeping) + wchan=poll_schedule_timeout.constprop.0 + syscall=7 0x7f1ade0d8e10 0x2 0xffffffffffffffff 0x0 0x0 0x0 0x7ffe96c38908 0x7 + rss=50212 kB +--- pid 30475 comm=Web Content + state=S (sleeping) + wchan=poll_schedule_timeout.constprop.0 + syscall=7 0x7f1ade0d8e10 0x2 0xffffffffffffffff 0x0 0x0 0x0 0x7ffe96c38908 0x7 + rss=49872 kB +--- pid 30477 comm=Web Content + state=S (sleeping) + wchan=poll_schedule_timeout.constprop.0 + syscall=7 0x7f1ade0d9390 0x2 0xffffffffffffffff 0x0 0x0 0x0 0x7ffe96c38908 0x7 + rss=49936 kB diff --git a/docs/evidencia/cuelgue-headless/cuelgue-2000-8/ps.txt b/docs/evidencia/cuelgue-headless/cuelgue-2000-8/ps.txt new file mode 100644 index 00000000..0505a3fb --- /dev/null +++ b/docs/evidencia/cuelgue-headless/cuelgue-2000-8/ps.txt @@ -0,0 +1,17 @@ + PID PPID STAT RSS WCHAN COMMAND + 3446 1 S 4 do_wait bwrap + 5948 1 S 4 do_wait bwrap + 7816 1 S 4 do_wait bwrap +12045 1 S 4 do_wait bwrap +15909 1 S 4 do_wait bwrap +15939 1 S 4 do_wait bwrap +29205 1 S 4 do_wait bwrap +30264 20680 SN 2196 poll_schedule_timeout.co bwrap +30266 30264 SN 1300 do_wait bwrap +30267 30266 SNl 144436 poll_schedule_timeout.co firefox +30441 30266 SNl 53260 poll_schedule_timeout.co Web Content +30473 30469 SNl 50212 poll_schedule_timeout.co Web Content +30475 30469 SNl 49872 poll_schedule_timeout.co Web Content +30477 30469 SNl 49936 poll_schedule_timeout.co Web Content +31269 1 S 4 do_wait bwrap +31821 1 S 4 do_wait bwrap diff --git a/docs/evidencia/cuelgue-headless/cuelgue-2000-8/resumen.txt b/docs/evidencia/cuelgue-headless/cuelgue-2000-8/resumen.txt new file mode 100644 index 00000000..140330d3 --- /dev/null +++ b/docs/evidencia/cuelgue-headless/cuelgue-2000-8/resumen.txt @@ -0,0 +1,4 @@ +nivel=2000 corrida=8 COLGADA a 60s +al lanzar: disponible=1989 MiB psi_some_avg10=0.00 oom_kill=75 +ahora: disponible=1963 MiB psi_some_avg10=0.00 oom_kill=75 +--- ¿mató el kernel a alguien DURANTE esta corrida? delta=0 diff --git a/scripts/diagnostico/cazar-cuelgue-headless.sh b/scripts/diagnostico/cazar-cuelgue-headless.sh index e4b7e73c..feba49c8 100755 --- a/scripts/diagnostico/cazar-cuelgue-headless.sh +++ b/scripts/diagnostico/cazar-cuelgue-headless.sh @@ -83,6 +83,22 @@ # sí está probado es que el arnés viejo dejaba 2 ayudantes reventando en CADA corrida y que # apagando los cinco sandboxes no queda ninguno. # +# LA VERIFICACIÓN A/B (50 pares intercalados bajo presión, verificar-arreglo-sandbox.sh): +# +# arnés viejo (sólo CONTENT apagado) ...... 98 segfaults · 1 COLGADA · 49/50 screenshots +# arnés nuevo (los cinco apagados) ........ 0 segfaults · 0 colgadas · 50/50 screenshots +# +# ⚠ QUÉ PRUEBA Y QUÉ NO, porque la tentación de leer de más acá es grande: +# · El MECANISMO está eliminado y eso sí es concluyente: 98 → 0, exactamente 2 por corrida, en el +# 100 % de las corridas. Un efecto determinista se refuta con pocas muestras. +# · El CUELGUE no. 1 contra 0 en 50 pares no es significativo por sí solo: con la tasa medida +# (3 colgadas en 130 corridas del arnés viejo ≈ 2,3 %), ver cero en 50 corridas tiene ~31 % de +# probabilidad AUNQUE NADA HUBIERA CAMBIADO. Para un negativo convincente harían falta ~200. +# Lo que sí se puede decir: las TRES colgadas observadas tienen la misma huella exacta —7 fallos +# de lanzamiento de pestaña, 1 de rdd, 6 `messageManager is null`, cero screenshot— y las tres +# cayeron en configuraciones donde los ayudantes revientan. Ninguna apareció sin el mecanismo. +# Evidencia en docs/evidencia/cuelgue-headless/. +# # EL ARREGLO, para cualquier firefox headless de la distro dentro de bwrap — el sandbox de Gecko no # aporta nada acá, porque bwrap YA es la jaula, y lo único que hace es fallar y dejar cadáveres: #