Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Getting gibbed/deleted crashes your client #26366

Closed
VasilisThePikachu opened this issue Mar 23, 2024 · 13 comments · Fixed by #27617
Closed

Getting gibbed/deleted crashes your client #26366

VasilisThePikachu opened this issue Mar 23, 2024 · 13 comments · Fixed by #27617
Labels
Bug: Replicated This issue has been successfully replicated by at least two people. Difficulty: 1-Easy Not impossible to figure out for newer coders, and simple for experienced ones. Issue: Bug Something is not working correctly. Priority: 2-Before Release This needs to be fixed before release, but is not an immediate issue

Comments

@VasilisThePikachu
Copy link
Member

Description

Seen a bunch of people complaining about this, especially when they get deleted by an immovable rod mostly.

Reproduction

  1. Get your character deleted somehow
  2. crash
    (not reproduced)
@VasilisThePikachu VasilisThePikachu added Issue: Bug Something is not working correctly. Status: Help Wanted Others can offer their help to this PR. Priority: 2-Before Release This needs to be fixed before release, but is not an immediate issue labels Mar 23, 2024
@VasilisThePikachu VasilisThePikachu changed the title Getting gibbed/deleted crashes your client (Needs repro) Getting gibbed/deleted crashes your client Mar 23, 2024
@VasilisThePikachu
Copy link
Member Author

Personally cant repro this. Do notice immovable rod sends you to nullspace/"frezes" you one frame before the rod hits you. But not crashing the game. In both cases I was able to /ghost out

@VasilisThePikachu
Copy link
Member Author

VasilisThePikachu commented Mar 25, 2024

I should probably mention. If you crash cause of this. PLEASE send us logs OR copy the error here

@Doctor-Cpu
Copy link
Contributor

Can easily replicate it by standing where the arrival shuttle docks. Will just freeze the client.

What my clients terminal outputs:
[INFO] system.map: Grid NT-Arrivals 1101 (115/n27070) changed parent. Old parent: map 9 (107/n25891). New parent: FTL (116/n27643) [INFO] system.map: Grid NT-Arrivals 1101 (115/n27070) changed parent. Old parent: FTL (116/n27643). New parent: Station map (98/n14) [INFO] system.map: Grid NT-Arrivals 1101 (115/n27070) changed parent. Old parent: Station map (98/n14). New parent: FTL (116/n27643) [INFO] system.map: Grid NT-Arrivals 1101 (115/n27070) changed parent. Old parent: FTL (116/n27643). New parent: map 9 (107/n25891) [INFO] system.map: Grid NT-Arrivals 1101 (115/n27070) changed parent. Old parent: map 9 (107/n25891). New parent: FTL (116/n27643) [INFO] system.map: Grid NT-Arrivals 1101 (115/n27070) changed parent. Old parent: FTL (116/n27643). New parent: Station map (98/n14) [INFO] player: Detaching local player from Amblyocarenum Gemmosum (124/n41420, MobArachnid, localhost@DoctorCpu). [INFO] player: Local player is no longer attached to any entity.

@potato1234x
Copy link
Contributor

can repro by admin smite gibbing yourself

@UbaserB UbaserB mentioned this issue Apr 6, 2024
1 task
@Jezithyr
Copy link
Contributor

Jezithyr commented Apr 7, 2024

can repro by admin smite gibbing yourself

This might be due to minds breaking when your brain gets deleted during gibbing. When I tested the gibbing refactor, I tested it with part dropping and deletion modes and it worked fine. So I don't think it's gibbing

@pissdemon
Copy link
Contributor

pissdemon commented Apr 18, 2024

Did someone report an actual crash to desktop? I'm sure people see their game "freezing up" (game world getting stuck on the last frame) and call it a "crash". It's compounded by the fact the only way to get the game to a "working" state again is by using a console command: I would imagine a lot of players have no idea that there even is a console. To those players the game might as well seem "crashed" and they will report it as a crash.

Case in point. And here too where they call it a crash even though they are describing the same stuff.

@thebadman4662
Copy link

AFAIK its not crash but "freeze", heard you can just /ghost to unfreeze the game but I have yet to get round removed by something like rod or meatspike to test it.

@pissdemon
Copy link
Contributor

pissdemon commented Apr 18, 2024

Yes, you can just /ghost out of it, but my point is people might report it as "my game has crashed" because they don't know that's the workaround; not that a workaround should be required in the first place.

@pissdemon
Copy link
Contributor

pissdemon commented Apr 19, 2024

As for what's going on:

Stuff that wants to gib calls C.S.BodySystem.GibBody(). Calling it with the argument gibOrgans set to false (the default) doesn't actually "gib" as I would expect from the method name. Blood is spawned, but no organs are dropped, and the player that gets gibbed get deleted.

Which is the most important part because it makes it look as though their game has frozen/crashed (especially to someone who doesn't know about /ghost and sees the only solution as restarting the game).

Calling it with gibOrgans: true seems to make it work as expected, organs drop to the ground and the player is transferred to their brain.

It seems what actually happens when you call GibBody(uid, gibOrgans: false) is that it processes your body parts but your organs never end up being dropped, and the body parts don't get dropped either. Everything is just gone, even when running entities with BodyPart or entities with Organ. I dunno why the "gibOrgans" parameter is even named what it is, when setting it to true causes your organs to drop and false makes them get deleted.

The only things calling it with false are:

All these delete the player without their mind being transferred first, putting the players into nullspace and making it look like you "crashed".

@VasilisThePikachu
Copy link
Member Author

In my opinion all the stuff you described should be actually gibbing. Hell it should gib by default. Especially rod

@VasilisThePikachu VasilisThePikachu changed the title (Needs repro) Getting gibbed/deleted crashes your client Getting gibbed/deleted crashes your client Apr 19, 2024
@VasilisThePikachu VasilisThePikachu added Difficulty: 1-Easy Not impossible to figure out for newer coders, and simple for experienced ones. Bug: Replicated This issue has been successfully replicated by at least two people. and removed Status: Help Wanted Others can offer their help to this PR. labels Apr 19, 2024
@pissdemon
Copy link
Contributor

In my opinion all the stuff you described should be actually gibbing. Hell it should gib by default. Especially rod

I can just put add gibOrgans: true to all the things I listed in #27114 since it's already got one in there.

Though the meat spike might drop animal organs then from monkies if I do, just as a note. Could get messy when people butcher 6 animals at once. Lots of lizardpeople food I guess?

@VasilisThePikachu
Copy link
Member Author

In my opinion all the stuff you described should be actually gibbing. Hell it should gib by default. Especially rod

I can just put add gibOrgans: true to all the things I listed in #27114 since it's already got one in there.

Though the meat spike might drop animal organs then from monkies if I do, just as a note. Could get messy when people butcher 6 animals at once. Lots of lizardpeople food I guess?

Keep it off for the meat spike ig that'd something to decide on another day

@pissdemon
Copy link
Contributor

Will file another bug for the meatspike then because it still "freezes" your game if you are the victim and you are still in your body when you get spiked.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug: Replicated This issue has been successfully replicated by at least two people. Difficulty: 1-Easy Not impossible to figure out for newer coders, and simple for experienced ones. Issue: Bug Something is not working correctly. Priority: 2-Before Release This needs to be fixed before release, but is not an immediate issue
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants