Subject: Re: bug#40225: 27.0.90; abort with apparent stack explosion in lsp-mode

From: Valtteri Vuorikoski <[email-masked]>
Date: Tue, 31 Mar 2020 21:39:42 +0300

On 2020-03-31 18:53, Eli Zaretskii wrote:
>> Thread 1 "emacs" received signal SIGSEGV, Segmentation fault.
>> 0x00005568e2e5dc1b in mark_object (arg=<error reading variable: Cannot
>> access memory at address 0x7ffde9c2fff8>) at alloc.c:6386
>> 6386    {
>> (gdb) p/x $sp
>> $1 = 0x7ffde9c2fff0
>> (gdb) p/x &stack_bottom
>> No symbol "stack_bottom" in current context.
> 
> What about this one:
> 
>    (gdb) p &(current_thread->stack_bottom)

No luck there, but jooks like there's m_stack_bottom:

(gdb) p *current_thread
$4 = {header = {size = 4611686018763182088}, m_last_thing_searched = 
0x5568edbdfc15, m_saved_last_thing_searched = 0x0, name = 0x0, function 
= 0x0, result = 0x0, error_symbol = 0x0, error_data = 0x0,
   event_object = 0x0, m_stack_bottom = 0x7ffdea5bcbe8 "\245'WWX\177", 
stack_top = 0x0, m_catchlist = 0x0, m_handlerlist = 0x5568e4298ae0, 
m_handlerlist_sentinel = 0x5568e426e620, m_specpdl_size = 383,
   m_specpdl = 0x5568e43f7968, m_specpdl_ptr = 0x5568e43f7bc0, 
m_lisp_eval_depth = 1, m_current_buffer = 0x5568edbdfc10, m_search_regs 
= {num_regs = 30, start = 0x5568e4217100, end = 0x5568e4275d00},
   m_saved_search_regs = {num_regs = 0, start = 0x5568e4217100, end = 
0x5568e4275d00}, m_waiting_for_user_input_p = -1, m_waiting_for_input = 
false, m_getcjmp = {{__jmpbuf = {0, -2837276071106932492,
         93908968795088, 140728535338384, 0, 0, -2837276071016754956, 
-8235419651387780876}, __mask_was_saved = 0, __saved_mask = {__val = 
{140728535336288, 93908971939294, 5, 140728535336400,
           93908971991551, 93909166555283, 3, 93909166555267, 0, 
140728535336400, 93908971648480, 93908981051456, 0, 0, 
2504284832306423296, 93908970882441}}}}, thread_id = 140017640263616,
   thread_condvar = {__data = {{__wseq = 0, __wseq32 = {__low = 0, 
__high = 0}}, {__g1_start = 0, __g1_start32 = {__low = 0, __high = 0}}, 
__g_refs = {0, 0}, __g_size = {0, 0}, __g1_orig_size = 0,
       __wrefs = 0, __g_signals = {0, 0}}, __size = '\000' <repeats 47 
times>, __align = 0}, wait_condvar = 0x0, thread_name = 0x0, 
not_holding_lock = 0, next_thread = 0x0}

>> (gdb) bt full 3
>> #0  0x00005568e2e5dc1b in mark_object (arg=Python Exception <class
>> 'gdb.MemoryError'> Cannot access memory at address 0x7ffde9c2fff8:
>> #1  0x00005568e2e5df9c in mark_object (arg=0x5568e6c1f003) at alloc.c:6629
>>           ptr = 0x5568e6c1f000
>>           obj = 0x5568e6c1f043
>>           po = 0x5568e6c1f000
>>           cdr_count = 0
> 
> This does look like stack overflow.  Can you enlarge the stack size of
> your Emacs and see if that helps?

I'll test that tomorrow.