The symptoms of this patch seem familiar to me. Maybe Gunnar has 20 of
these in the bugtracking system:
Execute this code (probably familiar to WMPerry)
(let ((vars '(window-system
system-type
ange-ftp-version
url-gateway-method
ange-ftp-version
url-version
url-be-asynchronous
url)))
(mapcar
(function
(lambda (x)
(if (not (and (boundp x) (symbol-value x)))
(setq vars (delq x vars))))) vars)))
and boom.... (top of crash, full trace at end)
Starting program: /scratch/vroonhof/xemacs/src/xemacs /tmp/repeatbug.el
Fatal error: assertion failed, file lisp.h, line 642, RECORD_TYPEP (obj, &lrecord_cons)
Program received signal SIGABRT, Aborted.
0x402e2111 in __kill ()
(gdb) where
#0 0x402e2111 in __kill ()
#1 0x402e1d66 in raise (sig=6) at ../sysdeps/posix/raise.c:27
#2 0x402e3447 in abort () at ../sysdeps/generic/abort.c:88
#3 0x80849f7 in assert_failed () at emacs.c:2825
#4 0x80e0d92 in mapcar1 (leni=8, vals=0xbfffea54, fn=140746624, seq=140746444) at lisp.h:642
...
(gdb) pobj seq
$1 = (struct Lisp_Symbol *) 0x82508d4
$2 = {lheader = {type = 3, mark = 0, c_readonly = 0, lisp_readonly = 0}, next = 0x0,
name = 0x82500dc, value = 136644820, function = 136387788, plist = 136644820}
Symbol name: nil
(gdb) print fn
$3 = 0
(gdb)
Notes
1. Further toning down of the loop or the lisp makes the crash go
away. I am not sure that holds for the bug.
2. Note that the loop destructively modifies the lisp to be looped
over.
3. The crash actually happens on the last iteration of the loop, after
(delq x vars) with x = url.
Starting program: /scratch/vroonhof/xemacs/src/xemacs /tmp/repeatbug.el
Fatal error: assertion failed, file lisp.h, line 642, RECORD_TYPEP (obj, &lrecord_cons)
Program received signal SIGABRT, Aborted.
0x402e2111 in __kill ()
(gdb) where
#0 0x402e2111 in __kill ()
#1 0x402e1d66 in raise (sig=6) at ../sysdeps/posix/raise.c:27
#2 0x402e3447 in abort () at ../sysdeps/generic/abort.c:88
#3 0x80849f7 in assert_failed () at emacs.c:2825
#4 0x80e0d92 in mapcar1 (leni=8, vals=0xbfffea54, fn=140746624, seq=140746444) at lisp.h:642
#5 0x80e10ad in Fmapcar (fn=140746624, seq=140746444) at fns.c:3157
#6 0x80892c7 in Feval (form=140746600) at eval.c:2975
#7 0x8086178 in Flet (args=140746588) at eval.c:767
#8 0x8089146 in Feval (form=140746420) at eval.c:2947
#9 0x8089d34 in Ffuncall (nargs=2, args=0xbfffed54) at eval.c:3178
#10 0x8060aa9 in execute_optimized_program (
program=0x8620938 "\b¢Áa«!\bGÂV«\eÃÄ\bAB!\210\r«\rÆÇ!\210ÈÉ!\210ÆÊ!\210\bA@\207\b¢Ëa«0\bGÂV«*Ì\bA@!«#Í\bA@ÃÂ\b8!\"\210Ã\b!\210\r«\rÆÎ!\210ÈÉ!\210ÆÊ!\210\bA@\207Ã\b!\207", stack_depth=5,
constants_data=0x83d2db0) at bytecode.c:743
#11 0x806068e in funcall_compiled_function (fun=138190880, nargs=1, args=0xbfffee68)
at bytecode.c:519
#12 0x8089ea4 in Ffuncall (nargs=2, args=0xbfffee64) at eval.c:3210
#13 0x8060aa9 in execute_optimized_program (
program=0x8631f50 "\b«\004pª\002Á\032ÃÄ\212Å \210Æ \210Çp!)!!)\207Å:@¡", stack_depth=4,
constants_data=0x83d2e78) at bytecode.c:743
#14 0x806068e in funcall_compiled_function (fun=138190936, nargs=1, args=0xbfffef70)
at bytecode.c:519
#15 0x8089ea4 in Ffuncall (nargs=2, args=0xbfffef6c) at eval.c:3210
#16 0x8065edc in Fcall_interactively (function=138195860, record_flag=136644820, keys=136644820)
at callint.c:946
#17 0x8088582 in Fcommand_execute (cmd=138195860, record=136644820, keys=136644820)
at eval.c:2613
#18 0x80ba7d2 in execute_command_event (command_builder=0x846bf90, event=140346116)
at event-stream.c:4333
#19 0x80bb42b in Fdispatch_event (event=140346116) at event-stream.c:4692
#20 0x806addb in Fcommand_loop_1 () at cmdloop.c:575
#21 0x806b00d in command_loop_1 (dummy=136644820) at cmdloop.c:490
#22 0x808e3dc in condition_case_1 (handlers=136644916, bfun=0x806afc8 <command_loop_1>,
barg=136644820, hfun=0x806a1d0 <cmd_error>, harg=136644820) at eval.c:1630
#23 0x806b0ec in command_loop_2 (dummy=136644820) at cmdloop.c:252
#24 0x808e2bf in internal_catch (tag=136718772, func=0x806b0b4 <command_loop_2>, arg=136644820,
threw=0x0) at eval.c:1305
#25 0x806a604 in initial_command_loop (load_me=136644820) at cmdloop.c:301
#26 0x8083102 in xemacs_21_2_b24_i686_pc_linux () at emacs.c:1898
#27 0x8084c7f in main () at emacs.c:2323
#28 0x402dbcb3 in __libc_start_main (main=0x8084b80 <main>, argc=2, argv=0xbffff4b4,
init=0x804dc20 <_init>, fini=0x81ac564 <_fini>, rtld_fini=0x4000a350 <_dl_fini>,
stack_end=0xbffff4ac) at ../sysdeps/generic/libc-start.c:78
(gdb) pobj seq
Undefined command: "pobj". Try "help".
(gdb) source gdbinit
(gdb) frame 4
#4 0x80e0d92 in mapcar1 (leni=8, vals=0xbfffea54, fn=140746624, seq=140746444) at lisp.h:642
(gdb) pobj seq
$1 = (struct Lisp_Symbol *) 0x82508d4
$2 = {lheader = {type = 3, mark = 0, c_readonly = 0, lisp_readonly = 0}, next = 0x0,
name = 0x82500dc, value = 136644820, function = 136387788, plist = 136644820}
Symbol name: nil
(gdb) print fn
$3 = 0
(gdb)
uname -a: Linux urysohn 2.2.5-15 #1 Mon Apr 19 23:00:46 EDT 1999 i686 unknown
./configure '--prefix=/usr/local/app/xemacs/21.1.2' '--bindir=/usr/local/app/xemacs/21.1.2/bin/i686-pc-linux-gnu' '--with-athena=3d'
XEmacs 21.2-b24 "Hecate" configured for `i686-pc-linux'.
Where should the build process find the source code? /scratch/vroonhof/xemacs
What installation prefix should install use? /usr/local/app/xemacs/21.1.2
What operating system and machine description files should XEmacs use?
`s/linux.h' and `m/intel386.h'
What compiler should XEmacs be built with? gcc -g -O3 -Wall -Wno-switch
Should XEmacs use the GNU version of malloc? yes
(Using Doug Lea's new malloc from the GNU C Library.)
Should XEmacs use the relocating allocator for buffers? yes
What window system should XEmacs use? x11
Where do we find X Windows header files? /usr/X11R6/include
Where do we find X Windows libraries? /usr/X11R6/lib
Compiling in support for XAUTH.
Compiling in support for XPM images.
Compiling in support for PNG image handling.
Compiling in support for (builtin) GIF image handling.
Compiling in support for JPEG image handling.
Compiling in support for TIFF image handling.
Compiling in support for X-Face message headers.
Compiling in native sound support.
Compiling in support for Enlightened Sound Daemon (ESD).
Compiling in support for Berkeley DB.
Compiling in support for ncurses.
Compiling in support for GPM (General Purpose Mouse).
Compiling in support for proper WM_COMMAND handling.
Using Lucid menubars.
Using Lucid scrollbars.
Using Athena native widgets.
Using Athena dialog boxes.
Compiling in dynamic shared object module support.
movemail will use "dot-locking" for locking mail spool files.
Compiling in extra code for debugging.
WARNING: ---------------------------------------------------------
WARNING: Compiling in support for runtime error checking.
WARNING: XEmacs will run noticeably more slowly as a result.
WARNING: Error checking is on by default for XEmacs beta releases.
WARNING: ---------------------------------------------------------
urysohn:/scratch/vroonhof/xemacs/src> gcc --version
egcs-2.91.66