bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#34394: 27.0.50; Emacs segfaults with SLY, company and C-g


From: João Távora
Subject: bug#34394: 27.0.50; Emacs segfaults with SLY, company and C-g
Date: Sat, 09 Feb 2019 14:13:52 +0000
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)

João Távora <joaotavora@gmail.com> writes:

> João Távora <joaotavora@gmail.com> writes:
>
>> Eli Zaretskii <eliz@gnu.org> writes:
>>
>>>> From: João Távora <joaotavora@gmail.com>
>>>> Cc: 34394@debbugs.gnu.org,  schwab@linux-m68k.org
>>>> Date: Sat, 09 Feb 2019 13:23:06 +0000
>>>> 
>>>>    (gdb) p globals.f_Vquit_flag 
>>>>    $3 = XIL(0xc750)
>>>>    (gdb) xsymbol
>>>>    $4 = (struct Lisp_Symbol *) 0x555555ce94d0 <lispsym+51024>
>>>>    "t"
>>>
>>> Thanks.  So my theory eats dust.  Hmm...  I wonder if you could come
>>> up with a simpler reproducer, perhaps in "emacs -nw" (which many times
>>> tends to make such problems more prominent and simpler to reproduce)?
>>
>> OK with emacs -nw, and attaching a gdb to the PID I got a new, slightly
>> different, backtrace, attached.  It now breaks on a SIGINT.
>
> Never mind, when I do this I have an automatic breakpoint on C-g for
> some reason, and that's what you are seeing.  Will try to disable it to
> reproduce the actual bug.

So I disabled SIGINT for gdb and let it go to Emacs for keyboard-quit.
I reproduced with -nw, here's the backtrace.

Is it my impression or do I finally see sit_for in the bt?  (I don't
know, I've sent so many backtraces already)

João

69      ../sysdeps/unix/sysv/linux/pselect.c: No such file or directory.
(gdb) c
Continuing.

Program received signal SIGABRT, Aborted.
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
50      ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt full
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
        set = {__val = {0, 0, 0, 7234246878190108672, 3486406460340450103, 
8159871459836720384, 140723461185312, 612, 140723461185312, 94478308327698, 
140723461185632, 1, 94478312982560, 140322191709231, 4222451713, 
94478312982560}}
        pid = <optimized out>
        tid = <optimized out>
        ret = <optimized out>
#1  0x00007f9f4e55b535 in __GI_abort () at abort.c:79
        save_stage = 1
        act = {__sigaction_handler = {sa_handler = 0x55ed738344b0, sa_sigaction 
= 0x55ed738344b0}, sa_mask = {__val = {140322191709018, 206158430256, 
140723461185864, 140723461185664, 8159871459836720384, 3432, 140322192429728, 
94478313311616, 140322191129007, 1974, 94478333592752, 0, 94478338512400, 1, 
140723461185792, 140723461186192}}, sa_flags = -1142267648, sa_restorer = 
0x1000}
        sigs = {__val = {32, 0 <repeats 15 times>}}
#2  0x00007f9f4e5b2718 in __libc_message (action=<optimized out>, 
fmt=fmt@entry=0x7f9f4e6bd088 "*** %s ***: %s terminated\n") at 
../sysdeps/posix/libc_fatal.c:181
        ap = {{gp_offset = 32, fp_offset = 32764, overflow_arg_area = 
0x7ffcbbea62a0, reg_save_area = 0x7ffcbbea6230}}
        fd = 10
        list = <optimized out>
        nlist = <optimized out>
        cp = <optimized out>
        written = <optimized out>
#3  0x00007f9f4e643bbd in __GI___fortify_fail_abort 
(need_backtrace=need_backtrace@entry=true, msg=0x7f9f4e6bd03d <longjmp_msg> 
"longjmp causes uninitialized stack frame") at fortify_fail.c:28
No locals.
#4  0x00007f9f4e643bf1 in __GI___fortify_fail (msg=<optimized out>) at 
fortify_fail.c:44
No locals.
#5  0x00007f9f4e643aad in ____longjmp_chk () at 
../sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S:105
No locals.
#6  0x00007f9f4e643a0b in __longjmp_chk (env=0x55ed72523238 <main_thread+216>, 
val=val@entry=1) at ../setjmp/longjmp.c:39
No locals.
#7  0x000055ed71ed42d4 in quit_throw_to_read_char 
(from_signal=from_signal@entry=true) at keyboard.c:10486
No locals.
#8  0x000055ed71ed4950 in handle_interrupt 
(in_signal_handler=in_signal_handler@entry=true) at keyboard.c:10461
        c = <optimized out>
#9  0x000055ed71ed6445 in handle_interrupt_signal (sig=sig@entry=2) at 
keyboard.c:10293
        terminal = <optimized out>
#10 0x000055ed71ee889b in deliver_process_signal (sig=2, 
handler=handler@entry=0x55ed71ed6417 <handle_interrupt_signal>) at sysdep.c:1733
        old_errno = 22
        on_main_thread = true
#11 0x000055ed71ec7f3a in deliver_interrupt_signal (sig=<optimized out>) at 
keyboard.c:10300
No locals.
#12 <signal handler called>
No locals.
#13 0x00007f9f4e62a4a9 in __pselect (nfds=10, readfds=0x7ffcbbea6e10, 
writefds=0x7ffcbbea6d90, exceptfds=0x0, timeout=<optimized out>, sigmask=0x0) 
at ../sysdeps/unix/sysv/linux/pselect.c:69
        resultvar = 18446744073709551612
        sc_ret = <optimized out>
        tval = {tv_sec = 0, tv_nsec = 330889851}
        data = {ss = 0, ss_len = 8}
        result = <optimized out>
#14 0x000055ed71fdbc44 in really_call_select (arg=arg@entry=0x7ffcbbea6b80) at 
thread.c:580
        sa = 0x7ffcbbea6b80
        self = 0x55ed72523160 <main_thread>
        oldset = {__val = {0, 0, 140723461188464, 94478341426928, 
94478346665443, 94478307959952, 2000000000002, 4000000000002, 140723461188464, 
94478306951740, 1549721455, 94478346665475, 94478341426933, 94478306952458, 
140720308486147, 0}}
#15 0x000055ed71f378b7 in flush_stack_call_func (func=func@entry=0x55ed71fdbbf5 
<really_call_select>, arg=arg@entry=0x7ffcbbea6b80) at alloc.c:5229
        end = 0x7ffcbbea6b70
        self = 0x55ed72523160 <main_thread>
        sentry = <optimized out>
#16 0x000055ed71fdcfc8 in thread_select (func=<optimized out>, 
max_fds=<optimized out>, rfds=rfds@entry=0x7ffcbbea6e10, wfds=<optimized out>, 
efds=efds@entry=0x0, timeout=timeout@entry=0x7ffcbbea6d70, sigmask=0x0) at 
thread.c:610
        sa = {func = 0x7f9f4e62a450 <__pselect>, max_fds = 10, rfds = 
0x7ffcbbea6e10, wfds = 0x7ffcbbea6d90, efds = 0x0, timeout = 0x7ffcbbea6d70, 
sigmask = 0x0, result = 0}
#17 0x000055ed71fb2392 in wait_reading_process_output 
(time_limit=time_limit@entry=30, nsecs=nsecs@entry=0, read_kbd=-1, 
do_display=do_display@entry=true, wait_for_cell=..., 
wait_proc=wait_proc@entry=0x0, just_wait_proc=0) at process.c:5420
        process_skipped = false
        channel = <optimized out>
        nfds = <optimized out>
        Available = {fds_bits = {952, 0 <repeats 15 times>}}
        Writeok = {fds_bits = {0 <repeats 16 times>}}
        check_write = true
        check_delay = 1
        no_avail = false
        xerrno = 22
        proc = {i = 0x55ed73cce1b5}
        timeout = {tv_sec = 0, tv_nsec = 377014395}
        end_time = <optimized out>
        timer_delay = <optimized out>
        got_output_end_time = <optimized out>
        wait = TIMEOUT
        got_some_output = -1
        prev_wait_proc_nbytes_read = 0
        retry_for_async = false
        count = 3
        now = <optimized out>
#18 0x000055ed71dba3ac in sit_for (timeout=..., timeout@entry=..., 
reading=reading@entry=true, display_option=display_option@entry=1) at 
lisp.h:1056
        sec = 30
        nsec = 0
        do_display = true
#19 0x000055ed71ed8209 in read_char (commandflag=1, map=..., map@entry=..., 
prev_event=..., used_mouse_menu=used_mouse_menu@entry=0x7ffcbbea720b, 
end_time=end_time@entry=0x0) at lisp.h:751
        tem0 = <optimized out>
        timeout = 30
        delay_level = <optimized out>
        buffer_size = <optimized out>
        c = {i = 0x0}
        jmpcount = 3
        local_getcjmp = {{__jmpbuf = {0, -8545801708543905756, 94478340994080, 
94478333592752, 140723461190352, 0, -2502692692833570780, 
-8545806451447926748}, __mask_was_saved = 0, __saved_mask = {__val = {0, 
94478346649555, 94478306900597, 3, 0, 4294967295, 3, 94478334248240, 
94478307045825, 0, 0, 0, 25365120, 0, 94478306900597, 8194}}}}
        save_jump = {{__jmpbuf = {54144, 94478338512400, 1, 31056, 
94478313481936, 0, 2, 1}, __mask_was_saved = 1, __saved_mask = {__val = 
{94478306900597, 140723461186576, 94478340994085, 94478340994085, 
94478306902260, 140322119159976, 94478307488136, 15, 140322119159928, 
140322119159976, 94478306900597, 0, 0, 140322124526683, 94478306902260, 
140322124526667}}}}
        tem = <optimized out>
        save = <optimized out>
        previous_echo_area_message = {i = 0x0}
        also_record = {i = 0x0}
        reread = false
        recorded = false
        polling_stopped_here = false
        orig_kboard = 0x55ed73850160
#20 0x000055ed71ed94f5 in read_key_sequence 
(keybuf=keybuf@entry=0x7ffcbbea72d0, prompt=..., 
dont_downcase_last=dont_downcase_last@entry=false, 
can_return_switch_frame=can_return_switch_frame@entry=true, 
fix_current_buffer=fix_current_buffer@entry=true, 
prevent_redisplay=prevent_redisplay@entry=false) at keyboard.c:9082
        interrupted_kboard = 0x55ed73850160
        interrupted_frame = 0x55ed738344b0
        key = {i = 0x55ed73f43420}
        used_mouse_menu = false
        echo_local_start = 0
        last_real_key_start = 0
        keys_local_start = <optimized out>
        new_binding = <optimized out>
        count = 3
        t = 0
        echo_start = 0
        keys_start = 0
        current_binding = <optimized out>
        first_unbound = 31
        mock_input = 0
        used_mouse_menu_history = {false <repeats 30 times>}
        fkey = {parent = {i = 0x55ed73830553}, map = {i = 0x55ed73830553}, 
start = 0, end = 0}
        keytran = {parent = {i = 0x7f9f4a62b5cb}, map = {i = 0x7f9f4a62b5cb}, 
start = 0, end = 0}
        indec = {parent = {i = 0x55ed73830543}, map = {i = 0x55ed73830543}, 
start = 0, end = 0}
        shift_translated = false
        delayed_switch_frame = <optimized out>
        original_uppercase = <optimized out>
        original_uppercase_position = -1
        dummyflag = false
        starting_buffer = 0x55ed73f43420
        fake_prefixed_keys = <optimized out>
        first_event = <optimized out>
        second_event = <optimized out>
#21 0x000055ed71edabc1 in command_loop_1 () at lisp.h:1056
        cmd = <optimized out>
        keybuf = {{i = 0x50a0}, {i = 0x13e}, {i = 0x10a}, {i = 0x3}, {i = 0x3}, 
{i = 0x55ed71f64c17 <Ffuncall+684>}, {i = 0x0}, {i = 0x55ed743321d3}, {i = 
0x7ffcbbea7390}, {i = 0x29b1d8063918}, {i = 0x1}, {i = 0x0}, {i = 0x0}, {i = 
0x55ed71f68fae <call3+36>}, {i = 0x29b1d8063918}, {i = 0x55ed743321d3}, {i = 
0x7f9f4a0c3f74}, {i = 0x0}, {i = 0x7ffcbbea7390}, {i = 0x55ed71ecef45 
<cmd_error_internal+495>}, {i = 0x0}, {i = 0x55ed743321d3}, {i = 0x0}, {i = 
0x55ed71ecf2bb <cmd_error+846>}, {i = 0x0}, {i = 0x1}, {i = 0x3}, {i = 
0x55ed71f6382b <push_handler_nosignal+323>}, {i = 0x7f9f4a62e60b}, {i = 
0x55ed7386ff30}}
        i = <optimized out>
        prev_modiff = 36
        prev_buffer = 0x55ed73f43420
#22 0x000055ed71f63a96 in internal_condition_case 
(bfun=bfun@entry=0x55ed71eda943 <command_loop_1>, handlers=..., 
handlers@entry=..., hfun=hfun@entry=0x55ed71ecef6d <cmd_error>) at eval.c:1376
        val = {i = 0xfffffffffffffffc}
        c = 0x55ed7386ff30
#23 0x000055ed71ecb494 in command_loop_2 (ignore=..., ignore@entry=...) at 
lisp.h:1056
        val = <optimized out>
#24 0x000055ed71f639da in internal_catch (tag=..., 
func=func@entry=0x55ed71ecb478 <command_loop_2>, arg=..., arg@entry=...) at 
eval.c:1139
        val = {i = 0xfffffffffffffffc}
        c = 0x55ed73850230
#25 0x000055ed71ec8786 in command_loop () at lisp.h:1056
No locals.
#26 0x000055ed71ece728 in recursive_edit_1 () at keyboard.c:714
        count = 1
        val = <optimized out>
#27 0x000055ed71ececf0 in Frecursive_edit () at keyboard.c:785
        count = 0
        buffer = <optimized out>
#28 0x000055ed71ec7154 in main (argc=15, argv=<optimized out>) at emacs.c:1949
        stack_bottom_variable = 0x55ed7201b155 <__libc_csu_init+69>
        do_initial_setlocale = <optimized out>
        no_loadup = false
        junk = 0x0
        dname_arg = 0x0
        ch_to_dir = 0x0
        original_pwd = 0x0
        dump_mode = <optimized out>
        skip_args = 1
        temacs = 0x0
        rlim = {rlim_cur = 10022912, rlim_max = 18446744073709551615}
(gdb) 





reply via email to

[Prev in Thread] Current Thread [Next in Thread]