vgstation-coders / vgstation13

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

Lamp crashes the server in new innovative way #26643

Open kilozombie opened 4 years ago

kilozombie commented 4 years ago

Apparently this has also happened on Roid.

The server gets put into purgatory. Ghosts can still teleport around, but living mobs moving around get this message:

image

This is a message from this file:

https://github.com/vgstation-coders/vgstation13/blob/7b2399e7794c872cdefd9dd01d84dd1f9f876afa/code/_onclick/other_mobs.dm

Not a clue why. It kills serbian very very slowly, like a cancerous tumor. This never happened before now, but hey, Lamprey crashes server, no news there, but we're baffled why it's happening. It kills it faster than any time before, and previously we thought we fixed all the bugs

image

Gazathor commented 4 years ago

lamprey decides when we are done, this is it saying enough and to leave its presence

kilozombie commented 4 years ago

image The Moment of Death

MC crashed. Iunno why it does now and it didn't last year. :shrug:

d3athrow commented 4 years ago

The perfect crash for a map like lamprey

kilozombie commented 4 years ago

Always striving to find new ways to fail, sir

ShiftyRail commented 4 years ago

Couldn't reproduce locally, Lamprey either fails to load completely and crashes my instance of DD before I could even log in (1/3 tries) or runs fine without too much shit going on in the profiler.

Looking at the runtimelog, BYOND seems to fuck up a little bit before the crash and when loading the map, being unable to create icons and then unable to perform a Blend operation. It could be that, which leads me to believe it is an out of memory error. Running Lamprey is definitively a lot more taxing on my craptop than Box, since it takes me 1.3 GB of RAM rather than ~600-800MB like other maps.

The only thing that could cause this error message is when the server recieves a ClickOn something from the client, but everything is pretty much out of place and it registers it as an unarmed attack, from a mob who's also not really what it should be.

Unarmed attack fails on specific criterions:

/mob/living/carbon/human/proc/can_use_hand_or_stump(var/this_hand = active_hand)
    if(restrained()) // handcuffed stump is retarded but let's do that in another PR ok?
        return FALSE
    if(hasorgans(src))
        var/datum/organ/external/hand = src.find_organ_by_grasp_index(this_hand)
        if(hand && hand.can_grasp())
            return TRUE
    return FALSE

So the game consider that the mob has no hands, or no organs.

Exxion commented 4 years ago

My instinct is to say it ran out of memory, but that would be weird even for an out-of-memory error

d3athrow commented 4 years ago

it probably did. lamprey was using 1.3gb ram with 1 player locally.