Bug 10417 - driFlipRenderbuffers() called with NULL fb argument -> CRASH
Summary: driFlipRenderbuffers() called with NULL fb argument -> CRASH
Status: RESOLVED FIXED
Alias: None
Product: Mesa
Classification: Unclassified
Component: Drivers/DRI/r300 (show other bugs)
Version: git
Hardware: All Linux (All)
: medium major
Assignee: Default DRI bug account
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-03-26 22:56 UTC by Bernie Innocenti
Modified: 2009-08-24 12:26 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments

Description Bernie Innocenti 2007-03-26 22:56:16 UTC
When I quit a hung compiz instance of compiz
the X server segfaults like this:

Backtrace:
0: X(xf86SigHandler+0x6a) [0x47f9c8]
1: /lib64/libc.so.6 [0x3001630510]
2: /usr/local/fdo/lib64/modules/dri/r300_dri.so(driFlipRenderbuffers+0) [0x2aaabdad52c0]
3: /usr/local/fdo/lib64/modules/dri/r300_dri.so(radeonGetLock+0x349) [0x2aaabdad7e89]
4: /usr/local/fdo/lib64/modules/dri/r300_dri.so(r300FlushCmdBuf+0x67) [0x2aaabdae02b7]
5: /usr/local/fdo/lib64/modules/dri/r300_dri.so(r300DestroyContext+0x460) [0x2aaabdadd900]
6: /usr/local/fdo/lib64/modules/dri/r300_dri.so [0x2aaabdad1f2a]
7: /usr/local/fdo/lib64/xorg/modules/extensions//libglx.so [0x2aaaab1f9bb9]
8: /usr/local/fdo/lib64/xorg/modules/extensions//libglx.so(__glXFreeContext+0x69) [0x2aaaab1cd0f3]
9: /usr/local/fdo/lib64/xorg/modules/extensions//libglx.so [0x2aaaab1cd423]
10: X(FreeClientResources+0x68) [0x43139c]
11: X(CloseDownClient+0x1a8) [0x448651]
12: X(Dispatch+0x384) [0x448d3e]
13: X(main+0x468) [0x4304fa]
14: /lib64/libc.so.6(__libc_start_main+0xf4) [0x300161d9c4]
15: X(FontFileCompleteXLFD+0x219) [0x42f859]

Applying the following patch, I see the
error message. Not a proposed fix, it's
just to show what's going on.

diff --git a/src/mesa/drivers/dri/r300/radeon_lock.c b/src/mesa/drivers/dri/r300/radeon_lock.c
index 1a2dfca..cacc383 100644
--- a/src/mesa/drivers/dri/r300/radeon_lock.c
+++ b/src/mesa/drivers/dri/r300/radeon_lock.c
@@ -56,7 +56,10 @@ static void radeonUpdatePageFlipping(radeonContextPtr radeon)

        radeon->doPageFlip = radeon->sarea->pfState;
         if (!radeon->doPageFlip) {
-           driFlipRenderbuffers(radeon->glCtx->WinSysDrawBuffer, GL_FALSE);
+               if (radeon->glCtx->WinSysDrawBuffer)
+                       driFlipRenderbuffers(radeon->glCtx->WinSysDrawBuffer, GL_FALSE);
+               else
+                       fprintf(stderr, "Flipping with NULL WinSysDrawBuffer");
         }

        use_back = (radeon->glCtx->DrawBuffer->_ColorDrawBufferMask[0] == BUFFER_BIT_BACK_LEFT);
Comment 1 Michel Dänzer 2007-03-26 23:45:47 UTC
Fixed in git.
Comment 2 Adam Jackson 2009-08-24 12:26:18 UTC
Mass version move, cvs -> git


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.