Subject: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time

From: Carlos O'Donell <[email-masked]>
Date: Fri, 27 Nov 2020 00:04:56 -0500

On 11/26/20 3:30 PM, Eli Zaretskii wrote:
>> Cc: [email-masked], [email-masked], [email-masked],
>>  [email-masked], [email-masked], [email-masked]
>> From: Carlos O'Donell <[email-masked]>
>> Date: Thu, 26 Nov 2020 15:21:04 -0500
>>
>> On 11/26/20 8:58 AM, Eli Zaretskii wrote:
>>> Apart of that, I think we really need to see the most significant
>>> customers of these functions when the memory footprint starts growing
>>> fast.
>>  
>> It's in the mastiff captured data.
>>
>> Of the 1.7GiB it's all in Fcons:
>>
>> 448.2 MiB: Fmake_list
>> 270.3 MiB: in 262 places all over the place (below massif's threshold)
>> 704.0 MiB: list4 -> exec_byte_code
>> 109.7 MiB: F*_json_read_string_0 -> funcall_subr ...
>> 102.2 MiB: Flist -> exec_byte_code ...
>>  68.5 MiB: Fcopy_alist -> Fframe_parameters ...
> 
> Thanks.  Those are the low-level primitives, they tell nothing about
> the Lisp code which caused this much memory allocation.  We need
> higher levels of callstack, and preferably in Lisp terms.  GDB
> backtraces would show them, due to tailoring in src/.gdbinit.

Sure, let me pick one for you:

lisp_align_malloc (alloc.c:1195)
 Fcons (alloc.c:2694)
  concat (fns.c:730)
   Fcopy_sequence (fns.c:598)
    timer_check (keyboard.c:4395)
     wait_reading_process_output (process.c:5334)
      sit_for (dispnew.c:6056)
       read_char (keyboard.c:2742)
        read_key_sequence (keyboard.c:9551)
         command_loop_1 (keyboard.c:1354)
          internal_condition_case (eval.c:1365)
           command_loop_2 (keyboard.c:1095)
            internal_catch (eval.c:1126)
             command_loop (keyboard.c:1074)
              recursive_edit_1 (keyboard.c:718)
               Frecursive_edit (keyboard.c:790)
                main (emacs.c:2080)
 
There is a 171MiB's worth of allocations in that path.

There are a lot of traces ending in wait_reading_process_output that
are consuming 50MiB.

-- 
Cheers,
Carlos.