This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

emacs-w32/X11 24.3-7 aborts frequently


Thanks for the assistance Ken, I appreciate it. I was able to uninstall Symantec Endpoint Protection, so the only piece of software that I may have from the BLODA list is now NVIDIA Geforce. I took your advice about experimentation, and I discovered some more information.

It turns out that Emacs will abort regardless of whether it's X11 or w32, or even whether TRAMP is in use (I changed the subject title to reflect this). However, while emacs-w32 does display an abort dialog box when it aborts, emacs-X11 does not. The minimal sequence of steps to generate an abort in emacs-w32 is now the following:

1) Run "emacs-w32 -Q &" in bash.
2) Use "M-x toggle-debug-on-error" to enable the Emacs Lisp Debugger.
3) Minimize the Emacs window and wait.

If I do this for many Emacs sessions at a time (e.g. seven), then at least one usually aborts within a few hours.

It's also not a strict requirement that the session be minimized or idle. I had one session abort while typing in my password for a remote directory access using TRAMP. This happened about three minutes after starting that session.

I've collected a number of Emacs session logs, detailing Lisp errors and abort backtraces from GDB, but I'm not sure how useful it would be to you. To summarize, the Lisp errors were of the following types:

Debugger entered--Lisp error: (wrong-type-argument characterp [nil 21130 37499 445325 0.5 blink-cursor-timer-function nil nil 100000])

Debugger entered--Lisp error: (wrong-type-argument vectorp [timer 1 2 3 8])
  timer--time([t 21130 40941 448254 0.5 blink-cursor-timer-function nil nil 200000])
  timer-inc-time([t 21130 40941 448254 0.5 blink-cursor-timer-function nil nil 200000] 0.5 0)
  timer-event-handler([t 21130 40941 448254 0.5 blink-cursor-timer-function nil nil 200000])

Debugger entered--Lisp error: (wrong-type-argument vectorp [timer timer-list timer-idle-list cell2 cell1 delq])
  cancel-timer-internal([t 21133 47244 147431 0.5 blink-cursor-timer-function nil nil 300000])
  timer-event-handler([t 21133 47244 147431 0.5 blink-cursor-timer-function nil nil 300000])

Debugger entered--Lisp error: (wrong-type-argument vectorp [type high low micro pico 0 1 2 3 encode-time-value])
  encode-time-value(0 0 500000 0 3)
  time-add((0 0 500000 0) (0 0 0 0))
  timer-relative-time((21131 38349 656688 100000) 0.5 0 nil)
  timer-inc-time([t 21131 38349 656688 0.5 blink-cursor-timer-function nil nil 100000] 0.5 0)
  timer-event-handler([t 21131 38349 656688 0.5 blink-cursor-timer-function nil nil 100000])

Debugger entered--Lisp error: (wrong-type-argument vectorp [t1 time high low micro pico nil 3 0 2 1 1000000 65536 encode-time-value type x t2 time high2 low2 micro2 pico2 type2])
  time-add((0 0 500000 0) (0 0 0 0))
  timer-relative-time((21131 41603 304785 600000) 0.5 0 nil)
  timer-inc-time([t 21131 41603 304785 0.5 blink-cursor-timer-function nil nil 600000] 0.5 0)
  timer-event-handler([t 21131 41603 304785 0.5 blink-cursor-timer-function nil nil 600000])

Debugger entered--Lisp error: (wrong-type-argument arrayp nil)
  timer--time(nil)
  timer--time-less-p(nil [t 21132 30822 710309 0.5 blink-cursor-timer-function nil nil 500000])
  timer--activate([t 21132 30822 710309 0.5 blink-cursor-timer-function nil nil 500000] t ([t 21132 30822 710309 0.5 blink-cursor-timer-function nil nil 500000]) nil)
  timer-activate([t 21132 30822 710309 0.5 blink-cursor-timer-function nil nil 500000] t ([t 21132 30822 710309 0.5 blink-cursor-timer-function nil nil 500000]))
  timer-event-handler([t 21132 30822 710309 0.5 blink-cursor-timer-function nil nil 500000])

Debugger entered--Lisp error: (wrong-type-argument number-or-marker-p (0 500000 0))
  time-add((0 0 500000 0) (0 0 0 0))
  timer-relative-time((21133 49736 725049 0) 0.5 0 nil)
  timer-inc-time([t 21133 49736 725049 0.5 blink-cursor-timer-function nil nil 0] 0.5 0)
  timer-event-handler([t 21133 49736 725049 0.5 blink-cursor-timer-function nil nil 0])

Debugger entered--Lisp error: (setting-constant time)
  time-add((21131 41702 583779 900000) (0 0 500000 0))
  timer-relative-time((21131 41702 583779 900000) 0.5 0 nil)
  timer-inc-time([t 21131 41702 583779 0.5 blink-cursor-timer-function nil nil 900000] 0.5 0)
  timer-event-handler([t 21131 41702 583779 0.5 blink-cursor-timer-function nil nil 900000])

Debugger entered--Lisp error: (error "Bogus timer event")
  signal(error ("Bogus timer event"))
  error("Bogus timer event")
  timer-event-handler([t 21130 39246 55316 0.5 blink-cursor-timer-function nil nil 300000])

Debugger entered--Lisp error: (error "Lisp nesting exceeds `max-lisp-eval-depth'")
  seconds-to-time(0.5)
  timer-relative-time((21133 50618 225363 0) 0.5 0 nil)
  timer-inc-time([t 21133 50618 225363 0.5 blink-cursor-timer-function nil nil 0] 0.5 0)
  timer-event-handler([t 21133 50618 225363 0.5 blink-cursor-timer-function nil nil 0])

There were also a few general errors such as:

Memory exhausted--use C-x s then exit and restart Emacs

For aborts, I only have backtraces for emacs-w32, since emacs-X11 didn't allow me to attach GDB before aborting. Most of those backtraces look like this:

#0  0x000007fefd723ca3 in KERNELBASE!DebugBreak () from /cygdrive/c/Windows/system32/KERNELBASE.dll
#1  0x000000010056f32b in emacs_abort () at /usr/src/debug/emacs-24.3-7/src/w32fns.c:7714
#2  0x0000000100512415 in funcall_lambda (fun=4302317845, nargs=nargs@entry=1, arg_vector=arg_vector@entry=0x429360) at /usr/src/debug/emacs-24.3-7/src/eval.c:2953
#3  0x000000010051267b in Ffuncall (nargs=2, args=0x429358) at /usr/src/debug/emacs-24.3-7/src/eval.c:2839
#4  0x000000010054757d in exec_byte_code (bytestr=1099511627775, vector=4363088, maxdepth=7204224, args_template=4303920544, nargs=0, args=0x87ffff0000) at /usr/src/debug/emacs-24.3-7/src/bytecode.c:900
#5  0x0000000100512343 in funcall_lambda (fun=4302320805, nargs=nargs@entry=3, arg_vector=arg_vector@entry=0x429600) at /usr/src/debug/emacs-24.3-7/src/eval.c:3010
#6  0x000000010051267b in Ffuncall (nargs=4, args=0x4295f8) at /usr/src/debug/emacs-24.3-7/src/eval.c:2839
#7  0x000000010054757d in exec_byte_code (bytestr=1099511627775, vector=4363784, maxdepth=7204224, args_template=4303920544, nargs=4304522528, args=0x87ffff0000) at /usr/src/debug/emacs-24.3-7/src/bytecode.c:900
#8  0x0000000100512343 in funcall_lambda (fun=4302324197, nargs=nargs@entry=1, arg_vector=arg_vector@entry=0x429888) at /usr/src/debug/emacs-24.3-7/src/eval.c:3010
#9  0x000000010051267b in Ffuncall (nargs=nargs@entry=2, args=args@entry=0x429880) at /usr/src/debug/emacs-24.3-7/src/eval.c:2839
#10 0x00000001005129dd in call1 (fn=<optimized out>, arg1=arg1@entry=4308750221) at /usr/src/debug/emacs-24.3-7/src/eval.c:2572
#11 0x00000001004a6b34 in timer_check_2 (idle_timers=<optimized out>, timers=<optimized out>) at /usr/src/debug/emacs-24.3-7/src/keyboard.c:4387
#12 timer_check () at /usr/src/debug/emacs-24.3-7/src/keyboard.c:4454
#13 0x00000001004a6f6a in readable_events (flags=1) at /usr/src/debug/emacs-24.3-7/src/keyboard.c:3351
#14 0x00000001004a7e85 in get_input_pending (flags=flags@entry=1) at /usr/src/debug/emacs-24.3-7/src/keyboard.c:6680
#15 0x00000001004aa2ad in detect_input_pending_run_timers (do_display=do_display@entry=true) at /usr/src/debug/emacs-24.3-7/src/keyboard.c:10273
#16 0x0000000100551406 in wait_reading_process_output (time_limit=time_limit@entry=0, nsecs=nsecs@entry=0, read_kbd=read_kbd@entry=-1, do_display=do_display@entry=true, wait_for_cell=wait_for_cell@entry=4304630834, wait_proc=wait_proc@entry=0x0,
    just_wait_proc=just_wait_proc@entry=0) at /usr/src/debug/emacs-24.3-7/src/process.c:4743
#17 0x00000001004ab2ae in kbd_buffer_get_event (end_time=0x0, used_mouse_menu=0x42a2e7, kbp=<synthetic pointer>) at /usr/src/debug/emacs-24.3-7/src/keyboard.c:3803
#18 read_char (commandflag=1, nmaps=2, maps=0x42a1c0, prev_event=4304630834, used_mouse_menu=0x42a2e7, end_time=end_time@entry=0x0) at /usr/src/debug/emacs-24.3-7/src/keyboard.c:2769
#19 0x00000001004ad463 in read_key_sequence (keybuf=keybuf@entry=0x42a430, prompt=<optimized out>, 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,
    bufsize=30) at /usr/src/debug/emacs-24.3-7/src/keyboard.c:9231
#20 0x00000001004af75e in command_loop_1 () at /usr/src/debug/emacs-24.3-7/src/keyboard.c:1459
#21 0x0000000100510cde in internal_condition_case (bfun=bfun@entry=0x1004af540 <command_loop_1>, handlers=4304832354, hfun=hfun@entry=0x1004a58a0 <cmd_error>) at /usr/src/debug/emacs-24.3-7/src/eval.c:1289
#22 0x00000001004a09da in command_loop_2 (ignore=ignore@entry=4304630834) at /usr/src/debug/emacs-24.3-7/src/keyboard.c:1168
#23 0x0000000100510b9f in internal_catch (tag=<optimized out>, func=func@entry=0x1004a09b0 <command_loop_2>, arg=4304630834) at /usr/src/debug/emacs-24.3-7/src/eval.c:1060
#24 0x00000001004a5374 in command_loop () at /usr/src/debug/emacs-24.3-7/src/keyboard.c:1147
#25 recursive_edit_1 () at /usr/src/debug/emacs-24.3-7/src/keyboard.c:779
#26 0x00000001004a56a7 in Frecursive_edit () at /usr/src/debug/emacs-24.3-7/src/keyboard.c:843
#27 0x00000001005ab7d3 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/emacs-24.3-7/src/emacs.c:1532

The rest are a slight variation of this. There was one occasion where emacs-w32 just hanged, taking up 100% of a virtual CPU core, and I had to kill it from bash. This has also occasionally happened with the ssh process when I do a save-buffer using TRAMP, but I can usually use C-g to quit the command and recover from the hang. Repeated attempts to save hang as well, but I can rename/copy/delete the file in Dired. I can also usually write to the same file if I just restart Emacs. This may be more of an issue with the remote than Emacs, so I'm not as concerned with this as I am with the aborting.

If you want the full logs, I can clean them up and attach them. I can also get you more information from GDB if it helps.


Cheers,

SDS



--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]