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 11:31:36 +0000
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)

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 09:45:13 +0000
>> 
>> Eli Zaretskii <eliz@gnu.org> writes:
>> 
>> > When this happens, what is the value of Vquit_flag, in Lisp terms?  Is
>> > it t or something else?
>> 
>> I can't tell exactly.

> I meant to ask that you examine the value in GDB.  Sorry if I didn't
> make that clear enough.

Oh, silly, sorry.  But I still can't answer, because it can't find that
symbol in context.

I tried just 'p Vquit_flag'

Strange, isn't this supposed to be a global?  There are other V's that I
can inspect with 'print'.  Even if I 'frame 8' to select a frame where
it should definitely be in context, I can't see 'Vquit_flag'. 

I have gotten what seems like richer backtrace though.  See after my
sig.

>> I believe this happens in *some* of the times I ress C-g during the
>> (while (sit-for)) in the following block extracted from sly.el
>
> You said the code uses while-no-input, which is why I asked.  Maybe we
> get confused by the trickery used by while-no-input.

No, I said it used to use while-no-input.  It now uses (while (sit-for))
for the same purpose.  I do believe however, that the problem also
manifested itself back when it did use while-no-input.

> Btw, does this happen only on master, otr is it reproducible on
> emacs-26 as well?

Pretty sure it also happens on emacs-26, too. But I will try again.

Meanwhile, enjoy the backtrace and thanks again.
João


gdb --args ./emacs -Q -L ~/Source/Emacs/sly -l sly-autoloads -L 
~/Source/Emacs/company-mode -l ~/Source/Emacs/company-mode/company.el -f 
global-company-mode -f sly                       
scratch/new-flex-completion-style ◼
GNU gdb (Debian 8.2-1) 8.2
Copyright (C) 2018 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-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 ./emacs...done.
SIGINT is used by the debugger.
Are you sure you want to change it? (y or n) [answered Y; input not from 
terminal]
DISPLAY = :0
TERM = xterm
Breakpoint 1 at 0x15015c: file emacs.c, line 370.
Temporary breakpoint 2 at 0x172efd: file lisp.h, line 1056.
(gdb) r
Starting program: /home/capitaomorte/Source/Emacs/emacs-master/src/emacs -Q -L 
/home/capitaomorte/Source/Emacs/sly -l sly-autoloads -L 
/home/capitaomorte/Source/Emacs/company-mode -l 
/home/capitaomorte/Source/Emacs/company-mode/company.el -f global-company-mode 
-f sly
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Detaching after vfork from child process 20755]
[Detaching after vfork from child process 20763]
[Detaching after vfork from child process 20764]
*** longjmp causes uninitialized stack frame ***: 
/home/capitaomorte/Source/Emacs/emacs-master/src/emacs terminated

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, 93825000843456, 140737328736549, 13298, 
93825000838608, 93825000883760, 1, 140737488341936, 140737305084542, 
93825001776656, 16777216000000000000, 140737488342240, 93825007851488, 
4294967256, 1}
        }
        pid = <optimized out>
        tid = <optimized out>
        ret = <optimized out>
#1  0x00007ffff4f6d535 in __GI_abort () at abort.c:79
        save_stage = 1
        act = {
          __sigaction_handler = {
            sa_handler = 0x1, 
            sa_sigaction = 0x1
          }, 
          sa_mask = {
            __val = {140737305057658, 1937910009842106368, 1241655880387876352, 
32, 1, 2, 140737488342496, 93825000021600, 140737488342544, 140737488342480, 
140737305057352, 1, 140737305057658, 1937910009842106368, 140737488342400, 
              140737488342800}
          }, 
          sa_flags = -12928, 
          sa_restorer = 0x1000
        }
        sigs = {
          __val = {32, 0 <repeats 15 times>}
        }
#2  0x00007ffff4fc4718 in __libc_message (action=<optimized out>, 
fmt=fmt@entry=0x7ffff50cf088 "*** %s ***: %s terminated\n") at 
../sysdeps/posix/libc_fatal.c:181
        ap = {{
            gp_offset = 32, 
            fp_offset = 465, 
            overflow_arg_area = 0x7fffffffcf20, 
            reg_save_area = 0x7fffffffceb0
          }}
        fd = 11
        list = <optimized out>
        nlist = <optimized out>
        cp = <optimized out>
        written = <optimized out>
#3  0x00007ffff5055bbd in __GI___fortify_fail_abort 
(need_backtrace=need_backtrace@entry=true, msg=0x7ffff50cf03d <longjmp_msg> 
"longjmp causes uninitialized stack frame") at fortify_fail.c:28
No locals.
#4  0x00007ffff5055bf1 in __GI___fortify_fail (msg=<optimized out>) at 
fortify_fail.c:44
No locals.
#5  0x00007ffff5055aad in ____longjmp_chk () at 
../sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S:105
No locals.
#6  0x00007ffff5055a0b in __longjmp_chk (env=0x555555d01238 <main_thread+216>, 
val=val@entry=1) at ../setjmp/longjmp.c:39
No locals.
#7  0x00005555556b22d4 in quit_throw_to_read_char 
(from_signal=from_signal@entry=false) at keyboard.c:10486
No locals.
#8  0x00005555556ba3cd in set_waiting_for_input 
(time_to_clear=time_to_clear@entry=0x7fffffffd130) at keyboard.c:10253
No locals.
#9  0x000055555579007c 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:5212
        process_skipped = false
        channel = <optimized out>
        nfds = <optimized out>
        Available = {
          fds_bits = {16, 0 <repeats 15 times>}
        }
        Writeok = {
          fds_bits = {0 <repeats 16 times>}
        }
        check_write = <optimized out>
        check_delay = <optimized out>
        no_avail = <optimized out>
--Type <RET> for more, q to quit, c to continue without paging--
        xerrno = 11
        proc = XIL(0x55555644ae05)
        timeout = {
          tv_sec = 29, 
          tv_nsec = 847330104
        }
        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>
#10 0x00005555555983ac in sit_for (timeout=..., timeout@entry=make_number(30), 
reading=reading@entry=true, display_option=display_option@entry=1) at 
lisp.h:1056
        sec = 30
        nsec = 0
        do_display = true
#11 0x00005555556b6209 in read_char (commandflag=1, map=..., 
map@entry=XIL(0x555556a34d63), prev_event=XIL(0), 
used_mouse_menu=used_mouse_menu@entry=0x7fffffffd5cb, 
end_time=end_time@entry=0x0) at lisp.h:751
        tem0 = <optimized out>
        timeout = 30
        delay_level = <optimized out>
        buffer_size = <optimized out>
        c = XIL(0)
        jmpcount = 3
        local_getcjmp = {{
            __jmpbuf = {0, -2326386954136450792, 93825009896624, 
93825001081184, 140737488344720, 0, -8439086859478890216, 
-2326388347257485032}, 
            __mask_was_saved = 0, 
            __saved_mask = {
              __val = {93825009137987, 0, 93824993581685, 3, 0, 4294967295, 3, 
93825001378992, 93824993726913, 0, 0, 0, 7689696, 0, 93824993581685, 8194}
            }
          }}
        save_jump = {{
            __jmpbuf = {0, -2326386954136450792, 93825009896624, 
93825001081184, 140737488344720, 0, -8439086859478890216, 
-2326388347257485032}, 
            __mask_was_saved = 0, 
            __saved_mask = {
              __val = {93825009137987, 0, 93824993581685, 3, 0, 4294967295, 3, 
93825001378992, 93824993726913, 0, 0, 0, 7689696, 0, 93824993581685, 8194}
            }
          }}
        tem = <optimized out>
        save = <optimized out>
        previous_echo_area_message = XIL(0)
        also_record = XIL(0)
        reread = false
        recorded = false
        polling_stopped_here = false
        orig_kboard = 0x555555d68c90
#12 0x00005555556b74f5 in read_key_sequence 
(keybuf=keybuf@entry=0x7fffffffd690, prompt=XIL(0x555555d68c90), 
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 = 0x555555d68c90
        interrupted_frame = 0x555555dc4960
        key = XIL(0x55555662ccb0)
        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
--Type <RET> for more, q to quit, c to continue without paging--
        current_binding = <optimized out>
        first_unbound = 31
        mock_input = 0
        used_mouse_menu_history = {false <repeats 30 times>}
        fkey = {
          parent = XIL(0x555555d84f73), 
          map = XIL(0x555555d84f73), 
          start = 0, 
          end = 0
        }
        keytran = {
          parent = XIL(0x7ffff103d5cb), 
          map = XIL(0x7ffff103d5cb), 
          start = 0, 
          end = 0
        }
        indec = {
          parent = XIL(0x555555d84f63), 
          map = XIL(0x555555d84f63), 
          start = 0, 
          end = 0
        }
        shift_translated = false
        delayed_switch_frame = <optimized out>
        original_uppercase = <optimized out>
        original_uppercase_position = -1
        dummyflag = false
        starting_buffer = 0x55555662ccb0
        fake_prefixed_keys = <optimized out>
        first_event = <optimized out>
        second_event = <optimized out>
#13 0x00005555556b8bc1 in command_loop_1 () at lisp.h:1056
        cmd = <optimized out>
        keybuf = {XIL(0x50a0), XIL(0x555555c595e5), XIL(0x2aaa9b297918), 
XIL(0x3), XIL(0x3), XIL(0x555555742c17), XIL(0), XIL(0x5555569b59a3), 
XIL(0x7fffffffd750), XIL(0x2aaa9b297918), XIL(0), XIL(0), XIL(0), 
          make_number(23456248568811), XIL(0x2aaa9b297918), 
XIL(0x5555569b59a3), XIL(0x7ffff0ad5f74), XIL(0), XIL(0x7fffffffd750), 
XIL(0x5555556acf45), XIL(0), XIL(0x5555569b59a3), XIL(0), XIL(0x5555556ad2bb), 
XIL(0), XIL(0), XIL(0x3), 
          XIL(0x55555574182b), XIL(0x7ffff104060b), XIL(0x555555d68a50)}
        i = <optimized out>
        prev_modiff = 56
        prev_buffer = 0x55555662ccb0
#14 0x0000555555741a96 in internal_condition_case 
(bfun=bfun@entry=0x5555556b8943 <command_loop_1>, handlers=..., 
handlers@entry=XIL(0x55b0), hfun=hfun@entry=0x5555556acf6d <cmd_error>) at 
eval.c:1376
        val = XIL(0)
        c = 0x555555d68a50
#15 0x00005555556a9494 in command_loop_2 (ignore=..., ignore@entry=XIL(0)) at 
lisp.h:1056
        val = <optimized out>
#16 0x00005555557419da in internal_catch (tag=..., 
func=func@entry=0x5555556a9478 <command_loop_2>, arg=..., arg@entry=XIL(0)) at 
eval.c:1139
        val = XIL(0)
        c = 0x555555d68930
#17 0x00005555556a6786 in command_loop () at lisp.h:1056
No locals.
#18 0x00005555556ac728 in recursive_edit_1 () at keyboard.c:714
        count = 1
        val = <optimized out>
#19 0x00005555556accf0 in Frecursive_edit () at keyboard.c:785
        count = 0
        buffer = <optimized out>
#20 0x00005555556a5154 in main (argc=14, argv=<optimized out>) at emacs.c:1949
        stack_bottom_variable = 0x5555557f9155 <__libc_csu_init+69>
        do_initial_setlocale = <optimized out>
        no_loadup = false
        junk = 0x0
        dname_arg = 0x0
        ch_to_dir = 0x0
--Type <RET> for more, q to quit, c to continue without paging--
        original_pwd = 0x0
        dump_mode = <optimized out>
        skip_args = 0
        temacs = 0x0
        rlim = {
          rlim_cur = 10022912, 
          rlim_max = 18446744073709551615
        }
(gdb) p Vquit_flag
No symbol "Vquit_flag" in current context.
(gdb) p V
Display all 114 possibilities? (y or n)
V                                                                               
                         VTT for std::istrstream
V0                                                                              
                         VTT for std::ostream
V1                                                                              
                         VTT for std::ostrstream
V2                                                                              
                         VTT for std::strstream
V3                                                                              
                         Vascii_canon_table
V4                                                                              
                         Vascii_downcase_table
VALBITS                                                                         
                         Vascii_eqv_table
VALMASK                                                                         
                         Vascii_upcase_table
VBLOCK_BYTES_MAX                                                                
                         Vautoload_queue
VBLOCK_BYTES_MIN                                                                
                         Vbig5_coding_system
VC0                                                                             
                         Vbuffer_alist
VC1                                                                             
                         Vcached_fontset_data
VECTORLIKEP                                                                     
                         Vccl_program_table
VECTORP                                                                         
                         Vchar_unify_table
VECTOR_BLOCK_BYTES                                                              
                         Vcharset_hash_table
VECTOR_BLOCK_SIZE                                                               
                         Vcharset_non_preferred_head
VECTOR_MAX_FREE_LIST_INDEX                                                      
                         Vcharset_ordered_list
VERTICAL_BORDER_FACE_ID                                                         
                         Vcode_conversion_reused_workbuf
VINDEX                                                                          
                         Vcode_conversion_workbuf_name
VISIBLE_CHANGE                                                                  
                         Vcoding_category_table
VISIT                                                                           
                         Vcoding_system_hash_table
VP8CheckSignature                                                               
                         Vdead
VP8CheckSignature@got.plt                                                       
                         Vdefault_fontset
VP8CheckSignature@plt                                                           
                         Vemacs_mule_charset_list
VP8GetCPUInfo                                                                   
                         Vendor.h
VP8GetInfo                                                                      
                         VendorP.h
VP8GetInfo@got.plt                                                              
                         VendorShellClassPart
VP8GetInfo@plt                                                                  
                         VendorShellClassRec
VP8LCheckSignature                                                              
                         Vface_alternative_font_family_alist
VP8LCheckSignature@got.plt                                                      
                         Vface_alternative_font_registry_alist
VP8LCheckSignature@plt                                                          
                         Vfont_log_deferred
VP8LGetInfo                                                                     
                         Vfontset_table
VP8LGetInfo@got.plt                                                             
                         Vframe_list
VP8LGetInfo@plt                                                                 
                         Viso_2022_charset_list
VTT for std::__cxx11::basic_istringstream<char, std::char_traits<char>, 
std::allocator<char> >           Visual
VTT for std::__cxx11::basic_istringstream<wchar_t, std::char_traits<wchar_t>, 
std::allocator<wchar_t> >  VisualID
VTT for std::__cxx11::basic_ostringstream<char, std::char_traits<char>, 
std::allocator<char> >           Vlispy_mouse_stem
VTT for std::__cxx11::basic_ostringstream<wchar_t, std::char_traits<wchar_t>, 
std::allocator<wchar_t> >  Vloads_in_progress
VTT for std::__cxx11::basic_stringstream<char, std::char_traits<char>, 
std::allocator<char> >            Vmessage_stack
VTT for std::__cxx11::basic_stringstream<wchar_t, std::char_traits<wchar_t>, 
std::allocator<wchar_t> >   Vmessages_buffer_name
VTT for std::basic_fstream<char, std::char_traits<char> >                       
                         Vminibuffer_list
VTT for std::basic_fstream<wchar_t, std::char_traits<wchar_t> >                 
                         Vmode_line_unwind_vector
VTT for std::basic_ifstream<char, std::char_traits<char> >                      
                         Vmouse_events
VTT for std::basic_ifstream<wchar_t, std::char_traits<wchar_t> >                
                         Vparam_value_alist
VTT for std::basic_iostream<wchar_t, std::char_traits<wchar_t> >                
                         Vprin1_to_string_buffer
VTT for std::basic_istream<wchar_t, std::char_traits<wchar_t> >                 
                         Vprocess_alist
VTT for std::basic_istringstream<char, std::char_traits<char>, 
std::allocator<char> >                    Vrun_hooks
VTT for std::basic_istringstream<wchar_t, std::char_traits<wchar_t>, 
std::allocator<wchar_t> >           Vsignaling_function
VTT for std::basic_ofstream<char, std::char_traits<char> >                      
                         Vsjis_coding_system
VTT for std::basic_ofstream<wchar_t, std::char_traits<wchar_t> >                
                         Vsyntax_code_object
VTT for std::basic_ostream<wchar_t, std::char_traits<wchar_t> >                 
                         Vtemp_file_name_pattern
VTT for std::basic_ostringstream<char, std::char_traits<char>, 
std::allocator<char> >                    Vwindow_list
VTT for std::basic_ostringstream<wchar_t, std::char_traits<wchar_t>, 
std::allocator<wchar_t> >           Vwindow_system
VTT for std::basic_stringstream<char, std::char_traits<char>, 
std::allocator<char> >                     Vwith_echo_area_save_vector
VTT for std::basic_stringstream<wchar_t, std::char_traits<wchar_t>, 
std::allocator<wchar_t> >            Vwrite_region_annotation_buffers
VTT for std::iostream                                                           
                         value
VTT for std::istream                                                            
                         vtimes_one.part
(gdb) p Vprocess_alist 
$1 = XIL(0x555556ae7f83)
(gdb) 










reply via email to

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