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

Bug#167409: XEmacs 21.4.10 crashes with glibc 2.3.1



Hi,

> After upgrading from glibc 2.2.5 to 2.3.1 in Debian `sid', the unexec
> version of XEmacs builds successfully, but crashes immediately when
> invoked.  Are there reasons to believe that the new glibc might cause
> problems with the unexec'd binary?  It may be related to changes in
> malloc, see below.

Certainly possible.  However, I've personally checked xemacs-21.4.6
against the then-current glibc-2.2.90 in April, and it was working
fine.  Since then, few malloc changes have gone in.

> N.B. I don't consider this a glibc bug, I just want to try to confirm
> that it is related to the unexec process or malloc (we have an
> alternative way to "dump" Lisp now, the so-called "portable dumper").

BTW: that "portable dumper" sounds like great news, please enable by
default soon :-).

I have downloaded the 21.4.10 CVS that you mentioned and will try it
tonight.

Until then, I'll try a shot in the dark and suggest:

2002-10-07  Wolfram Gloger  <wg@malloc.de>

	* malloc/malloc.c (sYSMALLOc): Only check for breakage due
	to foreign sbrk()'s if arena is contiguous.  Bug report from
	Bruno Haible <bruno@clisp.org>.

--- malloc.c	2002/06/11 09:36:14	1.10
+++ malloc.c	2002/10/07 15:33:46
@@ -2911,7 +2911,7 @@
     if (brk == old_end && snd_brk == (char*)(MORECORE_FAILURE))
       set_head(old_top, (size + old_size) | PREV_INUSE);
 
-    else if (old_size && brk < old_end) {
+    else if (contiguous(av) && old_size && brk < old_end) {
       /* Oops!  Someone else killed our space..  Can't touch anything.  */
       assert(0);
     }

Regards,
Wolfram.



Reply to: