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

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

[debbugs-tracker] bug#34394: closed (27.0.50; Emacs segfaults with SLY,


From: GNU bug Tracking System
Subject: [debbugs-tracker] bug#34394: closed (27.0.50; Emacs segfaults with SLY, company and C-g)
Date: Wed, 13 Feb 2019 16:27:01 +0000

Your message dated Wed, 13 Feb 2019 18:26:09 +0200
with message-id <address@hidden>
and subject line Re: bug#34394: 27.0.50; Emacs segfaults with SLY, company and 
C-g
has caused the debbugs.gnu.org bug report #34394,
regarding 27.0.50; Emacs segfaults with SLY, company and C-g
to be marked as done.

(If you believe you have received this mail in error, please contact
address@hidden)


-- 
34394: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=34394
GNU Bug Tracking System
Contact address@hidden with problems
--- Begin Message --- Subject: 27.0.50; Emacs segfaults with SLY, company and C-g Date: Sat, 09 Feb 2019 00:55:41 +0000 User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)
Hi,

This has been happening for a while, but I finally had some time to
track it down.  The problem renders Emacs completely unusable.

Before the recipe and some debugging info, a few notes:

1. The problem happens exlusively with company-mode. It's not easy to
   trigger but I have narrowed a technique that takes me a few minutes a
   most.

2. When using optimized builds, it's not really a SIGSEGV but a strange
   freeze in the display.
   
   The following is printed to stderr, if Emacs was started from the
   terminal:
   
      *** longjmp causes uninitialized stack frame ***: ./src/emacs terminated
      Fatal error 6: Aborted
      
   Very bizarrely, I can still open another frame to the Emacs
   (i.e. from a terminal) if i have the server running, but the buffer
   contents won't be displayed.  Back in the broken GUI I can even use
   the minibuffer to save the buffer to a file, request completions, and
   jump out to another window and apparently resume normal usage.

   But eventually there is always a broken window/display/buffer.

   Evidently, I can't understand what's going on.  But if you know some
   elisp diagnostic command, I can probably still type it in and read
   its output.
      
3. In contrast, when using a non-optimized build I always see SIGSEGV
   and the process dies completely, under gdb or not.
   
4. Also bizarely, when using non-optimized build, configured with:

      ./configure --enable-checking='yes,glyphs' \
      --enable-check-lisp-object-type CFLAGS='-O0 -g3 -gdwarf-4'

   I get _less_ information in gdb than when debugging an
   optimized build:
   
      (gdb) bt full
      #0  0x0000000000000000 in ?? ()
      No symbol table info available.
      #1  0x0000000000000000 in ?? ()
      No symbol table info available.
      (gdb) xbacktrace
      (gdb)

5. Debugging an optimized build gave me much more information (search
   for "yes-optimized-gdb" from here).

6. The use of SLY, a Common Lisp IDE, is not necessary.  I've seen the
   same bug with Eglot and company.  What Eglot has in common with SLY
   is that they both set up a completion-at-point-function that requests
   completions from a subprocess.  The specific manner in which
   completions are requested is interruptable by user input, i.e. using
   either sit-for or while-no-input.  I've witnessed the problem using
   both approaches, though lately I've settled for sit-for in both
   systems.
   
   In Emacs core, the elisp function jsonrpc-request (used by Eglot) is
   where the interruptible sit-for approach in used.

   Nevertheless this recipe uses SLY, since I've been using it more
   often these days.
   
7. I've can get a little more information with a non-optimized build if
   I start without Emacs -Q and load my normal config file.  It's not
   much more info than above, tho, and I don't understand what the
   difference is.  But you can have a look if you search for
   "non-optimized-gdb" from here.
   
Thanks,
João
   
## Now for the reproduction recipe:

The easiest way to get SLY is to clone it from github

   git clone address@hidden:joaotavora/sly.git /path/to/sly

To get company:

   git clone address@hidden:company-mode/company-mode.git
   /path/to/company
   
You also need a Common Lisp executable in your path.  For Debian this
will probably do

   sudo apt-get install sbcl

Now start Emacs

   ~/Source/Emacs/emacs/src/emacs -Q                             \
   -L /path/to/sly -l sly-autoloads                              \
   -L /path/to/company-mode -l /path/to/company-mode/company.el  \
   -f global-company-mode                                        \
   -f sly  # start sly
   
After the SLY CL prompt is ready, type "pos". A company widget should
appear.

You should now move quickly <up> and <down> as if selecting a completion
and then quickly press C-g as if wanting to give up on those
completions.  If you do this often enough you will trigger the crash.

## Running this under GDB, (yes-optimized-gdb)

The optimized build was configured with

   --enable-checking=yes,glyphs --enable-check-lisp-object-type 'CFLAGS=-Og 
-gdwarf-4'

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
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 17193]
[Detaching after vfork from child process 17201]
[Detaching after vfork from child process 17202]
*** longjmp causes uninitialized stack frame ***: 
/home/capitaomorte/Source/Emacs/emacs-master/src/emacs terminated

Program received signal SIGABRT, Aborted.
__GI_raise (address@hidden) 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 (address@hidden) at ../sysdeps/unix/sysv/linux/raise.c:50
        set = {
          __val = {0, 0, 93825000843456, 140737328736549, 11310, 
93825000838608, 93825000883760, 1, 140737488341936, 
            140737305084542, 93825008640256, 16777216000000000000, 
140737488342240, 93825000373056, 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, 8260008066545429248, 
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>, 
address@hidden "*** %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 (address@hidden, 
    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>, 
address@hidden) at ../setjmp/longjmp.c:39
No locals.
#7  0x00005555556b22d4 in quit_throw_to_read_char (address@hidden) at 
keyboard.c:10486
No locals.
#8  0x00005555556ba3cd in set_waiting_for_input (address@hidden) at 
keyboard.c:10253
No locals.
--Type <RET> for more, q to quit, c to continue without paging--
#9  0x000055555579007c in wait_reading_process_output (address@hidden, 
address@hidden, read_kbd=-1, 
    address@hidden, wait_for_cell=..., address@hidden, 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>
        xerrno = 11
        proc = XIL(0x555556473955)
        timeout = {
          tv_sec = 29, 
          tv_nsec = 861423452
        }
        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=..., address@hidden(30), 
address@hidden, 
    address@hidden) at lisp.h:1056
        sec = 30
        nsec = 0
        do_display = true
#11 0x00005555556b6209 in read_char (commandflag=1, map=..., 
address@hidden(0x555556bba943), prev_event=XIL(0), 
    address@hidden, address@hidden) 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, 7951441480105110497, 93825009979408, 93825001081184, 
140737488344720, 0, 4254887586582539233, 
              7951440073964956641}, 
            __mask_was_saved = 0, 
            __saved_mask = {
              __val = {93825009136931, 0, 93824993581685, 3, 0, 4294967295, 3, 
93825001229536, 93824993726913, 0, 0, 0, 7655440, 
                0, 93824993581685, 8194}
            }
          }}
        save_jump = {{
--Type <RET> for more, q to quit, c to continue without paging--
            __jmpbuf = {0, 0, 0, 0, 0, 0, 0, 0}, 
            __mask_was_saved = 0, 
            __saved_mask = {
              __val = {0 <repeats 16 times>}
            }
          }}
        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 (address@hidden, 
prompt=XIL(0x555555d68c90), 
    address@hidden, address@hidden, 
    address@hidden, address@hidden) at keyboard.c:9082
        interrupted_kboard = 0x555555d68c90
        interrupted_frame = 0x555555dc4960
        key = XIL(0x555556641010)
        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 = 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
--Type <RET> for more, q to quit, c to continue without paging--
        delayed_switch_frame = <optimized out>
        original_uppercase = <optimized out>
        original_uppercase_position = -1
        dummyflag = false
        starting_buffer = 0x555556641010
        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(0x555556ad8393), XIL(0x7fffffffd750), XIL(0x2aaa9b297918), 
XIL(0), XIL(0), XIL(0), make_number(23456248568811), 
          XIL(0x2aaa9b297918), XIL(0x555556ad8393), XIL(0x7ffff0ad5f74), 
XIL(0), XIL(0x7fffffffd750), XIL(0x5555556acf45), XIL(0), 
          XIL(0x555556ad8393), XIL(0), XIL(0x5555556ad2bb), XIL(0), XIL(0), 
XIL(0x3), XIL(0x55555574182b), XIL(0x7ffff104060b), 
          XIL(0x555555d68a50)}
        i = <optimized out>
        prev_modiff = 36
        prev_buffer = 0x555556641010
#14 0x0000555555741a96 in internal_condition_case (address@hidden 
<command_loop_1>, handlers=..., 
    address@hidden(0x55b0), address@hidden <cmd_error>) at eval.c:1376
        val = XIL(0)
        c = 0x555555d68a50
#15 0x00005555556a9494 in command_loop_2 (ignore=..., address@hidden(0)) at 
lisp.h:1056
        val = <optimized out>
#16 0x00005555557419da in internal_catch (tag=..., address@hidden 
<command_loop_2>, arg=..., address@hidden(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
        original_pwd = 0x0
        dump_mode = <optimized out>
        skip_args = 0
        temacs = 0x0
        rlim = {
          rlim_cur = 10022912, 
          rlim_max = 18446744073709551615
        }
        
## non-optimized-gdb

gdb ./emacs            
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 0x1ad3b8: file emacs.c, line 371.
Temporary breakpoint 2 at 0x1d9e93: file sysdep.c, line 1101.
(gdb) r
Starting program: /home/capitaomorte/Source/Emacs/emacs/src/emacs 
[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 17713]
[Detaching after vfork from child process 17718]
[Detaching after vfork from child process 17719]
[Detaching after vfork from child process 17721]
[Detaching after vfork from child process 17725]
[Detaching after vfork from child process 17726]
[Detaching after vfork from child process 17729]
[Detaching after vfork from child process 17754]
[Detaching after vfork from child process 17755]
[Detaching after vfork from child process 17769]

Program received signal SIGSEGV, Segmentation fault.
0x0000000000000000 in ?? ()
(gdb) bt full
#0  0x0000000000000000 in ?? ()
No symbol table info available.
#1  0x00005555557d02ae in do_one_unbind (this_binding=0x7fffffff85a0, 
unwinding=true, bindflag=SET_INTERNAL_UNBIND) at eval.c:3504
No locals.
#2  0x00005555557d0763 in unbind_to (count=8589905392, value=XIL(0)) at 
eval.c:3631
        this_binding = {
          kind = SPECPDL_UNWIND, 
          unwind = {
            kind = SPECPDL_UNWIND, 
            func = 0x0, 
            arg = XIL(0), 
            eval_depth = 0
          }, 
          unwind_array = {
            kind = SPECPDL_UNWIND, 
            nelts = 0, 
            array = 0x0
          }, 
          unwind_ptr = {
            kind = SPECPDL_UNWIND, 
            func = 0x0, 
            arg = 0x0
          }, 
          unwind_int = {
            kind = SPECPDL_UNWIND, 
            func = 0x0, 
            arg = 0
          }, 
          unwind_excursion = {
            kind = SPECPDL_UNWIND, 
            marker = XIL(0), 
            window = XIL(0)
          }, 
          unwind_void = {
            kind = SPECPDL_UNWIND, 
            func = 0x0
          }, 
          let = {
            kind = SPECPDL_UNWIND, 
            symbol = XIL(0), 
            old_value = XIL(0), 
            where = XIL(0), 
            saved_value = XIL(0)
          }, 
          bt = {
            kind = SPECPDL_UNWIND, 
            debug_on_exit = false, 
            function = XIL(0), 
            args = 0x0, 
            nargs = 0
          }
        }
--Type <RET> for more, q to quit, c to continue without paging--c
        quitf = XIL(0xc750)
#3  0x000055555570a27b in read_char (commandflag=21845, 
map=XIL(0x555556e3cc00), prev_event=XIL(0x20), used_mouse_menu=0x7ffff0abeabd, 
end_time=0x3d5579264f) at keyboard.c:2551
        c = XIL(0x7fffffff8868)
        jmpcount = 8589905392
        local_getcjmp = {{
            __jmpbuf = {140737488324512, 1433386485, 171798691841, 
140737236181973, 140737488324608, 140737488325824, 93825017529728, 
140737488324604}, 
            __mask_was_saved = 0, 
            __saved_mask = {
              __val = {140737326527355, 140737488324656, 140737488325872, 
93825017529728, 140737488324652, 0, 140737326527355, 93825003666096, 
140737488325804, 140737488325868, 4294967296, 18446744069414584321, 1432946432, 
140737488324752, 108819530576, 140737236339464}
            }
          }}
        save_jump = {{
            __jmpbuf = {140737488324320, 93824993965235, 140737488324336, 0, 0, 
107374182400, 140737236339464, 140737488324360}, 
            __mask_was_saved = 1433384518, 
            __saved_mask = {
              __val = {111669118032, 140737488324448, 140737488325664, 
93825017529728, 140737488324444, 0, 140737326527355, 140737488324496, 
140737488325712, 93825017529728, 140737488324492, 0, 140737326527355, 
93825003666096, 140737488325644, 140737488325708}
            }
          }}
        tem = XIL(0x555556e3cbe5)
        save = XIL(0x7fffffff86d0)
        previous_echo_area_message = XIL(0x7ffff0b3c5ad)
        also_record = XIL(0)
        reread = false
        recorded = false
        polling_stopped_here = false
        orig_kboard = 0x7ffff65ab37b <XftGlyphExtents+123>
#4  0x00007fffffffa3a0 in ?? ()
No symbol table info available.
#5  0x00007fffffff8dec in ?? ()
No symbol table info available.
#6  0x00000001ffffb2b0 in ?? ()
No symbol table info available.
#7  0x0000000000000000 in ?? ()
No symbol table info available.
(gdb) xbacktrace
(gdb) 



--- End Message ---
--- Begin Message --- Subject: Re: bug#34394: 27.0.50; Emacs segfaults with SLY, company and C-g Date: Wed, 13 Feb 2019 18:26:09 +0200
> From: João Távora <address@hidden>
> Date: Tue, 12 Feb 2019 20:42:04 +0000
> Cc: address@hidden
> 
> I applied to the emacs-26 branch where it seems to have
> fixed it, meaning I couldn't reproduce it anymore after
> some attempts.
> 
> I would find it prudent to merge into master: since I run
> a master build these days at work, where I use SLY very
> much, it would equal much better testing.
> 
> So I'd push to both branches  (and maybe mark the 26 version
> "don't merge").

Done, thanks for testing and for the reproduction recipe.

> PS: if you have the time, a short explanation of the
> problem would be welcome/pedagogical

Well, remember this question I asked:

> Is it possible that somehow sit_for is called recursively in this
> scenario?  If you put a breakpoint in sit_for, does it break when bt
> shows another instance of sit_for up the call-stack?
> 
> We need to establish who clobbers the jump_buf being used to implement
> quitting by C-g.

You've established that sit_for is not called recursively, but it
turns out read_char is.  It took me a while to find this out, but the
evidence is very clear, see the backtrace at the end of this message.

What happens is this:

  . Emacs becomes idle, calls read_char, and waits for input
  . while waiting, it calls timers
  . one of the timers calls a Company function, which calls your
    completion function
  . your completion function does this:
     . sets up a catch tag
     . defines a function that will throw to that tag
     . sends a string to a subprocess whose process-filter will call
       the above function
     . waits in sit-for, which calls read-event, which calls read_char
  . when the process-filter is invoked, it throws, which makes us end
    up in a call-stack frame _above_ the one of the inner-most call to
    read_char, but without restoring the value of the global
    jmp_buf, which still keeps the value from the now-defunct stack
    frame
  . now you type C-g, and we call longjmp using a bogus jmp_buf

The problematic code was in several places, and looked like this:

          save_getcjmp (save_jump);
          restore_getcjmp (local_getcjmp);
          do_something ();
          restore_getcjmp (save_jump);

save_getcjmp saves the global value of jmp_buf, and restore_getcjmp
restores it.  But the above only works if do_something is guaranteed
to never exit non-locally.  And that guarantee is broken when
do_something calls Lisp, if that Lisp throws.

What my changes do is use an unwind-protect record that ensures the
value of jmp_buf is restored no matter how we exit do_something.

Here's the backtrace I promised that clearly shows the problem.
Noteworthy parts of it:

  . the nested call to read_char
  . the call to Fcatch above the innermost read_char
  . the timer set up by company-mode which started all this

  Breakpoint 3, restore_getcjmp (temp=0x7ffc413393b0) at keyboard.c:3330
  3330    memcpy (getcjmp, temp, sizeof getcjmp);
  #0  restore_getcjmp (temp=0x7ffc413393b0) at keyboard.c:3330
  #1  0x000000000058a033 in read_event_from_main_queue 
(end_time=0x7ffc413395d0, 
      local_getcjmp=0x7ffc413393b0, used_mouse_menu=0x0) at keyboard.c:2148
  #2  0x000000000058a393 in read_decoded_event_from_main_queue (
      end_time=0x7ffc413395d0, local_getcjmp=0x7ffc413393b0, prev_event=XIL(0), 
      used_mouse_menu=0x0) at keyboard.c:2214
  #3  0x000000000058c1cc in read_char (commandflag=0, map=XIL(0), 
      prev_event=XIL(0), used_mouse_menu=0x0, end_time=0x7ffc413395d0)
      at keyboard.c:2802
  #4  0x0000000000676157 in read_filtered_event (no_switch_frame=false, 
      ascii_required=false, error_nonascii=false, input_method=true, 
      seconds=make_number(30)) at lread.c:672
  #5  0x0000000000676471 in Fread_event (prompt=XIL(0), 
      inherit_input_method=XIL(0xbdf0), seconds=make_number(30)) at lread.c:788
  #6  0x0000000000643c97 in funcall_subr (subr=0xd7b760 <Sread_event>, 
      numargs=3, args=0x7ffc41339778) at eval.c:2856
  #7  0x00000000006437ab in Ffuncall (nargs=4, args=0x7ffc41339770)
      at eval.c:2776
  #8  0x000000000069a08e in exec_byte_code (bytestr=XIL(0x9efffc), 
      vector=XIL(0x9f001d), maxdepth=make_number(7), 
      args_template=make_number(769), nargs=1, args=0x7ffc41339bc8)
      at bytecode.c:630
  #9  0x0000000000644389 in funcall_lambda (fun=XIL(0x9effcd), nargs=1, 
      arg_vector=0x7ffc41339bc0) at eval.c:2977
  #10 0x0000000000644018 in apply_lambda (fun=XIL(0x9effcd), 
      args=XIL(0x1690d93), count=51) at eval.c:2913
  #11 0x00000000006421a4 in eval_sub (form=XIL(0x1690da3)) at eval.c:2286
  #12 0x000000000063ea45 in Fwhile (args=XIL(0x1690d83)) at eval.c:989
  #13 0x0000000000641b0e in eval_sub (form=XIL(0x1690e03)) at eval.c:2193
  #14 0x000000000063c90a in Fprogn (body=XIL(0x16902b3)) at eval.c:459
  #15 0x000000000063e3fa in FletX (args=XIL(0x13c8e03)) at eval.c:904
  #16 0x0000000000641b0e in eval_sub (form=XIL(0x13c8df3)) at eval.c:2193
  #17 0x000000000063c90a in Fprogn (body=XIL(0)) at eval.c:459
  #18 0x000000000063edb0 in internal_catch (tag=XIL(0x1027a0), 
      func=0x63c864 <Fprogn>, arg=XIL(0x13d0373)) at eval.c:1101
  #19 0x000000000063ed64 in Fcatch (args=XIL(0x13c8dd3)) at eval.c:1078
  #20 0x0000000000641b0e in eval_sub (form=XIL(0x13c8de3)) at eval.c:2193
  #21 0x000000000063e6c2 in Flet (args=XIL(0x13cf173)) at eval.c:943
  #22 0x0000000000641b0e in eval_sub (form=XIL(0x13cf153)) at eval.c:2193
  #23 0x000000000063c90a in Fprogn (body=XIL(0)) at eval.c:459
  #24 0x000000000064476d in funcall_lambda (fun=XIL(0x13ced13), nargs=0, 
      arg_vector=0x7ffc4133a530) at eval.c:3052
  #25 0x0000000000644018 in apply_lambda (fun=XIL(0x13ced03), args=XIL(0), 
      count=43) at eval.c:2913
  #26 0x00000000006423a2 in eval_sub (form=XIL(0x1688d13)) at eval.c:2316
  #27 0x000000000063e6c2 in Flet (args=XIL(0x168f133)) at eval.c:943
  #28 0x0000000000641b0e in eval_sub (form=XIL(0x168f063)) at eval.c:2193
  #29 0x000000000063c90a in Fprogn (body=XIL(0)) at eval.c:459
  #30 0x000000000064476d in funcall_lambda (fun=XIL(0x1062653), nargs=1, 
      arg_vector=0x7ffc4133aa18) at eval.c:3052
  #31 0x00000000006438e2 in Ffuncall (nargs=2, args=0x7ffc4133aa10)
      at eval.c:2790
  #32 0x0000000000641de4 in eval_sub (form=XIL(0x10fee73)) at eval.c:2212
  #33 0x000000000063c90a in Fprogn (body=XIL(0)) at eval.c:459
  #34 0x0000000000641b0e in eval_sub (form=XIL(0x1104163)) at eval.c:2193
  #35 0x000000000063c6a7 in Fif (args=XIL(0x1104183)) at eval.c:414
  #36 0x0000000000641b0e in eval_sub (form=XIL(0x1104193)) at eval.c:2193
  #37 0x000000000063c90a in Fprogn (body=XIL(0)) at eval.c:459
  #38 0x000000000063e955 in Flet (args=XIL(0x1104203)) at eval.c:973
  #39 0x0000000000641b0e in eval_sub (form=XIL(0x1104213)) at eval.c:2193
  #40 0x000000000063c90a in Fprogn (body=XIL(0)) at eval.c:459
  #41 0x000000000063c803 in Fcond (args=XIL(0x1104263)) at eval.c:439
  #42 0x0000000000641b0e in eval_sub (form=XIL(0x110bcd3)) at eval.c:2193
  #43 0x000000000063c90a in Fprogn (body=XIL(0)) at eval.c:459
  #44 0x000000000064476d in funcall_lambda (fun=XIL(0x110bd83), nargs=2, 
      arg_vector=0x7ffc4133b2b8) at eval.c:3052
  #45 0x00000000006438e2 in Ffuncall (nargs=3, args=0x7ffc4133b2b0)
      at eval.c:2790
  #46 0x0000000000642a2b in Fapply (nargs=2, args=0x7ffc4133b380) at eval.c:2396
  #47 0x0000000000641de4 in eval_sub (form=XIL(0x169fd93)) at eval.c:2212
  #48 0x000000000063c6a7 in Fif (args=XIL(0x169fda3)) at eval.c:414
  #49 0x0000000000641b0e in eval_sub (form=XIL(0x169feb3)) at eval.c:2193
  #50 0x000000000063f7e7 in internal_lisp_condition_case (var=XIL(0x91a140), 
      bodyform=XIL(0x169feb3), handlers=XIL(0x169f413)) at eval.c:1307
  #51 0x000000000063f28b in Fcondition_case (args=XIL(0x169f333)) at eval.c:1231
  #52 0x0000000000641b0e in eval_sub (form=XIL(0x169f323)) at eval.c:2193
  #53 0x000000000063c90a in Fprogn (body=XIL(0)) at eval.c:459
  #54 0x000000000064476d in funcall_lambda (fun=XIL(0x16a6fa3), nargs=2, 
      arg_vector=0x7ffc4133b978) at eval.c:3052
  #55 0x00000000006438e2 in Ffuncall (nargs=3, args=0x7ffc4133b970)
      at eval.c:2790
  #56 0x0000000000642a2b in Fapply (nargs=2, args=0x7ffc4133ba40) at eval.c:2396
  #57 0x0000000000641de4 in eval_sub (form=XIL(0x16a18b3)) at eval.c:2212
  #58 0x000000000063e6c2 in Flet (args=XIL(0x16a00b3)) at eval.c:943
  #59 0x0000000000641b0e in eval_sub (form=XIL(0x16a00a3)) at eval.c:2193
  #60 0x000000000063c90a in Fprogn (body=XIL(0)) at eval.c:459
  #61 0x000000000064476d in funcall_lambda (fun=XIL(0x16a0013), nargs=3, 
      arg_vector=0x7ffc4133be20) at eval.c:3052
  #62 0x0000000000644018 in apply_lambda (fun=XIL(0x16a0003), 
      args=XIL(0x16a1c63), count=23) at eval.c:2913
  #63 0x00000000006423a2 in eval_sub (form=XIL(0x16a1d43)) at eval.c:2316
  #64 0x000000000063c90a in Fprogn (body=XIL(0)) at eval.c:459
  #65 0x000000000064476d in funcall_lambda (fun=XIL(0x16a1973), nargs=2, 
      arg_vector=0x7ffc4133c0c0) at eval.c:3052
  #66 0x0000000000644018 in apply_lambda (fun=XIL(0x16a1963), 
      args=XIL(0x104cc43), count=21) at eval.c:2913
  #67 0x00000000006423a2 in eval_sub (form=XIL(0x104cc13)) at eval.c:2316
  #68 0x0000000000641ee6 in eval_sub (form=XIL(0x104d3d3)) at eval.c:2229
  #69 0x000000000063cbda in Fsetq (args=XIL(0x104d3c3)) at eval.c:517
  #70 0x0000000000641b0e in eval_sub (form=XIL(0x104d3b3)) at eval.c:2193
  #71 0x000000000063c90a in Fprogn (body=XIL(0)) at eval.c:459
  #72 0x000000000063c6f3 in Fif (args=XIL(0x104ce63)) at eval.c:415
  #73 0x0000000000641b0e in eval_sub (form=XIL(0x104ce73)) at eval.c:2193
  #74 0x000000000063c90a in Fprogn (body=XIL(0x104ccc3)) at eval.c:459
  #75 0x000000000063e955 in Flet (args=XIL(0x104cf73)) at eval.c:973
  #76 0x0000000000641b0e in eval_sub (form=XIL(0x104cf83)) at eval.c:2193
  #77 0x000000000063c90a in Fprogn (body=XIL(0)) at eval.c:459
  #78 0x000000000064476d in funcall_lambda (fun=XIL(0x104c833), nargs=0, 
      arg_vector=0x7ffc4133ca08) at eval.c:3052
  #79 0x00000000006438e2 in Ffuncall (nargs=1, args=0x7ffc4133ca00)
      at eval.c:2790
  #80 0x0000000000641de4 in eval_sub (form=XIL(0x12fa1f3)) at eval.c:2212
  #81 0x000000000063cbda in Fsetq (args=XIL(0x12fa203)) at eval.c:517
  #82 0x0000000000641b0e in eval_sub (form=XIL(0x12fa213)) at eval.c:2193
  #83 0x000000000063c90a in Fprogn (body=XIL(0)) at eval.c:459
  #84 0x0000000000641b0e in eval_sub (form=XIL(0x13025d3)) at eval.c:2193
  #85 0x000000000063c6a7 in Fif (args=XIL(0x130cde3)) at eval.c:414
  #86 0x0000000000641b0e in eval_sub (form=XIL(0x130cdc3)) at eval.c:2193
  #87 0x000000000063c90a in Fprogn (body=XIL(0x12f8573)) at eval.c:459
  #88 0x000000000064476d in funcall_lambda (fun=XIL(0x1309753), nargs=1, 
      arg_vector=0x7ffc4133d240) at eval.c:3052
  #89 0x00000000006438e2 in Ffuncall (nargs=2, args=0x7ffc4133d238)
      at eval.c:2790
  #90 0x0000000000642544 in Fapply (nargs=2, args=0x7ffc4133d238) at eval.c:2353
  #91 0x0000000000643b49 in funcall_subr (subr=0xd78e40 <Sapply>, numargs=2, 
      args=0x7ffc4133d238) at eval.c:2831
  #92 0x00000000006437ab in Ffuncall (nargs=3, args=0x7ffc4133d230)
      at eval.c:2776
  #93 0x000000000069a08e in exec_byte_code (bytestr=XIL(0xb04ddc), 
      vector=XIL(0xb04dfd), maxdepth=make_number(10), 
      args_template=make_number(257), nargs=1, args=0x7ffc4133d770)
      at bytecode.c:630
  #94 0x0000000000644389 in funcall_lambda (fun=XIL(0xb04dad), nargs=1, 
      arg_vector=0x7ffc4133d768) at eval.c:2977
  #95 0x00000000006437ef in Ffuncall (nargs=2, args=0x7ffc4133d760)
      at eval.c:2778
  #96 0x00000000006430e4 in call1 (fn=XIL(0xc180), arg1=XIL(0x1662e15))
      at eval.c:2627
  #97 0x0000000000590821 in timer_check_2 (timers=XIL(0), 
      idle_timers=XIL(0x114bd83)) at keyboard.c:4466
  #98 0x000000000059095b in timer_check () at keyboard.c:4528
  #99 0x000000000058df1a in readable_events (flags=1) at keyboard.c:3343
  #100 0x000000000059586d in get_input_pending (flags=1) at keyboard.c:6828
  #101 0x000000000058ff0a in swallow_events (do_display=true) at keyboard.c:4268
  #102 0x00000000004232fd in sit_for (timeout=make_number(30), reading=true, 
      display_option=1) at dispnew.c:5764
  #103 0x000000000058bc87 in read_char (commandflag=1, map=XIL(0x114c013), 
      prev_event=XIL(0), used_mouse_menu=0x7ffc4133dcfd, end_time=0x0)
      at keyboard.c:2717
  #104 0x000000000059b6d9 in read_key_sequence (keybuf=0x7ffc4133dee0, 
      bufsize=30, prompt=XIL(0), dont_downcase_last=false, 
      can_return_switch_frame=true, fix_current_buffer=true, 
      prevent_redisplay=false) at keyboard.c:9151
  #105 0x0000000000587e16 in command_loop_1 () at keyboard.c:1368
  #106 0x000000000063f883 in internal_condition_case (
      bfun=0x5879c0 <command_loop_1>, handlers=XIL(0x4dd0), 
      hfun=0x587008 <cmd_error>) at eval.c:1336
  #107 0x00000000005875ee in command_loop_2 (ignore=XIL(0)) at keyboard.c:1110
  #108 0x000000000063edb0 in internal_catch (tag=XIL(0xc450), 
      func=0x5875c5 <command_loop_2>, arg=XIL(0)) at eval.c:1101
  #109 0x000000000058758e in command_loop () at keyboard.c:1089
  #110 0x0000000000586afd in recursive_edit_1 () at keyboard.c:695
  #111 0x0000000000586ced in Frecursive_edit () at keyboard.c:766
  #112 0x00000000005848fe in main (argc=9, argv=0x7ffc4133e338) at emacs.c:1717

  Lisp Backtrace:
  "read-event" (0x41339778)
  "sit-for" (0x41339bc0)
  "while" (0x41339e08)
  "let*" (0x41339fc8)
  "catch" (0x4133a198)
  "let" (0x4133a388)
  "foo-from-process" (0x4133a530)
  "let" (0x4133a7f8)
  0x1062620 Lisp type 3
  "funcall" (0x4133aa10)
  "progn" (0x4133aba8)
  "if" (0x4133acf8)
  "let" (0x4133af18)
  "cond" (0x4133b0a8)
  "company-capf" (0x4133b2b8)
  "apply" (0x4133b380)
  "if" (0x4133b518)
  "condition-case" (0x4133b768)
  "company-call-backend-raw" (0x4133b978)
  "apply" (0x4133ba40)
  "let" (0x4133bc78)
  "company--force-sync" (0x4133be20)
  "company-call-backend" (0x4133c0c0)
  "cons" (0x4133c2c8)
  "setq" (0x4133c448)
  "if" (0x4133c5c8)
  "let" (0x4133c7e8)
  "company-fetch-metadata" (0x4133ca08)
  "funcall" (0x4133ca00)
  "setq" (0x4133cbc8)
  "progn" (0x4133cd18)
  "if" (0x4133ce68)
  "company-echo-show" (0x4133d240)
  "apply" (0x4133d238)
  "timer-event-handler" (0x4133d768)


--- End Message ---

reply via email to

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