vgstation-coders / vgstation13

Butts
GNU Affero General Public License v3.0
266 stars 544 forks source link

Some stuff that might be relevant to the game-breaking CPU slideshow thing #17869

Open Kammerjunk opened 6 years ago

Kammerjunk commented 6 years ago

Or it could just be coincidental, who knows. I didn't really wanna try subjecting people to a round with this to check if it could be reproduced.

In case people have forgotten, this is a bug where the game turns into a feature presentation on the office slideshow projector and the CPU meter goes to around 65535 (sometimes just under, sometimes possibly overflowing) even though it doesn't actually use any CPU (confirmed by Pomf). Restarting the server by the Restart verb doesn't fix it. Restarting the server using the EMERGENCY REBOOT tool doesn't fix it. I asked Pomf to restart it on his end as he's done in the past when this has happened and that did fix it.

The crew called the shuttle due to intolerable bluespace. Once the shuttle teleported to the transit area (to "travel" towards CentComm), the lag fixed itself until the server restarted. This is the only thing from the runtime log from when that happened:

## TESTING: Super Juke Writing media to Radio Transmitter.
## TESTING: Super Juke Writing media to Radio Transmitter.
##WARNING: Type /turf/space/transit/north does not inherit /atom/New().  Please ensure ..() is called, or that the type calls AddToProfiler(). in code/game/atoms.dm at line 143 src: space usr: .
##WARNING: Type /turf/space/transit/east does not inherit /atom/New().  Please ensure ..() is called, or that the type calls AddToProfiler(). in code/game/atoms.dm at line 143 src: space usr: .
## TESTING: Super Juke Writing media to Radio Transmitter.
## TESTING: Super Juke Writing media to Radio Transmitter.

Since it came back once the next round started and wasn't actually fixed, I doubt it means anything, but I'd rather have it logged that it happened in case anyone ever finds out anything about this bug. Or it could just be BYOND being ass, see: that bug where it refuses to accept that the turf list exists right after creating it which PJB eventually just blamed on Lummox.

PJB3005 commented 6 years ago

I still maintain it's probably just BYOND's internal timer system going haywire, so CPU always reads at 65536 (the max of a 16 bit uint!, sounds like a maximum to me) and everything starts lagging because it thinks the server's at its knees.

Which would also explain why nothing but a hard process restart fixes it: the timer is broken beyond fixing.

Exxion commented 6 years ago

When's the last time this happened?

unid15 commented 6 years ago

I remember it happened when I spawned a lot of zombies. Zombies in particular seem to cause it (not other mobs tho)

Exxion commented 6 years ago

Zombies definitely seem to be expensive, but in local testing, the MC catches it and they only lag the mob controller. If it happens again, information from the profiler would be helpful

EDIT: Notably, since players are also mobs, this still results in the game being unplayable, but the server CPU isn't jumping to preposterous numbers