Hi Gents,
I succeeded in triggering the following assertion:
Fatal error: assertion failed, file signal.c, line 730, QUIT called from within
redisplay without being properly wrapped
I saw this first when trying to switch from a shell buffer
which was receiving process output to another buffer
via buffers pulldown menu selection.
Later when experimenting I found that the assertion can
be triggered by just randomly (frantically) clicking on a menubar item
(i.e. just pulling the menu-pane down and up again
and not selecting any menuitem is sufficient).
The important thing is that a process buffer must be on
display getting filled at a relatively high rate.
When experimenting I used to create a shell process: M-x shell
and ran the following shell commands:
sh
while true; do sleep 0.001; echo 'good
by!'; done
(The more bytes are echoed, the better. Just echoing 'good by!' makes reproducing
the effect impossible on my machine ?!)
Then just multi-clicking on the "Buffers" cascade-button triggers the assertion
within seconds.
This assertion is easily reproduced with optimized as well as debug versions,
with today's HEAD version, as well as with a CVS date-tagged version
"-D 2005-01-27", i.e. a version having received the above assertion-code
about one day before:
revision 1.29
date: 2005/01/26 10:33:42; author: ben; state: Exp; lines: +22 -156
Fix some race conditions in redisplay/signal
(...)
Seems that adding the assertion was a good thing, since at least one
bad race still seems to go on somewhere ...
Please find more details below,
happy debugging,
and a a happy new year!
Klaus
Here is my configure command:
configure --with-package-path=/home/klr/xemacs/lib/xemacs/xemacs-packages
--infodir=/home/klr/xemacs/xemacs-21.5/info
--with-infopath=/home/klr/xemacs/xemacs-packages --with-athena=3d --with-xpm --with-png
--with-jpeg --with-tiff --with-gif --with-gpm=yes --with-sound=native --with-pop
--with-clash-detection --with-canna=yes --with-wnn=yes --with-xim=xlib --with-database=no
--with-postgresql=no --with-ldap=no --with-hesiod=no --with-widgets=athena
--with-menubars=lucid --with-scrollbars=lucid --with-dialogs=athena --with-msw=no
Lisp backtrace:
# (unwind-protect ...)
# (unwind-protect ...)
# (unwind-protect ...)
# (unwind-protect ...)
# (unwind-protect ...)
# (unwind-protect ...)
# (unwind-protect ...)
# (unwind-protect ...)
# (unwind-protect ...)
# (unwind-protect ...)
# (catch #<INTERNAL OBJECT (XEmacs bug?) (opaque, size=0) 0x84a60ac> ...)
# (unwind-protect ...)
# bind (inhibit-quit)
# (unwind-protect ...)
# (unwind-protect ...)
# (unwind-protect ...)
# bind (inhibit-quit)
# (unwind-protect ...)
# (unwind-protect ...)
# (unwind-protect ...)
# (unwind-protect ...)
# (unwind-protect ...)
# (unwind-protect ...)
# (unwind-protect ...)
# (unwind-protect ...)
# (unwind-protect ...)
("(in redisplay)" "[internal]")
# (unwind-protect ...)
sit-for(0)
# (unwind-protect ...)
# bind (window)
#<compiled-function (window) "...(123)" [current selected scroll process
comint-scroll-show-maximum-output window window-buffer window-point process-mark t all
this others set-window-point pos-visible-in-window-p recenter floatp floor window-height 1
-1 sit-for 0 string] 4>(#<window on "*shell*" 0x3163e>)
# bind (walk-windows-current walk-windows-start arg which-devices which-frames minibuf
function)
walk-windows(#<compiled-function (window) "...(123)" [current selected
scroll process comint-scroll-show-maximum-output window window-buffer window-point
process-mark t all this others set-window-point pos-visible-in-window-p recenter floatp
floor window-height 1 -1 sit-for 0 string] 4> nil t)
# bind (scroll process current selected string)
comint-postoutput-scroll-to-bottom("good
bye\n")
run-hook-with-args(comint-postoutput-scroll-to-bottom "good
bye\n")
# bind (obuf opoint obeg oend oprocbuf string process)
comint-output-filter(#<process "bash" pid 27009 state:run> "good
bye\n")
("execute_internal_event()" "[internal]")
(dispatch-event "[internal]")
# (condition-case ... . error)
# (catch top-level ...)
[1] Abort xemacs (core dumped)
Core stacktrace:
#0 0xffffe410 in ?? ()
#1 0xbfffb7dc in ?? ()
#2 0x000028d6 in ?? ()
#3 0x00000006 in ?? ()
#4 0x403415f6 in kill () from /lib/tls/libc.so.6
#5 0x080d587b in fatal_error_signal (sig=6) at emacs.c:3734
#6 <signal handler called>
#7 0xffffe410 in ?? ()
#8 0xbfffbad8 in ?? ()
#9 0x00000006 in ?? ()
#10 0x000028d6 in ?? ()
#11 0x403412c1 in raise () from /lib/tls/libc.so.6
#12 0x40342b75 in abort () from /lib/tls/libc.so.6
#13 0x080d7c22 in really_abort () at emacs.c:4596
#14 0x080d594f in assert_failed (file=0x82a9477 "signal.c", line=730,
expr=0x82a9510 "QUIT called from within redisplay without being properly
wrapped") at emacs.c:3919
#15 0x08203b6e in check_quit () at signal.c:728
#16 0x08203724 in check_what_happened () at signal.c:458
#17 0x080df714 in Ffuncall (nargs=2, args=0xbfffbd08) at eval.c:3776
#18 0x080e0ff0 in call1 (fn=146269744, arg0=146614668) at eval.c:4497
#19 0x0825adb3 in menu_item_descriptor_to_widget_value_1 (desc=146614668,
menu_type=1, deep_p=1, filter_p=0, depth=0) at menubar-x.c:218
#20 0x0825b119 in protected_menu_item_descriptor_to_widget_value_1 (
gack=0xbfffc0a0) at menubar-x.c:353
#21 0x080e1b41 in call_trapping_problems_2 (opaque=147103872) at eval.c:4885
#22 0x080dc6dc in call_with_condition_handler (
handler=0x80e1a9f <flagged_a_squirmer>, handler_arg=147103872,
fun=0x80e1b0c <call_trapping_problems_2>, arg=147103872) at eval.c:2135
#23 0x080e1b61 in call_trapping_problems_1 (opaque=147103872) at eval.c:4891
#24 0x080dba86 in internal_catch (tag=147103776,
func=0x80e1b46 <call_trapping_problems_1>, arg=147103872,
threw=0xbfffbf8c, thrown_tag=0xbfffbf98, backtrace_before_throw=0xbfffbf90)
at eval.c:1530
#25 0x080e1f7b in call_trapping_problems (warning_class=146388360,
warning_string=0x82b1f35 "Error during menu callback", flags=35,
problem=0x0,
fun=0x825b0e0 <protected_menu_item_descriptor_to_widget_value_1>,
arg=0xbfffc0a0) at eval.c:5164
#26 0x080f4b96 in event_stream_protect_modal_loop (
error_string=0x82b1f35 "Error during menu callback",
bfun=0x825b0e0 <protected_menu_item_descriptor_to_widget_value_1>,
barg=0xbfffc0a0, flags=32) at event-stream.c:1934
#27 0x0825b185 in protected_menu_item_descriptor_to_widget_value (
desc=146614704, menu_type=1, deep_p=1, filter_p=0) at menubar-x.c:382
#28 0x0825b30d in pre_activate_callback (widget=0x8527170, unused_id=65537,
client_data=0x8537200) at menubar-x.c:476
#29 0x0827ef9e in pre_hook (w=0x8527170, client_data=0x8526ff0,
call_data=0x8537200) at lwlib-Xlw.c:82
#30 0x4016b806 in XtCallCallbackList () from /usr/X11R6/lib/libXt.so.6
#31 0x0827a566 in remap_menubar (mw=0x8527170) at xlwmenu.c:2524
#32 0x0827bd87 in handle_single_motion_event (mw=0x8527170, ev=0xbfffc6f0,
select_p=1 '\001') at xlwmenu.c:3269
#33 0x0827be70 in handle_motion_event (mw=0x8527170, ev=0xbfffc6f0,
select_p=1 '\001') at xlwmenu.c:3301
#34 0x0827bf78 in Start (w=0x8527170, ev=0xbfffc6f0, unused_params=0x0,
unused_num_params=0x401b1c64) at xlwmenu.c:3339
#35 0x401a47e7 in XtInstallAllAccelerators () from /usr/X11R6/lib/libXt.so.6
#36 0x401a4bc4 in XtInstallAllAccelerators () from /usr/X11R6/lib/libXt.so.6
#37 0x401a5288 in _XtTranslateEvent () from /usr/X11R6/lib/libXt.so.6
#38 0x4017a7f3 in XtDispatchEventToWidget () from /usr/X11R6/lib/libXt.so.6
#39 0x4017b02a in XtDispatchEventToWidget () from /usr/X11R6/lib/libXt.so.6
#40 0x40179e5f in XtDispatchEvent () from /usr/X11R6/lib/libXt.so.6
#41 0x40187a18 in XtAppProcessEvent () from /usr/X11R6/lib/libXt.so.6
#42 0x0823d4f3 in emacs_Xt_drain_queue () at event-Xt.c:2834
#43 0x0823d56c in check_if_pending_expose_event (dev=0x8c25d20)
at event-Xt.c:2855
#44 0x0824f97a in x_window_output_end (w=0x8ceb440) at redisplay-x.c:307
#45 0x081eb027 in redisplay_output_window (w=0x8ceb440)
at redisplay-output.c:2494
#46 0x081d9587 in redisplay_window (window=147764288, skip_selected=0)
at redisplay.c:6534
#47 0x081d9fd6 in redisplay_frame (f=0x8cea954, preemption_check=1)
at redisplay.c:6940
#48 0x081da472 in redisplay_device (d=0x8c25d20, automatic=1)
at redisplay.c:7021
#49 0x081dabcd in redisplay_without_hooks () at redisplay.c:7096
#50 0x081dae93 in redisplay_no_pre_idle_hook () at redisplay.c:7167
#51 0x081dae4e in redisplay () at redisplay.c:7149
#52 0x080f639b in Fsit_for (seconds=1, nodisplay=146404744)
at event-stream.c:2873
#53 0x080df9b3 in Ffuncall (nargs=2, args=0xbfffcab4) at eval.c:3847
#54 0x0809ac14 in execute_optimized_program (
program=0x862988c
"Æ\r!\batÇ\r!È\v!W«3\nÉa¬'\nÊa¬\"\nËa«\006\t\ra¬\030\nÌa«\006\t\ra«\016Ç\r!È\v!\016\027GZY«\bÍ\rÈ\v!\"\210\f6Ç\r!È\v!Y-Îd\r\"?&\212Í\rd\"\210Ï\f¨«\004\fª\021Ð\f!«\vÑÒ\r!\f_Ó\"ª\002Ô\r\"\210ÕÖ!)\207",
stack_depth=4, constants_data=0x860c1a8) at bytecode.c:823
#55 0x080e7225 in funcall_compiled_function (fun=141853772, nargs=1,
args=0xbfffcd08) at eval.c:3457
#56 0x080dfc6f in Ffuncall (nargs=2, args=0xbfffcd04) at eval.c:3886
#57 0x0809ac14 in execute_optimized_program (
program=0x85a7bc8
"Æ\f!«\004\fª\aÇ\v!\002\v\032ÈÉ\n!!«\003Ê\021É\n!\211\030\035Ë\r\t\f\v$\025\016\f\r!\210\r\ba?\003ªí+\207\025`®+1",
stack_depth=6,
constants_data=0x8c40620) at bytecode.c:823
#58 0x080e7225 in funcall_compiled_function (fun=147616096, nargs=3,
args=0xbfffcf58) at eval.c:3457
#59 0x080dfc6f in Ffuncall (nargs=4, args=0xbfffcf54) at eval.c:3886
#60 0x0809ac14 in execute_optimized_program (
program=0x85e5588 "Å \032p\034Æ\f!\033\t\030\v\006ÇÈÉÊ#,\207",
stack_depth=4, constants_data=0x85f503c) at bytecode.c:823
#61 0x080e7225 in funcall_compiled_function (fun=141853816, nargs=1,
args=0xbfffd2fc) at eval.c:3457
#62 0x080dfc6f in Ffuncall (nargs=2, args=0xbfffd2f8) at eval.c:3886
#63 0x080e0be2 in run_hook_with_args_in_buffer (buf=0x842a114, nargs=2,
args=0xbfffd2f8, cond=RUN_HOOKS_TO_COMPLETION) at eval.c:4360
#64 0x080e0c92 in run_hook_with_args (nargs=2, args=0xbfffd2f8,
cond=RUN_HOOKS_TO_COMPLETION) at eval.c:4380
#65 0x080e08c6 in Frun_hook_with_args (nargs=2, args=0xbfffd2f8) at eval.c:4255
#66 0x080dfbe2 in Ffuncall (nargs=3, args=0xbfffd2f4) at eval.c:3870
#67 0x0809ac14 in execute_optimized_program (
program=0x85a1b64 "Æ\016\022!\211\036\023\205\227", stack_depth=5,
constants_data=0x860c140) at bytecode.c:823
#68 0x080e7225 in funcall_compiled_function (fun=141853640, nargs=2,
args=0xbfffd554) at eval.c:3457
#69 0x080dfc6f in Ffuncall (nargs=3, args=0xbfffd550) at eval.c:3886
#70 0x080e104d in call2 (fn=141835920, arg0=140559064, arg1=140257088)
at eval.c:4513
#71 0x081c0d16 in read_process_output (process=140559064, read_stderr=0)
at process.c:1095
#72 0x080f67b1 in execute_internal_event (event=140287344)
at event-stream.c:3014
#73 0x080f97a5 in Fdispatch_event (event=140287344) at event-stream.c:4642
#74 0x080a8a8f in Fcommand_loop_1 () at cmdloop.c:600
#75 0x080a884b in command_loop_1 (unused_dummy=146404744) at cmdloop.c:505
#76 0x080dbfcd in condition_case_1 (handlers=146401592,
bfun=0x80a881b <command_loop_1>, barg=146404744,
hfun=0x80a846b <cmd_error>, harg=146404744) at eval.c:1924
#77 0x080a857b in command_loop_3 () at cmdloop.c:262
#78 0x080a859e in command_loop_2 (unused_dummy=146404744) at cmdloop.c:275
#79 0x080dba86 in internal_catch (tag=146168912,
func=0x80a8593 <command_loop_2>, arg=146404744, threw=0x0, thrown_tag=0x0,
backtrace_before_throw=0x0) at eval.c:1530
#80 0x080a868b in initial_command_loop (load_me=146404744) at cmdloop.c:313
#81 0x080d4718 in xemacs_21_5_b24_i686_pc_linux (argc=1, argv=0xbfffdf84,
unused_envp=0x0, restart=0) at emacs.c:2624
#82 0x080d50cc in main (argc=1, argv=0xbfffdf84, unused_envp=0xbfffdf8c)
at emacs.c:3064
_______________________________________________
XEmacs-Beta mailing list
XEmacs-Beta(a)xemacs.org
http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-beta