Bug 746321 - [Sandybridge] Repeatable hang after "flip queue failed: Device or resource busy"
Summary: [Sandybridge] Repeatable hang after "flip queue failed: Device or resource busy"
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: xorg-x11-server
Version: 15
Hardware: Unspecified
OS: Unspecified
unspecified
high
Target Milestone: ---
Assignee: Adam Jackson
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard: [cat:crash]
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2011-10-14 18:37 UTC by Jason Tibbitts
Modified: 2018-04-11 10:23 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2012-02-22 21:56:59 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)
Xorg.0.log from the failure (42.65 KB, text/plain)
2011-10-14 18:37 UTC, Jason Tibbitts
no flags Details

Description Jason Tibbitts 2011-10-14 18:37:48 UTC
Created attachment 528259 [details]
Xorg.0.log from the failure

Description of problem:
I can repeatably "hang" the X server by displaying some of the fancier GL screensavers (glmatrix in particular) for a few minutes.  The mouse still moves and I can still switch VTs so it's not completely dead, but Ctrl-Alt-Backspace appears to cause a segfault.  Sometimes the display manager manages to restart the server when this happens, but once I was locked out completely, unable to switch back to a console and with no recourse save the reset button.

The log always shows:

[ 41375.799] (EE) intel(0): [DRI2] DRI2SwapComplete: bad drawable

and then a bit later:

[ 42600.557] (WW) intel(0): flip queue failed: Device or resource busy
[ 42600.558] (WW) intel(0): Page flip failed: Device or resource busy

ajax and I chatted a bit on IRC about this and he believes he found a refcounting issue.  Judging from other problem reports around the Internet, this also does not seem to be hardware/driver related as I see a few identical reports on Radeon cards.

Version-Release number of selected component (if applicable):
xorg-x11-server-Xorg-1.10.4-1.fc15.x86_64
xorg-x11-drv-intel-2.15.0-5.fc15.x86_64

Steps to reproduce:
Open up the KDE screensaver chooser, choose glmatrix and click test.  I found that I could make it happen pretty quickly if I switched around between a few of the more intensive ones.  I do not know if this happens outside of KDE.

I will attach the X log.  Note that I switched VTs a couple of times before hitting Ctrl-Alt-Backspace which caused the segfault.

Comment 1 Matěj Cepl 2011-10-15 21:18:20 UTC
Backtrace:
[ 71184.764] 0: /usr/bin/X (xorg_backtrace+0x2f) [0x45e84f]
[ 71185.665] 1: /usr/bin/X (0x400000+0x62ed6) [0x462ed6]
[ 71185.665] 2: /lib64/libpthread.so.0 (0x7fc919764000+0xeef0) [0x7fc919772ef0]
[ 71185.665] 3: /lib64/libc.so.6 (0x7fc91847e000+0x772c4) [0x7fc9184f52c4]
[ 71185.665] 4: /lib64/libc.so.6 (0x7fc91847e000+0x78274) [0x7fc9184f6274]
[ 71185.665] 5: /lib64/libc.so.6 (__libc_malloc+0x70) [0x7fc9184f8b00]
[ 71185.665] 6: /usr/bin/X (RegionRectAlloc+0x60) [0x448d10]
[ 71185.665] 7: /usr/bin/X (RegionAppend+0x103) [0x449293]
[ 71185.665] 8: /usr/bin/X (miValidateTree+0xe1) [0x513121]
[ 71185.665] 9: /usr/bin/X (UnmapWindow+0x20a) [0x45567a]
[ 71185.665] 10: /usr/bin/X (DeleteWindow+0x2d) [0x4556ed]
[ 71185.666] 11: /usr/bin/X (FreeClientResources+0xd5) [0x44c825]
[ 71185.666] 12: /usr/bin/X (CloseDownClient+0x5e) [0x42e26e]
[ 71185.666] 13: /usr/bin/X (0x400000+0x2ed1f) [0x42ed1f]
[ 71185.666] 14: /usr/bin/X (0x400000+0x22e1a) [0x422e1a]
[ 71185.666] 15: /lib64/libc.so.6 (__libc_start_main+0xed) [0x7fc91849f39d]
[ 71185.666] 16: /usr/bin/X (0x400000+0x23101) [0x423101]
[ 71185.666] Segmentation fault at address 0x18
[ 71185.666] 
Fatal server error:
[ 71185.666] Caught signal 11 (Segmentation fault). Server aborting

--------------------
---------------------------------
In function RegionRectAlloc:
(from frame 6: /usr/bin/X (RegionRectAlloc+0x60) [0x448d10])
341: 	n++;
342: 	pRgn->data = xallocData(n);
343: 	if (!pRgn->data)
344: 	    return RegionBreak (pRgn);
345: 	pRgn->data->numRects = 1;
346: 	*RegionBoxptr(pRgn) = pRgn->extents;
347:     }
348:     else if (!pRgn->data->size)
349:     {
350: 	pRgn->data = xallocData(n);
351: >>>>>>> 	if (!pRgn->data)
352: 	    return RegionBreak (pRgn);
353: 	pRgn->data->numRects = 0;
354:     }
355:     else
356:     {
357: 	if (n == 1)
358: 	{
359: 	    n = pRgn->data->numRects;
360: 	    if (n > 500) /* XXX pick numbers out of a hat */
361: 		n = 250;


Frame 7: /usr/bin/X (RegionAppend+0x103) [0x449293]
	/usr/src/debug/xorg-server-1.10.4/dix/region.c:1000
	RegionAppend
Frame 8: /usr/bin/X (miValidateTree+0xe1) [0x513121]
	/usr/src/debug/xorg-server-1.10.4/mi/mivaltree.c:687
	miValidateTree
Frame 9: /usr/bin/X (UnmapWindow+0x20a) [0x45567a]
	/usr/src/debug/xorg-server-1.10.4/dix/window.c:2873
	UnmapWindow
Frame 10: /usr/bin/X (DeleteWindow+0x2d) [0x4556ed]
	/usr/src/debug/xorg-server-1.10.4/dix/window.c:856
	CrushTree
Frame 11: /usr/bin/X (FreeClientResources+0xd5) [0x44c825]
	/usr/src/debug/xorg-server-1.10.4/dix/resource.c:855
	FreeClientResources
Frame 12: /usr/bin/X (CloseDownClient+0x5e) [0x42e26e]
	/usr/src/debug/xorg-server-1.10.4/dix/dispatch.c:3465
	CloseDownClient
Frame 13: /usr/bin/X (0x400000+0x2ed1f) [0x42ed1f]
	/usr/src/debug/xorg-server-1.10.4/dix/dispatch.c:3480
	KillAllClients
Frame 14: /usr/bin/X (0x400000+0x22e1a) [0x422e1a]
	/usr/src/debug/xorg-server-1.10.4/dix/main.c:296
	main

Comment 2 Jason Tibbitts 2012-02-22 21:56:59 UTC
I haven't been able to reproduce this since moving to F16 and turning my fancy screensaver back on, so I suppose I'll just close this out.


Note You need to log in before you can comment on or make changes to this bug.