Skip to content

Anything with /datum/component/swarming fails to GC #19130

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

Closed
GDNgit opened this issue Sep 22, 2022 · 1 comment · Fixed by #19171
Closed

Anything with /datum/component/swarming fails to GC #19130

GDNgit opened this issue Sep 22, 2022 · 1 comment · Fixed by #19171
Labels
GC Related This PR optimises how a type GCs

Comments

@GDNgit
Copy link
Contributor

GDNgit commented Sep 22, 2022

Issue Description:
Anything with /datum/component/swarming fails to GC, this includes Bees, Spiderlings, Viscerators, and Hivelords.

What did you expect to happen:
The above properly GC

What happened instead:
GC failure

Why is this bad/What are the consequences:
things not GCing bad

Steps to reproduce the problem:
Spawn something with /datum/component/swarming
Destroy it
Check simple Del log after awhile

When did the problem start happening:
This specific issue happened due to #13583 , however it's actually due to a larger bug with component registration itself
(All of this below was found by @warriorstar-orion, not me all credit goes to them, this basically mirrors what they said on discord)
Multiple /datum/component can be added to an ATOM, and are stored using a key value, however this key value also checks for /datum/component itself, leading to /datum/component being added to the list. This causes a reference to not properly be removed, and the atom to not GC. (Hopefully this properly reflects what the issue is)

@Sirryan2002 Sirryan2002 added Need Verification This issue requires someone to verify that the problem is happening as described. GC Related This PR optimises how a type GCs labels Sep 22, 2022
@farie82
Copy link
Contributor

farie82 commented Sep 22, 2022

image
Last 15 days it failed almost all of the time they get qdeleted.

When enabling tracking (even as QDEL hint) it finds no references:
image

So this probably means that the cause of the failure is in the proc that kills it, which is most likely process. And by god is this an ugly proc which does too much and uses sleep and spawn often. There is also a poll being started. Yet this ain't the cause of the failure.

@farie82 farie82 removed the Need Verification This issue requires someone to verify that the problem is happening as described. label Sep 22, 2022
@GDNgit GDNgit changed the title Spiderlings fail to GC Anything with /datum/component/swarming fails to GC Sep 23, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
GC Related This PR optimises how a type GCs
Projects
None yet
3 participants