Subject: Re: bug#25247: 26.0.50; Concurrency crashes with XLib

From: Tino Calancha <[email-masked]>
Date: Fri, 30 Dec 2016 12:13:02 +0900

Eli Zaretskii <[email-masked]> writes:

>> From: Tino Calancha <[email-masked]>
>> Cc: [email-masked], [email-masked], [email-masked]
>> Date: Thu, 29 Dec 2016 20:37:47 +0900
>> 
>> It's worth to note that in _any_ case i've seen more than 1 thread with
>> context_acquired = true.
>
> You mean, in no case, right?
Exactly: i have never seen more than 1 thread with
context_acquired = true

>> Thread 10 (Thread 0x7fffdd151700 (LWP 27549)):
>> #0  raise (sig=6) at ../sysdeps/unix/sysv/linux/raise.c:58
>>         set = {__val = {402653184, 0, 18446744073709551615,
>> 18446744073709551615, 0, 0, 18446744073709551615,
>> 18446744073709551615, 0, 0, 0, 0, 0, 0, 30768, 140737251463819}}
>>         pid = <optimized out>
>>         tid = <optimized out>
>> #1  0x000000000058f90f in terminate_due_to_signal (sig=6, backtrace_limit=40) at emacs.c:395
>> No locals.
>> #2  0x00000000005bdf0e in emacs_abort () at sysdep.c:2364
>> No locals.
>> #3  0x00000000005a3a38 in unblock_input_to (level=-1) at keyboard.c:7170
>> No locals.
>> #4  0x00000000005a3a4f in unblock_input () at keyboard.c:7186
>> No locals.
>> #5 0x0000000000552f34 in XTread_socket (terminal=0x1371e40
>> <bss_sbrk_buffer+5619808>, hold_quit=0x7fffdd14fa80) at xterm.c:8943
>>         count = 0
>>         event_found = false
>>         dpyinfo = 0x2f5ad40
>> #6  0x00000000005a343d in gobble_input () at keyboard.c:6883
>>         nr = 0
>>         hold_quit = {kind = NO_EVENT, part = scroll_bar_nowhere,
>> code = 0, modifiers = 0, x = {i = 0}, y = {i = 0}, timestamp = 0,
>> frame_or_window = {i = 0}, arg = {i = 0}}
>>         next = 0x0
>>         nread = 0
>>         err = false
>>         t = 0x1371e40 <bss_sbrk_buffer+5619808>
>> #7  0x00000000005a39cc in handle_async_input () at keyboard.c:7138
>>         nread = 0
>> #8  0x00000000005a39eb in process_pending_signals () at keyboard.c:7152
>> No locals.
>> #9  0x00000000005a3a2b in unblock_input_to (level=0) at keyboard.c:7167
>> No locals.
>> #10 0x00000000005a3a4f in unblock_input () at keyboard.c:7186
>> No locals.
>> #11 0x000000000070c8f3 in xg_select (fds_lim=14,
>> rfds=0x7fffdd150580, wfds=0x7fffdd150500, efds=0x0,
>> timeout=0x7fffdd1504e0, sigmask=0x0) at xgselect.c:162
>
> This is weird.  It seems some other thread called unblock_input while
> this thread was in process_pending_signals.  Not sure how that could
> happen.
That is my favourite crash: it happens just right after start the session.
It's _very_ unlikely to happen.  OTHO the other crashes are quite easy
to reproduce in my box.