Paradise icon indicating copy to clipboard operation
Paradise copied to clipboard

/datum/async_input/autocomplete keeps hard references which causes GC issues

Open farie82 opened this issue 2 years ago • 0 comments

Issue Description: As the title suggests. Somebody having the jump to mob window open as an observer will cause all mobs on the server to fail GCing. I also managed to have it not properly close on me which caused the top two and last GC issues maybe. Maybe not and this always happens even if you close it, I didn't check yet. I got a JS exception when opening the window. So that might have caused the two since the callback should be cleared after the window closes.

[2022-10-05T20:52:45] Found /mob/dead/observer [0x300003b] in /datum/browser's [0x2100793a] user var. World -> /datum/browser
[2022-10-05T20:52:48] Found /mob/dead/observer [0x300003b] in /datum/async_input/autocomplete's [0x21010307] user var. World -> /datum/async_input/autocomplete
[2022-10-05T20:52:48] Found /mob/dead/observer [0x300003b] in list World -> /datum/async_input/autocomplete [0x21010307] -> choices (list)[Kahtajrjri%20Hadii%20%282%29%20%5bghost%5d]
[2022-10-05T20:52:49] Found /mob/dead/observer [0x300003b] in /datum/callback's [0x21015cd7] object var. World -> /datum/callback

Steps to reproduce the problem:

  1. Have a mob and aghost
  2. Open the jump to mob or follow mob window as an observer
  3. Close the window (I had a js exception somehow which might have caused the top two GC issues, unsure)
  4. Jump back into your mob

When did the problem start happening: Prob since forever

Extra information: When input_autocomplete_async is called, a list of choices is given, getpois is used for this. It would be better if it were to return UIDs instead. Currently getpois is used in three spots, which is manageable.

farie82 avatar Oct 05 '22 21:10 farie82