A dm2 deathmatch tape recorded a single bot frozen for 144.2 s of a 190 s match. That is the longest freeze in the project's history. It reproduces in a second tape at 87.0 s with a different bot, in a different place, on a different build.
Evidence
dm2, current main: Carmack t 28.7..172.9 (144.2s) at '2273 -170 -136' mode 2
dm2, door fix build: Joe Rogan t 104.3..191.3 ( 87.0s) at '1931 -1153 344' mode 2
Romero t 132.1..139.8 ( 7.7s) at '2536 -224 120' mode 2
Both long ones are mode 2, spd 0, and emit no stall events, which means a stall suppressed hold rather than a wedge. The give up clocks are 8 s for doors and 15 s for trains, so something is holding well past every cap we have.
The tell
Joe Rogan's freeze starts immediately after a vertical jump:
t 103.8 pos '1936 -1221 21.4' spd 30.2 mode 2
t 104.3 pos '1931 -1153 344.0' spd 0 mode 2
322 units of z in half a second, onto dm2's east train deck, and ARGEVT Carmack train fires in the same window. So the bot arrived on a mover and then never moved again.
Carmack's 144 s freeze at '2273 -170 -136' starts right after ARGEVT Carmack engage Joe Rogan, from 259 u/s to 0 in one sample.
Why it matters more than the count suggests
A freeze detector counts this as one event, so a tape with a bot doing nothing for 76 per cent of the match still reads as "1 freeze" beside a tape with five short ones. The gate does not weight duration. Worth considering whether the freeze gate should fail on total frozen time as well as on count and worst case.
Suspects, in order
ar_liftwait set and never cleared. It is a physics level hold, and the keyed door branch in the door handler sets it with no timeout at all, unlike the ar_doortime branch below it.
- The train ride hold, given the mover arrival immediately before.
- Something in the teleport exit coast, given the instantaneous position change.
edicts injected while the bot is frozen would settle this in one command by printing ar_liftwait, ar_door, ar_hoptrain and ar_node directly. See #255.
A dm2 deathmatch tape recorded a single bot frozen for 144.2 s of a 190 s match. That is the longest freeze in the project's history. It reproduces in a second tape at 87.0 s with a different bot, in a different place, on a different build.
Evidence
Both long ones are
mode 2,spd 0, and emit no stall events, which means a stall suppressed hold rather than a wedge. The give up clocks are 8 s for doors and 15 s for trains, so something is holding well past every cap we have.The tell
Joe Rogan's freeze starts immediately after a vertical jump:
322 units of z in half a second, onto dm2's east train deck, and
ARGEVT Carmack trainfires in the same window. So the bot arrived on a mover and then never moved again.Carmack's 144 s freeze at '2273 -170 -136' starts right after
ARGEVT Carmack engage Joe Rogan, from 259 u/s to 0 in one sample.Why it matters more than the count suggests
A freeze detector counts this as one event, so a tape with a bot doing nothing for 76 per cent of the match still reads as "1 freeze" beside a tape with five short ones. The gate does not weight duration. Worth considering whether the freeze gate should fail on total frozen time as well as on count and worst case.
Suspects, in order
ar_liftwaitset and never cleared. It is a physics level hold, and the keyed door branch in the door handler sets it with no timeout at all, unlike thear_doortimebranch below it.edictsinjected while the bot is frozen would settle this in one command by printingar_liftwait,ar_door,ar_hoptrainandar_nodedirectly. See #255.