Subject: bug#25178: 26.0.50; Crash when pressing C-g in TTY mode

From: Elias Martenson <[email-masked]>
Date: Tue, 13 Dec 2016 11:07:08 +0800

Eli Zaretskii <[email-masked]> writes:

> Doesn't happen to me.
>
> Can you run this under GDB and show the backtrace from the crash?

I'm sorry, the previous stack trace I posted was from the interrupt
signal.

Here is the actual stack trace from the core dump generated during the
crash:

    Machine ID: 50467f3a69eb4dbea19c8a2972949839
      Hostname: em-desktop
       Storage: /var/lib/systemd/coredump/core.emacs.50067.45a62f2ad9804a0b81fed25ad8faffab.21460.1481598260000000000000.lz4
       Message: Process 21460 (emacs) of user 50067 dumped core.
                
                Stack trace of thread 21460:
                #0  0x00007fec16127f5f raise (libpthread.so.0)
                #1  0x0000000000553c66 terminate_due_to_signal (emacs-26.0.50)
                #2  0x00000000005783c1 handle_fatal_signal (emacs-26.0.50)
                #3  0x0000000000578392 deliver_thread_signal (emacs-26.0.50)
                #4  0x00000000005783f8 deliver_fatal_thread_signal (emacs-26.0.50)
                #5  0x00000000005785ae handle_sigsegv (emacs-26.0.50)
                #6  0x00007fec16128080 __restore_rt (libpthread.so.0)
                #7  0x00007fec161296a0 __lll_unlock_elision (libpthread.so.0)
                #8  0x0000000000677a94 sys_mutex_unlock (emacs-26.0.50)
                #9  0x000000000067638d release_global_lock (emacs-26.0.50)
                #10 0x0000000000676d75 really_call_select (emacs-26.0.50)
                #11 0x00000000005d4a02 flush_stack_call_func (emacs-26.0.50)
                #12 0x0000000000676e2b thread_select (emacs-26.0.50)
                #13 0x0000000000651168 wait_reading_process_output (emacs-26.0.50)
                #14 0x00000000004252be sit_for (emacs-26.0.50)
                #15 0x000000000055bc48 read_char (emacs-26.0.50)
                #16 0x0000000000568714 read_key_sequence (emacs-26.0.50)
                #17 0x0000000000558939 command_loop_1 (emacs-26.0.50)
                #18 0x00000000005f64a5 internal_condition_case (emacs-26.0.50)
                #19 0x0000000000558232 command_loop_2 (emacs-26.0.50)
                #20 0x00000000005f5d72 internal_catch (emacs-26.0.50)
                #21 0x00000000005581d4 command_loop (emacs-26.0.50)
                #22 0x00000000005578f0 recursive_edit_1 (emacs-26.0.50)
                #23 0x0000000000557a6c Frecursive_edit (emacs-26.0.50)
                #24 0x0000000000555867 main (emacs-26.0.50)
                #25 0x00007fec15763291 __libc_start_main (libc.so.6)
                #26 0x00000000004185ba _start (emacs-26.0.50)
                
                Stack trace of thread 21461:
                #0  0x00007fec1582248d poll (libc.so.6)
                #1  0x00007fec1b119786 n/a (libglib-2.0.so.0)
                #2  0x00007fec1b11989c g_main_context_iteration (libglib-2.0.so.0)
                #3  0x00007fec1b1198e1 n/a (libglib-2.0.so.0)
                #4  0x00007fec1b1410d5 n/a (libglib-2.0.so.0)
                #5  0x00007fec1611e454 start_thread (libpthread.so.0)
                #6  0x00007fec1582b7df __clone (libc.so.6)

GNU gdb (GDB) 7.12
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /home/emartenson/src/emacs/dist/bin/emacs-26.0.50...done.

warning: core file may not match specified executable file.
[New LWP 21460]
[New LWP 21461]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
Core was generated by `dist/bin/emacs -nw -Q'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00007fec16127f5f in raise () from /usr/lib/libpthread.so.0
[Current thread is 1 (Thread 0x7fec1e015a00 (LWP 21460))]
(gdb) bt full
#0  0x00007fec16127f5f in raise () at /usr/lib/libpthread.so.0
#1  0x0000000000553c66 in terminate_due_to_signal (sig=11, backtrace_limit=40)
    at emacs.c:394
#2  0x00000000005783c1 in handle_fatal_signal (sig=11) at sysdep.c:1685
#3  0x0000000000578392 in deliver_thread_signal (sig=11, handler=0x5783a7 <handle_fatal_signal>) at sysdep.c:1659
        old_errno = 4
#4  0x00000000005783f8 in deliver_fatal_thread_signal (sig=11) at sysdep.c:1697
#5  0x00000000005785ae in handle_sigsegv (sig=11, siginfo=0xc8c930 <sigsegv_stack+7152>, arg=0xc8c800 <sigsegv_stack+6848>) at sysdep.c:1782
        fatal = false
#6  0x00007fec16128080 in <signal handler called> () at /usr/lib/libpthread.so.0
#7  0x00007fec161296a0 in __lll_unlock_elision () at /usr/lib/libpthread.so.0
#8  0x0000000000677a94 in sys_mutex_unlock (mutex=0xcc6b20 <global_lock>)
    at systhread.c:119
#9  0x000000000067638d in release_global_lock () at thread.c:50
#10 0x0000000000676d75 in really_call_select (arg=0x7ffd4e656da0) at thread.c:497
        sa = 0x7ffd4e656da0
        self = 0xcc69e0 <primary_thread>
#11 0x00000000005d4a02 in flush_stack_call_func (func=0x676d51 <really_call_select>, arg=0x7ffd4e656da0) at alloc.c:5137
        end = 0x7ffd4e656d20
        self = 0xcc69e0 <primary_thread>
#12 0x0000000000676e2b in thread_select (func=0x69f84f <xg_select>, max_fds=7, rfds=0x7ffd4e657050, wfds=0x7ffd4e656fd0, efds=0x0, timeout=0x7ffd4e656fb0, sigmask=0x0)
    at thread.c:517
        sa = 
          {func = 0x69f84f <xg_select>, max_fds = 7, rfds = 0x7ffd4e657050, wfds = 0x7ffd4e656fd0, efds = 0x0, timeout = 0x7ffd4e656fb0, sigmask = 0x0, result = -1}
#13 0x0000000000651168 in wait_reading_process_output (time_limit=30, nsecs=0, read_kbd=-1, do_display=true, wait_for_cell=0, wait_proc=0x0, just_wait_proc=0)
    at process.c:5345
        process_skipped = false
        channel = 0
        nfds = 5676853
        Available = {fds_bits = {80, 0 <repeats 15 times>}}
        Writeok = {fds_bits = {0 <repeats 16 times>}}
        check_write = true
        check_delay = 0
        no_avail = false
        xerrno = 0
        proc = 75334272
        timeout = {tv_sec = 0, tv_nsec = 499974654}
        end_time = {tv_sec = 1481598290, tv_nsec = 297726035}
        timer_delay = {tv_sec = 0, tv_nsec = 499974654}
        got_output_end_time = {tv_sec = 1481598290, tv_nsec = 297726035}
        wait = TIMEOUT
        got_some_output = -1
        retry_for_async = false
        count = 3
        now = {tv_sec = 0, tv_nsec = -1}
#14 0x00000000004252be in sit_for (timeout=122, reading=true, display_option=1)
    at dispnew.c:5763
        sec = 30
        nsec = 0
        do_display = true
#15 0x000000000055bc48 in read_char (commandflag=1, map=19912227, prev_event=0, used_mouse_menu=0x7ffd4e6575cf, end_time=0x0) at keyboard.c:2722
        tem0 = 5568885
        timeout = 30
        delay_level = 4
        buffer_size = 1
        c = 0
        jmpcount = 3
        local_getcjmp = 
                {{__jmpbuf = {0, -8520776443860642955, 4294032, 140725918727216, 0, 0, -8520776443766271115, 8519265241542136693}, __mask_was_saved = 0, __saved_mask = {__val = {20304512, 13254064, 6140185, 0, 140725918725136, 5568885, 18152640, 13254064, 5703904, 0, 140725918725184, 5568885, 19983315, 140725918725280, 6272424, 0}}}}
        save_jump = 
                {{__jmpbuf = {0, 0, 0, 0, 0, 0, 0, 0}, __mask_was_saved = 0, __saved_mask = {__val = {0 <repeats 16 times>}}}}
        tem = 19912227
        save = 0
        previous_echo_area_message = 0
        also_record = 0
        reread = false
        recorded = false
        polling_stopped_here = false
        orig_kboard = 0x47da7f0
#16 0x0000000000568714 in read_key_sequence (keybuf=0x7ffd4e657780, bufsize=30, prompt=0, dont_downcase_last=false, can_return_switch_frame=true, fix_current_buffer=true, prevent_redisplay=false) at keyboard.c:9136
        interrupted_kboard = 0x47da7f0
        interrupted_frame = 0xd28688 <bss_sbrk_buffer+400168>
        key = 4545089
        used_mouse_menu = false
        echo_local_start = 0
        last_real_key_start = 0
        keys_local_start = 0
        new_binding = 5
        count = 3
        t = 0
        echo_start = 0
        keys_start = 0
        current_binding = 19912227
        first_event = 0
        first_unbound = 31
        mock_input = 0
        fkey = {parent = 14043523, map = 14043523, start = 0, end = 0}
        keytran = {parent = 13732419, map = 13732419, start = 0, end = 0}
        indec = {parent = 14043571, map = 14043571, start = 0, end = 0}
        shift_translated = false
        delayed_switch_frame = 0
        original_uppercase = 0
        original_uppercase_position = -1
        dummyflag = false
        starting_buffer = 0xd1b400 <bss_sbrk_buffer+346272>
        fake_prefixed_keys = 0
#17 0x0000000000558939 in command_loop_1 () at keyboard.c:1373
        cmd = 140725918726352
        keybuf = 
          {140725918726112, 6265093, 140725918726160, 4, 140725918726096, 515712, 3, 3, 0, 9575733, 140725918726160, 0, 140725918726192, 6263393, 0, 9588196, 13254064, 515712, 0, 140725918726192, 5568885, 0, 13254064, 5603198, 13254064, 140725918726240, 0, 140725918726256, 5568885, 5603001}
        i = 1
        prev_modiff = 0
        prev_buffer = 0x0
        already_adjusted = false
#18 0x00000000005f64a5 in internal_condition_case (bfun=0x558528 <command_loop_1>, handlers=19680, hfun=0x557d15 <cmd_error>) at eval.c:1336
        val = 5568885
        c = 0x47f1f00
#19 0x0000000000558232 in command_loop_2 (ignore=0) at keyboard.c:1115
        val = 2
#20 0x00000000005f5d72 in internal_catch (tag=47472, func=0x558209 <command_loop_2>, arg=0) at eval.c:1101
        val = 5568885
        c = 0x47da8c0
#21 0x00000000005581d4 in command_loop () at keyboard.c:1094
#22 0x00000000005578f0 in recursive_edit_1 () at keyboard.c:700
        count = 1
        val = 140725918726656
#23 0x0000000000557a6c in Frecursive_edit () at keyboard.c:771
        count = 0
        buffer = 0
#24 0x0000000000555867 in main (argc=3, argv=0x7ffd4e657c38) at emacs.c:1686
        stack_bottom_variable = 0 '\000'
        do_initial_setlocale = true
        dumping = false
        skip_args = 1
        no_loadup = false
        junk = 0x0
        dname_arg = 0x0
        ch_to_dir = 0x0
        original_pwd = 0x0
        disable_aslr = false
        rlim = {rlim_cur = 8720384, rlim_max = 18446744073709551615}
        sockfd = -1
*******************************

This e-mail contains information for the intended recipient only. It may contain proprietary material or confidential information. If you are not the intended recipient you are not authorised to distribute, copy or use this e-mail or any attachment to it. Murex cannot guarantee that it is virus free and accepts no responsibility for any loss or damage arising from its use. If you have received this e-mail in error please notify immediately the sender and delete the original email received, any attachments and all copies from your system.