Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 284223 - x11-base/xorg-server: segfaults and hangs kernel
Summary: x11-base/xorg-server: segfaults and hangs kernel
Status: RESOLVED UPSTREAM
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Server (show other bugs)
Hardware: x86 Linux
: High critical (vote)
Assignee: Gentoo Kernel Bug Wranglers and Kernel Maintainers
URL: https://bugs.freedesktop.org/show_bug...
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-09-09 02:49 UTC by Robert Bradbury
Modified: 2009-09-27 07:55 UTC (History)
4 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
emerge --info for system with problems (EmrgInfo.lst,4.01 KB, text/plain)
2009-09-09 03:07 UTC, Robert Bradbury
Details
Xorg.0.log file from attempting to start xorg-server (Xorg.0.log.hung,47.80 KB, text/plain)
2009-09-09 03:42 UTC, Robert Bradbury
Details
xorg.conf for dual i915/R3450 graphics card configuration (xorg.conf.hung,21.43 KB, text/plain)
2009-09-09 03:49 UTC, Robert Bradbury
Details
xorg-server gdb tracing information (gdb.Xorg.trc.6492,13.96 KB, text/plain)
2009-09-09 03:56 UTC, Robert Bradbury
Details
Shell script used to start Xorg under gdb and get tracing information (txinit.sh,2.16 KB, text/plain)
2009-09-09 04:03 UTC, Robert Bradbury
Details
Linux 2.6.31-rc9 .config file (Linux.config,75.65 KB, text/plain)
2009-09-09 04:09 UTC, Robert Bradbury
Details
2.6.28-tuxonice-r1 .config (.config,55.73 KB, text/plain)
2009-09-26 14:29 UTC, helge.preuss
Details
2.6.30-tuxonice-r5 .config (.config,59.08 KB, text/plain)
2009-09-26 14:30 UTC, helge.preuss
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Robert Bradbury 2009-09-09 02:49:26 UTC
Attempting to start the current xorg-server (-1.6.3.901-r1) on a current kernel (-2.6.31-rc8|9) SEGFAULTS *and* hangs the kernel so as to make it unusable.

Reproducible: Always

Steps to Reproduce:
1.Configure /etc/x11/xorg.conf to work with multiple controllers / monitors (in my case a motherboard based i915 and a PCIe based MSI R3450 (R620) add-in card).
2. Attempt to start X (either via xdm or by attempting to use the simpler methods such as xinit or even starting Xorg directly).
3.Xorg will segfault and the console and Linux kernel will become unusable.

Actual Results:  
Xorg segfaults.
VT switching no longer works (so no consoles).
Kernel effectively ceases "operations" (nangs).  Telnet sessions into the system hang and pings fail to get a response.  No "classical" panic is produced however.

Expected Results:  
It should be possible to boot X and configure multiple graphics cards for simultaneous operation.  When this fails for some reason the kernel should return the console to the state it was in *before* attempts were made to start X.

The bug(s) seem to have been around for several months, probably back to at least the 2.6.28 kernels, maybe before that.  Of course there have been multiple iterations of X-servers during that time frame so this may be two or three specific problems, including.
1) Failure of X-server to detect an incomplete or problematic configuration.
2) Failure of X-server to fall-back or select between workable configurations.
3) Failure of the Linux Kernel to return the system to a functional state when attempts to shift to various functional states fails.

I believe the configurations both work alone.  I'm reporting the bug on a working i915 configuration.  I have booted the current and older kernels on the Radeon configuration.  It is when one attempts to use them simultaneously that problems occur.

A robust system would allow one to enable multiple graphics cards of various types (on the motherboard, PCIe, AGP or PCI ports) and configure those cards so that each card can be worked with as a separate frame-buffer console and/or separate virtual terminals managed by Xorg.

This problem has arisen for me over the last couple of months due to problems with various iterations of the i915 drivers and a "workable" Xorg + i915 driver.  That in turn lead me to attempt to get a second graphics card (the MSI R3450 (R620)) card working in the system to enable debugging of the i915.  Only within the last month or so have R620 accelerated drivers become available and incorporated into the kernel with i915 accelerated drivers.  And frustratingly it does not appear to be possible to make this work at this point.  One is forced to ask, "Why in the Linux world is there nobody with a machine with 6-8 graphics cards from various manufacturers (even very old cards) being tested together simultaneously?"  I would think there should be some hacker somewhere who would be attempting to claim the prize for "most monitors attached to a single motherboard using standard hardware" (but perhaps I'm the only person who thinks about limit testing along such lines)...

Also note that the system must be power-cycled to reboot and the log files will probably contain garbage (in a few cases the system has even failed to reboot properly due to corrupted / non-auto-repairable file systems.  So one has to play somewhat clever "games" (at least from my perspective) in order to get traces which provide useful diagnostic information.

It would also be nice if the component descriptions could make it clearer where bug reports regarding "windows" related components (xorg-server, xfce, gtk+, belonged as it is a bit unclear (at least to me) from the current descriptions.
Comment 1 Robert Bradbury 2009-09-09 03:07:05 UTC
Created attachment 203551 [details]
emerge --info for system with problems

Yes, I know its the 2.6.31-rc9 prerelease but the problems seem to go back to at least the 2.6.29 kernel (presumably from the time the KMS upgrades began).

Other software versions are:
x11-base/xorg-server-1.6.3.901-r1
x11-drivers/xf86-video-intel-2.8.1
x11-drivers/xf86-video-ati-6.12.2-r1
Comment 2 Robert Bradbury 2009-09-09 03:42:46 UTC
Created attachment 203552 [details]
Xorg.0.log file from attempting to start xorg-server

Note that the log file appears to process both the i915 (intel) and the R620 (RADEON) configuration/drivers with minimal difficulties (aside from some unused options).  There are no "EE" errors and the configuration reading and driver processing appears to complete.  The DRI directives also appear to be processed correctly.  Note that once loaded, the kernel drivers do provide a /dev/dri/card0 (i915) and /dev/dri/card1 (R620).  In my case the intelfb driver is built into the kernel and radeon driver is loaded via modprobe.
Comment 3 Robert Bradbury 2009-09-09 03:49:57 UTC
Created attachment 203553 [details]
xorg.conf for dual i915/R3450 graphics card configuration

The xorg.conf for the X-server startup which is problematic.  Note that if one tries to enable either the i915 driver & configuration or the R620 driver /configuration alone, the configuration largely appears to work (i.e. X terminals can be started and run and DRI appears to work and graphics appears generally accelerated (though perhaps not to fglrx driver levels)).

Using the R620 card (PCIe) card along requires configuring the motherboard (BIOS?) to use the PCIe graphics rather than the motherboard graphics and lspci only appears to detect the PCI R620 port.  In contrast if one boots using the motherboard i915 graphics then lspci sees both the Intel and the Radeon PCI graphics interfaces on the PCI bus.
Comment 4 Robert Bradbury 2009-09-09 03:56:57 UTC
Created attachment 203554 [details]
xorg-server gdb tracing information

xorg-server gdb tracing information, the backtrace is informative (the attached file contains more information):

Program received signal SIGSEGV, Segmentation fault.
0x080c1c8c in xf86EnterServerState (state=OPERATING) at xf86Bus.c:1521
1521            ((BusAccPtr)pEnt->busAcc)->set_f(pEnt->busAcc);
#0  0x080c1c8c in xf86EnterServerState (state=OPERATING) at xf86Bus.c:1521
#1  0x080c2f4f in xf86PostScreenInit () at xf86Bus.c:2053
#2  0x080a8e3f in InitOutput (pScreenInfo=0x81dadc0, argc=2, argv=0xbf913484)
    at xf86Init.c:1292
#3  0x0806f926 in main (argc=2, argv=0xbf913484, envp=0xbf913490)
    at main.c:315

It appears as if it does not know *which* graphics card to select as the default X window (:0) -- presumably the code needs a few more error checks for incomplete card configuration / selection.  But the Linux Kernel should *still* fallback to a usable console/system state.  The fact that the telnet/pings to the system become unresponsive strongly suggest that something has gone wrong in the kernel itself.
Comment 5 Robert Bradbury 2009-09-09 04:03:13 UTC
Created attachment 203555 [details]
Shell script used to start Xorg under gdb and get tracing information

Script used to collect tracing information and perform frequent syncs to try and get log files which are valid when the system is rebooted.

The script never seems to complete, e.g. /root/bin/Bell, which under normal conditions produces a "bell" sound on the console, is never heard, another indication that the system is in some way "hung".  The system also never reboots itself.
Comment 6 Robert Bradbury 2009-09-09 04:09:58 UTC
Created attachment 203557 [details]
Linux 2.6.31-rc9 .config file

.config for linux kernel so one can determine the precise driver situation.  Largely the same configuration was tried under linux-2.6.30-gentoo-rX (last was -r5) and several variants of linux-2.6.29 with largely the same results (I've been able to produce "hung" kernels for 2 months, perhaps longer).
Comment 7 Robert Bradbury 2009-09-09 06:19:45 UTC
This bug has been filed as Freedesktop.org Bug #23804.
https://bugs.freedesktop.org/show_bug.cgi?id=23804
Comment 8 Robert Bradbury 2009-09-09 06:39:40 UTC
A topic on the LKML has been filed under the subject:
"Xorg server hanging/crashing kernel, esp. 2.6.31-rc9 (-rc8)"
Comment 9 Rémi Cardona (RETIRED) gentoo-dev 2009-09-17 10:22:43 UTC
You speak way too much. I don't even know what to look at nor where to begin...

Try to cut down on the number of words and we'll help you out.

Thanks
Comment 10 Robert Bradbury 2009-09-17 18:30:43 UTC
Short summary.  The xorg server crashed with a segfault and hangs linux when one attempts to start it configured for both the i915 motherboard controller and a plug-in MSI (Radeon) R3450/R620 PCIe add on card.  One cannot use the current release to control 3 monitors with 2 different graphics controllers.

See the stack traces for precisely what is going wrong (a gdb stack trace for an X-server that hangs the system isn't exactly trivial to produce).
Comment 11 helge.preuss 2009-09-26 14:27:51 UTC
I'm subscribing to this bug, I have it with intel drivers too.

Kernel 2.6.28-tuxonice-r1 works. I couldn't test 2.6.29 - an issue with (apparently) the frame buffer prevented it from even starting init. 2.6.30-tuxonice-r5 is experiencing a segfault. I'm afraid the Xorg log is already gone, if wanted, I can reproduce the segfault and investigate further.

I am using Xorg server 1.5.3-r7.

I'm attaching the .config for the 2.6.28 and 2.6.30 kernels.
Comment 12 helge.preuss 2009-09-26 14:29:36 UTC
Created attachment 205296 [details]
2.6.28-tuxonice-r1 .config

working
Comment 13 helge.preuss 2009-09-26 14:30:19 UTC
Created attachment 205298 [details]
2.6.30-tuxonice-r5 .config

broken
Comment 14 helge.preuss 2009-09-26 15:56:38 UTC
Kernel 2.6.31-gentoo and xorg-server-1.6.3.901-r2 work though. That's good enough for me. Sorry for the noise.
Comment 15 Rémi Cardona (RETIRED) gentoo-dev 2009-09-27 07:54:47 UTC
Reopening
Comment 16 Rémi Cardona (RETIRED) gentoo-dev 2009-09-27 07:55:40 UTC
Unfortunately, there's little we can do here. I've CCed myself on the upstream bug, let's see where that goes.

Thanks