|
From: | Trevor Bentley |
Subject: | bug#43389: 28.0.50; Emacs memory leaks using hard disk all time |
Date: | Mon, 14 Dec 2020 22:24:56 +0100 |
> Does thread-last-error return something non-nil? Nope, nil in all instance, including the one in a weird state.Then it's unlikely that a thread died unnatural death.
No, sure doesn't seem like it. Just hit it in an instance with more printfs, and it looks like it leaps right out of some sub-call of process_pending_signals(), continuing to run elsewhere without finishing garbage_collect(). To me, that means exactly one thing: longjmp.
If something manages to longjmp out of garbage_collect() at that point, it leaves with consing_until_gc set to HI_THRESHOLD. This must explain why automatic GC stops running for hours or days, but manual GCs still work.
I tried setting a breakpoint in longjmp, but it's called 3 times for every keypress! That's inconvenient. Running one single instance now with a conditional breakpoint on longjmp: it will break if longjmp is called while it's in unblock_input().
-Trevor
[Prev in Thread] | Current Thread | [Next in Thread] |