Bug 37419 - at server shutdown: dixGetPrivateAddr: Assertion `key->initialized' failed
Summary: at server shutdown: dixGetPrivateAddr: Assertion `key->initialized' failed
Status: RESOLVED FIXED
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/Radeon (show other bugs)
Version: 7.6 (2010.12)
Hardware: x86-64 (AMD64) Linux (All)
: medium critical
Assignee: xf86-video-ati maintainers
QA Contact: Xorg Project Team
URL:
Whiteboard:
Keywords: patch
Depends on:
Blocks:
 
Reported: 2011-05-20 13:03 UTC by Yann Dirson
Modified: 2011-09-29 00:29 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments
X log from gdm (1.19 KB, text/plain)
2011-05-20 13:03 UTC, Yann Dirson
no flags Details
Full Xorg.log (37.93 KB, text/plain)
2011-05-20 13:07 UTC, Yann Dirson
no flags Details
Kernel DRM logs (2.65 KB, text/plain)
2011-05-22 12:58 UTC, Yann Dirson
no flags Details
Only call radeon_dri2_close_screen() if DRI2 was enabled. (919 bytes, patch)
2011-05-23 01:39 UTC, Michel Dänzer
no flags Details | Splinter Review

Description Yann Dirson 2011-05-20 13:03:57 UTC
Created attachment 46963 [details]
X log from gdm

On a Debian/testing box with a RS880 [Radeon HD 4250], when one user closes his session, the screen claims video signal has disapeared.  Xorg.*.log show absolutely nothing wrong, but gdm's X log does show this assert, see attachement.

Seems pretty much reproducible, although I can't tell when it first happenned, so it's not easy to track the regression.  I can do more tests if required.
Comment 1 Yann Dirson 2011-05-20 13:07:43 UTC
Created attachment 46964 [details]
Full Xorg.log

And here is the full log for reference
Comment 2 Michel Dänzer 2011-05-21 09:37:11 UTC
Does this still happen with xserver 1.10.x?

Can you get a full gdb backtrace from the assertion failure?
Comment 3 Yann Dirson 2011-05-22 07:16:11 UTC
(In reply to comment #2)
> Does this still happen with xserver 1.10.x?

Yes, 1.10.1-2 from recent wheezy has the same problem.

> Can you get a full gdb backtrace from the assertion failure?

#1  0x00007f29b2c0d650 in abort () at abort.c:92
#2  0x00007f29b2c03581 in __assert_fail (
    assertion=0x7f29b0e251dd "key->initialized", file=<value optimized out>,
    line=116, function=0x7f29b0e253a0 "dixGetPrivateAddr") at assert.c:81
#3  0x00007f29b0e2292b in dixGetPrivateAddr (pScreen=<value optimized out>)
    at ../../../../include/privates.h:116
#4  dixGetPrivate (pScreen=<value optimized out>)
    at ../../../../include/privates.h:131
#5  dixLookupPrivate (pScreen=<value optimized out>)
    at ../../../../include/privates.h:161
#6  DRI2GetScreen (pScreen=<value optimized out>)
    at ../../../../hw/xfree86/dri2/dri2.c:113
#7  0x00007f29b0e244f6 in DRI2CloseScreen (pScreen=0x25f9b80)
    at ../../../../hw/xfree86/dri2/dri2.c:1178
#8  0x00007f29b09e8556 in radeon_dri2_close_screen (pScreen=0x25f9b80)
    at ../../src/radeon_dri2.c:1296
#9  0x00007f29b09e8a90 in RADEONCloseScreen_KMS (scrnIndex=0,
    pScreen=0x25f9b80) at ../../src/radeon_kms.c:833
#10 0x00000000004a9bbb in CursorCloseScreen (index=0, pScreen=0x25f9b80)
    at ../../xfixes/cursor.c:191
#11 0x00000000005695cc in AnimCurCloseScreen (index=<value optimized out>,
    pScreen=<value optimized out>) at ../../render/animcur.c:106
#12 0x0000000000425897 in main (argc=9, argv=<value optimized out>,
    envp=<value optimized out>) at ../../dix/main.c:320
Comment 4 Yann Dirson 2011-05-22 12:58:07 UTC
Created attachment 47016 [details]
Kernel DRM logs

May be linked to this assert: the firmware could not be loaded, and some drm functionnality was not activated.  But maybe not linked: it looks like this particular firmware was never added to the official kernel (only to the linux-firmware git repo, did not even know about that one), so it it were the culprit, I would have expected more people to get this bug.  See eg. http://bugs.debian.org/565437
Comment 5 Michel Dänzer 2011-05-23 01:39:04 UTC
Created attachment 47027 [details] [review]
Only call radeon_dri2_close_screen() if DRI2 was enabled.

(In reply to comment #4)
> May be linked to this assert: the firmware could not be loaded, and some drm
> functionnality was not activated.

Well, installing the firmware will likely work around this problem, and you'll probably want to do it anyway for better overall performance.

But first, please verify that this X driver patch fixes the problem.
Comment 6 Yann Dirson 2011-05-23 13:17:43 UTC
(In reply to comment #5)
> Created an attachment (id=47027) [details]
> Only call radeon_dri2_close_screen() if DRI2 was enabled.
> 
> (In reply to comment #4)
> > May be linked to this assert: the firmware could not be loaded, and some drm
> > functionnality was not activated.
> 
> Well, installing the firmware will likely work around this problem, and you'll
> probably want to do it anyway for better overall performance.
> 
> But first, please verify that this X driver patch fixes the problem.

It works perfectly with that patch (let's note for the record that I have already installed the firmware, but not rebooted yet since then, and stat confirms no access to the firmware file since installation of the firmware-linux-nonfree package).
Comment 7 Yann Dirson 2011-09-28 10:25:24 UTC
Anything I can do to help getting this patch into master ?
Comment 8 Michel Dänzer 2011-09-29 00:29:22 UTC
I just pushed the fix last week, sorry it took so long.


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.