[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)
- bug#34394: 27.0.50; Emacs segfaults with SLY, company and C-g, João Távora, 2019/02/08
- bug#34394: 27.0.50; Emacs segfaults with SLY, company and C-g, Eli Zaretskii, 2019/02/09
- bug#34394: 27.0.50; Emacs segfaults with SLY, company and C-g, João Távora, 2019/02/09
- bug#34394: 27.0.50; Emacs segfaults with SLY, company and C-g, Eli Zaretskii, 2019/02/09
- bug#34394: 27.0.50; Emacs segfaults with SLY, company and C-g,
João Távora <=
- bug#34394: 27.0.50; Emacs segfaults with SLY, company and C-g, Eli Zaretskii, 2019/02/09
- bug#34394: 27.0.50; Emacs segfaults with SLY, company and C-g, Eli Zaretskii, 2019/02/09
- bug#34394: 27.0.50; Emacs segfaults with SLY, company and C-g, João Távora, 2019/02/09
- bug#34394: 27.0.50; Emacs segfaults with SLY, company and C-g, Eli Zaretskii, 2019/02/09
- bug#34394: 27.0.50; Emacs segfaults with SLY, company and C-g, João Távora, 2019/02/09
- bug#34394: 27.0.50; Emacs segfaults with SLY, company and C-g, Eli Zaretskii, 2019/02/09
- bug#34394: 27.0.50; Emacs segfaults with SLY, company and C-g, João Távora, 2019/02/09
- bug#34394: 27.0.50; Emacs segfaults with SLY, company and C-g, João Távora, 2019/02/09
- bug#34394: 27.0.50; Emacs segfaults with SLY, company and C-g, João Távora, 2019/02/09
- bug#34394: 27.0.50; Emacs segfaults with SLY, company and C-g, Eli Zaretskii, 2019/02/09