Subject: XFree86 Crash in current/amd64
To: None <current-users@netbsd.org, port-amd64@netbsd.org>
From: Gary Duzan <gary@duzan.org>
List: port-amd64
Date: 10/08/2007 22:36:06
   Since around this weekend, my XFree86 server won't start, dying
fairly early with a seg fault/core. Here is a gdb run against a
DBG="-g -fno-inline" binary:

===========================================================================
capo { /usr/src/x11/Xserver } # gdb --args Xserver/XFree86/obj.amd64/XFree86 vt05 -nolisten tcp
GNU gdb 6.5
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "x86_64--netbsd"...
(gdb) run
Starting program: /usr/obj/x11/Xserver/Xserver/XFree86.amd64/XFree86 vt05 -nolisten tcp

XFree86 Version 4.5.0
Release Date: 16 March 2005
X Protocol Version 11, Revision 0
Build Operating System:NetBSD/amd64 4.99.32 - The NetBSD Foundation, Inc.
Current Operating System: NetBSD capo 4.99.32 NetBSD 4.99.32 (CAPO64) #4: Mon Oct  8 18:56:32 EDT 2007  root@capo:/usr/obj/sys/arch/amd64/compile.amd64/CAPO64 amd64
Build Date: 8 October 2007
        Before reporting problems, check http://www.XFree86.Org/
        to make sure that you have the latest version.
Module Loader present
Command line: /usr/obj/x11/Xserver/Xserver/XFree86.amd64/XFree86 vt05 -nolisten tcp
Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (EE) error, (WW) warning,
        (II) informational, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/XFree86.0.log", Time: Mon Oct  8 22:32:47 2007
(==) Using config file: "/etc/X11/XF86Config".

Program received signal SIGSEGV, Segmentation fault.
0x00007f8000495aef in ?? ()
(gdb) where
#0  0x00007f8000495aef in ?? ()
#1  0x00007f7ffcb05f55 in ?? ()
#2  0x00007f7fffffe550 in ?? ()
#3  0x000000000048c300 in LoadModule (module=0x7f7ffcb0b938 "bitmap",
    path=0x0, subdirlist=0x0, patternlist=0x0, options=0x0, modreq=0x0,
    errmaj=0x7f7fffffe59c, errmin=0x7f7fffffe598)
    at /usr/xsrc/xfree/xc/programs/Xserver/hw/xfree86/loader/loadmod.c:1043
#4  0x0000000000432a61 in xf86LoadModules (list=0x7f7ffcb3a330, optlist=0x0)
    at /usr/xsrc/xfree/xc/programs/Xserver/hw/xfree86/common/xf86Init.c:2186
#5  0x000000000042e7e1 in InitOutput (pScreenInfo=0x7a6620, argc=4,
    argv=0x7f7fffffe778)
    at /usr/xsrc/xfree/xc/programs/Xserver/hw/xfree86/common/xf86Init.c:550
#6  0x00000000004bbb3a in main (argc=4, argv=0x7f7fffffe778,
    envp=0x7f7fffffe7a0) at /usr/xsrc/xfree/xc/programs/Xserver/dix/main.c:355
(gdb) frame 3
#3  0x000000000048c300 in LoadModule (module=0x7f7ffcb0b938 "bitmap",
    path=0x0, subdirlist=0x0, patternlist=0x0, options=0x0, modreq=0x0,
    errmaj=0x7f7fffffe59c, errmin=0x7f7fffffe598)
    at /usr/xsrc/xfree/xc/programs/Xserver/hw/xfree86/loader/loadmod.c:1043
1043            ret->TearDownData = ret->SetupProc(ret, options, errmaj, errmin);
(gdb) print *ret
$1 = {child = 0x0, sib = 0x0, parent = 0x0, demand_next = 0x0,
  name = 0x7f7ffcb0b978 "bitmap",
  filename = 0x7f7ffcb6e910 "/usr/X11R6/lib/modules/fonts/libbitmap.a",
  identifier = 0x0, client_id = 0, in_use = 0, handle = 2,
  SetupProc = 0x7f7ffcb05f40, TearDownProc = 0, TearDownData = 0x0,
  path = 0x0, VersionInfo = 0x7f7ffcb71220}
(gdb)
===========================================================================

   It was fine with a new kernel, but the new userland seems to
have broken it. Fallout from the new malloc, perhaps?

					Gary Duzan