Bug 6541 - xorg-x11-6.9.0 server SIGSEGV when BackingStore enabled
Summary: xorg-x11-6.9.0 server SIGSEGV when BackingStore enabled
Status: RESOLVED INVALID
Alias: None
Product: xorg
Classification: Unclassified
Component: Server/General (show other bugs)
Version: 6.9.0
Hardware: x86 (IA32) Linux (All)
: high normal
Assignee: Xorg Project Team
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-04-09 16:13 UTC by Ian! D. Allen
Modified: 2006-06-16 03:11 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments

Description Ian! D. Allen 2006-04-09 16:13:30 UTC
# grep -i xorg /var/log/rpmpkgs
libxorg-x11-6.9.0-12mdk.i586.rpm
libxorg-x11-devel-6.9.0-12mdk.i586.rpm
libxorg-x11-static-devel-6.9.0-12mdk.i586.rpm
xorg-x11-100dpi-fonts-6.9.0-12mdk.i586.rpm
xorg-x11-6.9.0-12mdk.i586.rpm
xorg-x11-75dpi-fonts-6.9.0-12mdk.i586.rpm
xorg-x11-Xnest-6.9.0-12mdk.i586.rpm
xorg-x11-Xprt-6.9.0-12mdk.i586.rpm
xorg-x11-Xvfb-6.9.0-12mdk.i586.rpm
xorg-x11-Xvnc-6.9.0-12mdk.i586.rpm
xorg-x11-server-6.9.0-12mdk.i586.rpm
xorg-x11-xauth-6.9.0-12mdk.i586.rpm
xorg-x11-xfs-6.9.0-12mdk.i586.rpm

I'm running Mandriva Linux (Cooker); but, I also see this under several
previous versions of Mandrake on other hardware.

# Linux elm.home.idallen.ca 2.6.12-12mdk-i686-up-4GB #1 Fri Sep 9
  17:59:21 CEST 2005 i686 AMD Athlon(tm) XP 3200+ unknown GNU/Linux

If I enable BackingStore in xorg.conf, my Xorg server segfaults after
a while.  I was able to reproduce it somewhat regularly (not every time)
by sending myself a mail message and having xbiff wake up, beep, and put
a graphic image onto my desktop - the beep would sound and the server
would segfault and die.  You can see the traceback below.  Turning off
BackingStore "fixes" the problem.

03:00.0 VGA compatible controller: Matrox Graphics, Inc. MGA G550 AGP (rev 01)

strace output with string length set to 256 - see the SIGSEGV below:
-------------------
execve("/usr/X11R6/bin/Xorg.real", ["/usr/X11R6/bin/Xorg.real", ":6", "-auth",
"/home/idallen/.serverauth.2079", "-deferglyphs", "16"], [/* 96 vars */]) = 0
uname({sys="Linux", node="elm.home.idallen.ca", ...}) = 0
brk(0)                                  = 0x824c000
fcntl64(0, F_GETFD)                     = 0
fcntl64(1, F_GETFD)                     = 0
fcntl64(2, F_GETFD)                     = 0
access("/etc/suid-debug", F_OK)         = -1 ENOENT (No such file or directory)
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0xb7fcd000
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=152192, ...}) = 0
old_mmap(NULL, 152192, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7fa7000
close(3)                                = 0
open("/lib/libz.so.1", O_RDONLY)        = 3
[... lines deleted ...]
open("/lib/tls/libm.so.6", O_RDONLY)    = 3
[... lines deleted ...]
open("/lib/libpam.so.0", O_RDONLY)      = 3
[... lines deleted ...]
open("/lib/libpam_misc.so.0", O_RDONLY) = 3
[... lines deleted ...]
open("/lib/libdl.so.2", O_RDONLY)       = 3
[... lines deleted ...]
open("/usr/X11R6/lib/libXau.so.6", O_RDONLY) = 3
[... lines deleted ...]
open("/usr/X11R6/lib/libXdmcp.so.6", O_RDONLY) = 3
[... lines deleted ...]
open("/lib/libgcc_s.so.1", O_RDONLY)    = 3
[... lines deleted ...]
open("/lib/tls/libc.so.6", O_RDONLY)    = 3

[... 95,508 lines deleted ...]

read(13, 0x839c7f0, 4096)               = -1 EAGAIN (Resource temporarily
unavailable)
gettimeofday({1144559219, 847523}, NULL) = 0
select(256, [1 3 4 9 10 11 12 13 14 15 17 18], NULL, NULL, {117, 861000}) = ?
ERESTARTNOHAND (To be restarted)
--- SIGALRM (Alarm clock) @ 0 (0) ---
setitimer(ITIMER_REAL, {it_interval={0, 0}, it_value={0, 0}}, NULL) = 0
sigreturn()                             = ? (mask now [])
gettimeofday({1144559219, 867407}, NULL) = 0
gettimeofday({1144559219, 867434}, NULL) = 0
select(256, [1 3 4 9 10 11 12 13 14 15 17 18], NULL, NULL, {117, 841000}) = 1
(in [13], left {117, 385000})
setitimer(ITIMER_REAL, {it_interval={0, 20000}, it_value={0, 20000}}, NULL) = 0
gettimeofday({1144559220, 323756}, NULL) = 0
read(13,
">\4\7\0x\0\200\0x\0\200\0004\0\200\0\1\0\0\0\0\0\0\0l\1(\0>\1\7\0z\0\200\0z\0\200\0004\0\200\0\1\0\0\0\0\0\0\0l\1(\0>\1\7\0\200\0\200\0\200\0\200\0004\0\200\0\1\0\0\0\0\0\0\0l\1(\0>\0\7\0i\0\200\0h\0\200\0.\0\200\0\0\0\0\0\0\0\0\0m\1(\0F\0\5\0x\0\200\0005\0\200\0l\1\0\0\1\0(\0F\1\5\0z\0\200\0005\0\200\0l\1\0\0\1\0(\0F\4\5\0\200\0\200\0005\0\200\0l\1\0\0\1\0(\0B\0\5\0z\0\200\0004\0\200\0l\1&\0l\1&\0008\0\4\0.\0\200\0\0\0\10\0x\0\200\0>\2\7\0y\0\200\0h\0\200\0.\0\200\0\0\0!\0\0\0!\0m\1\6\0008\2\4\0."...,
4096) = 4096
read(13,
">\1\7\0\223\1\200\0\237\1\200\0002\0\200\0\2\0\0\0\0\0\5\0\5\0\f\0>\1\7\0\237\1\200\0\231\1\200\0.\0\200\0\0\0\0\0\0\0\0\0m\1\21\0\24\0\6\0b\0\0\0\346\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0",
4096) = 80
read(13, 0x839c7f0, 4096)               = -1 EAGAIN (Resource temporarily
unavailable)
writev(13, [{"\1\0n(\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\30\0\0\0",
32}], 1) = 32
gettimeofday({1144559220, 329189}, NULL) = 0
select(256, [1 3 4 9 10 11 12 13 14 15 17 18], NULL, NULL, {117, 379000}) = ?
ERESTARTNOHAND (To be restarted)
--- SIGALRM (Alarm clock) @ 0 (0) ---
setitimer(ITIMER_REAL, {it_interval={0, 0}, it_value={0, 0}}, NULL) = 0
sigreturn()                             = ? (mask now [])
gettimeofday({1144559220, 345454}, NULL) = 0
gettimeofday({1144559220, 345481}, NULL) = 0
select(256, [1 3 4 9 10 11 12 13 14 15 17 18], NULL, NULL, {117, 363000}) = 1
(in [14], left {117, 266000})
setitimer(ITIMER_REAL, {it_interval={0, 20000}, it_value={0, 20000}}, NULL) = 0
gettimeofday({1144559220, 442351}, NULL) = 0
read(14,
"\2\0\4\0\16\0\240\0\2\0\0\0\377\377\377\0=\0\4\0\16\0\240\0\0\0\0\0\0\0\0\0>\0\7\0\17\0\240\0\16\0\240\0\7\0\240\0\0\0\0\0L\0L\0000\0000\0\200\2\5\0\0\0\240\0\10\0\240\0L\0L\0\5\0\240\0",
5848) = 80
gettimeofday({1144559220, 442710}, NULL) = 0
munmap(0xb36c7000, 180224)              = 0
gettimeofday({1144559220, 448692}, NULL) = 0
read(14, 0x8428960, 5848)               = -1 EAGAIN (Resource temporarily
unavailable)
writev(17,
[{"\17$>\30\10\0\240\0\2\0\0\0\310\0\0\0H$M\10P$M\10f\3\0\0H\6\0\0\f\235>\0306\1\0\1\6\0\6\0}\0@\0\3\0+\10\4\0\0\0@$M\10\0\0\0\0\f\0>\0306\1\0\1u\0F\0\16\0&\0\2\0H\10\320\227*\10h\361\335\277co\27\10\f\t>\0306\1\0\1t\0l\0\17\0\3\0\1\0*\10\0\0\0\0@\6\260\4\0\0\0\0\f\1>\0306\1\0\1s\0o\0\20\0_\0\0\0*\10X\227*\10\210\361\335\277\257\36\27\10@\0>\30\10\0\240\0L\0L\0\1\0\1\0\3\270\0\0\1KB\10\0\0\0\0hMB\10",
192}], 1) = 192
gettimeofday({1144559220, 448943}, NULL) = 0
select(256, [1 3 4 9 10 11 12 13 14 15 17 18], NULL, NULL, {117, 260000}) = 1
(in [17], left {117, 260000})
gettimeofday({1144559220, 449034}, NULL) = 0
read(17,
"8\1\5\0\361\0\0\1\f\0\0\0\377\377\377\0\0\0\0\0F\1\5\0006\1\0\1\361\0\0\1\0\0\0\0\324\0\324\0008m\4\0\361\0\0\1\10\0\0\0\231\231\231\0B\0\v\0006\1\0\1\361\0\0\1\0\0\0\0\323\0\0\0\0\0\0\0\0\0\323\0\0\0\1\0\322\0\1\0\1\0\0\0\1\0\322\0008\0\5\0\361\0\0\1\f\0\0\0\231\231\231\0\377\377\377\0B\0\v\0006\1\0\1\361\0\0\1\323\0\0\0\323\0\323\0\0\0\323\0\323\0\323\0\322\0\1\0\322\0\323\0\1\0\322\0\323\0\322\0008\0\5\0\361\0\0\1\f\0\0\0\377\377\377\0\0\0\0\0F\0\5\0006\1\0\1\361\0\0\1\4\0\4\0\314\0\314\0008f\5"...,
4096) = 372
gettimeofday({1144559220, 449264}, NULL) = 0
gettimeofday({1144559220, 449290}, NULL) = 0
gettimeofday({1144559220, 449315}, NULL) = 0
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
rt_sigaction(SIGSEGV, {SIG_IGN}, {0x8089a20, [SEGV], SA_RESTART}, 8) = 0
write(2, "\n   *** If unresolved symbols were reported above, they might not\n 
 *** be the reason for the server aborting.\n", 112) = 112
write(0, "\n   *** If unresolved symbols were reported above, they might not\n 
 *** be the reason for the server aborting.\n", 112) = 112
write(2, "\nBacktrace:\n", 12)          = 12
write(0, "\nBacktrace:\n", 12)          = 12
write(2, "0: /usr/X11R6/bin/Xorg.real(xf86SigHandler+0x88) [0x8089aa8]\n", 61) = 61
write(0, "0: /usr/X11R6/bin/Xorg.real(xf86SigHandler+0x88) [0x8089aa8]\n", 61) = 61
write(2, "1: [0xffffe420]\n", 16)       = 16
write(0, "1: [0xffffe420]\n", 16)       = 16
write(2, "2: /usr/X11R6/bin/Xorg.real(miRegionDestroy+0xa) [0x81a3b3a]\n", 61) = 61
write(0, "2: /usr/X11R6/bin/Xorg.real(miRegionDestroy+0xa) [0x81a3b3a]\n", 61) = 61
write(2, "3: /usr/X11R6/bin/Xorg.real(miSetShape+0x2db) [0x81a349b]\n", 58) = 58
write(0, "3: /usr/X11R6/bin/Xorg.real(miSetShape+0x2db) [0x81a349b]\n", 58) = 58
write(2, "4: /usr/X11R6/bin/Xorg.real [0x817a354]\n", 40) = 40
write(0, "4: /usr/X11R6/bin/Xorg.real [0x817a354]\n", 40) = 40
write(2, "5: /usr/X11R6/bin/Xorg.real [0x817a94b]\n", 40) = 40
write(0, "5: /usr/X11R6/bin/Xorg.real [0x817a94b]\n", 40) = 40
write(2, "6: /usr/X11R6/bin/Xorg.real [0x817b047]\n", 40) = 40
write(0, "6: /usr/X11R6/bin/Xorg.real [0x817b047]\n", 40) = 40
write(2, "7: /usr/X11R6/bin/Xorg.real(Dispatch+0x15e) [0x80ca8ce]\n", 56) = 56
write(0, "7: /usr/X11R6/bin/Xorg.real(Dispatch+0x15e) [0x80ca8ce]\n", 56) = 56
write(2, "8: /usr/X11R6/bin/Xorg.real(main+0x407) [0x80d7aa7]\n", 52) = 52
write(0, "8: /usr/X11R6/bin/Xorg.real(main+0x407) [0x80d7aa7]\n", 52) = 52
write(2, "9: /lib/tls/libc.so.6(__libc_start_main+0xd0) [0xb7e2ae40]\n", 59) = 59
write(0, "9: /lib/tls/libc.so.6(__libc_start_main+0xd0) [0xb7e2ae40]\n", 59) = 59
write(2, "10: /usr/X11R6/bin/Xorg.real [0x8070301]\n", 41) = 41
write(0, "10: /usr/X11R6/bin/Xorg.real [0x8070301]\n", 41) = 41
write(2, "\nFatal server error:\n", 21) = 21
write(0, "\nFatal server error:\n", 21) = 21
write(2, "Caught signal 11.  Server aborting\n", 35) = 35
write(0, "Caught signal 11.  Server aborting\n", 35) = 35
write(2, "\n", 1)                       = 1
write(0, "\n", 1)                       = 1
write(2, "\nPlease consult the The X.Org Foundation support \n\t at
http://wiki.X.Org\n for help. \n", 85) = 85
write(0, "\nPlease consult the The X.Org Foundation support \n\t at
http://wiki.X.Org\n for help. \n", 85) = 85
write(2, "Please also check the log file at \"/var/log/Xorg.6.log\" for
additional information.\n", 84) = 84
write(0, "Please also check the log file at \"/var/log/Xorg.6.log\" for
additional information.\n", 84) = 84
write(2, "\n", 1)                       = 1
write(0, "\n", 1)                       = 1
unlink("/tmp/.X6-lock")                 = 0

[... 103 lines deleted ...]
Comment 1 Erik Andren 2006-04-09 20:41:39 UTC
Please post your xorg.conf and your xorg.log after the crash.
Also, if possible try to perform a real backtrace by remotely logging in to the
computer, attach gdb to the process and catch the error by writing using the gdb
command bt and post the results here. 
Comment 2 Erik Andren 2006-04-21 01:01:37 UTC
Ping to the bug submitter!
Comment 3 Erik Andren 2006-06-16 03:11:14 UTC
Closing this bug due to the lack of activity from the bug poster. 



Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.