Red Hat Bugzilla – Bug 743260
gnome-shell works for root, not for normal users
Last modified: 2013-02-13 16:45:49 EST
Description of problem:
After upgrading from F15 using yum (preupgrade doesn't work with my system, it has raid1 boot) gnome shell ceased to work for non root users (including gdm).
When I run /usr/libexec/gnome-session-check-accelerated the return value is 1 for all users and 0 for root.
Version-Release number of selected component (if applicable):
I use stock nouveavu modules from above kernel
My video card from lspci is:
03:00.0 VGA compatible controller: nVidia Corporation G96 [Quadro FX 580] (rev a1)
I think I have the same problem after upgrading from F15 (using preupgrade). When logging in through GDM, it goes into fallback mode. When logging into the text console and running startx, GNOME Shell works fine. Doing a "gnome-shell --replace" after logging in with gdm also seems to work.
It looks like somehow the process to detect whether 3D acceleration is available is somehow not working through gdm. From /var/log/gdm/:0-greeter.log:
gnome-session: DEBUG(+): fill: *** Looking if /usr/share/gnome-session/sessions/gdm-shell.session is a valid session file
gnome-session: DEBUG(+): fill: *** Launching helper 'bash -c 'gnome-shell --help | grep -q gdm-mode && /usr/libexec/gnome-session-check-accelerated'' to know if session is runnable
gnome-session-is-accelerated: No hardware 3D support.
gnome-session-check-accelerated: Helper exited with code 256
gnome-session: WARNING: Session 'gdm-shell' runnable check failed: Exited with code 1
gnome-session: DEBUG(+): fill: *** Session is not runnable
gnome-session: DEBUG(+): fill: *** Getting session 'gdm-fallback'
I made a hacked version of gnome-session-check-accelerated-helper with some output added to see exactly why it was saying "no hardware 3D support" and found this:
gnome-session-is-accelerated: Blacklisted renderer
gnome-session-is-accelerated: Gallium 0.4 on llvmpipe
Since llvmpipe is blacklisted it bails out. But I don't know why it's getting llvmpipe since glxinfo from logging in shows the expected "Gallium 0.4 on NV94" renderer string. Maybe some kind of permissions problem?
It looks like the permissions on /dev/dri/card0 aren't being set to allow the gdm user to access the DRI device. My user account was a member of the video group, and if I remove that then I can't access DRI after logging in either.
Apparently ConsoleKit is supposed to do this, but for some reason it's not. On another F16 machine (originally installed as F15 then upgraded), it works. I'm not sure what the difference is.
Just for posterity, it turned out that the problem was that some of the PAM configuration was left over from a previous release, so pam_systemd wasn't invoked to trigger adding the correct permissions to allow the console user to access the DRI device. Re-symlinking the /etc/pam.d/*-rc files to the corresponding files without the -rc suffix again fixed the problem.
@Robert thanks for the pointer to pam! This was a real puzzle to me also and I went through exactly the same steps but got stuck at "who is meant to change the perms on /dev/dri/card0". (The reference to -rc confused me though; I expect you mean -ac.)
Just for even more posterity, the relevant line in /etc/pam.d/system-auth is:
session optional pam_systemd.so
(And then there should be a reference to pam_loginuid.so in /etc/pam.d/gdm-welcome.). My problem was I'd previously pointed system-auth to a customised file in order to apply lab policy on the cracklib options, so it didn't pick up this extra line on the upgrade.
I'm still finding this problem when upgrading from F15. As suggested above, I have copied the rpmnew and resymlinked the pam files with the -ac files. Still, it didn't work for me until I made myself member of video group. Clearly there is something else broken in my system
This message is a reminder that Fedora 16 is nearing its end of life.
Approximately 4 (four) weeks from now Fedora will stop maintaining
and issuing updates for Fedora 16. It is Fedora's policy to close all
bug reports from releases that are no longer maintained. At that time
this bug will be closed as WONTFIX if it remains open with a Fedora
'version' of '16'.
Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version'
to a later Fedora version prior to Fedora 16's end of life.
Bug Reporter: Thank you for reporting this issue and we are sorry that
we may not be able to fix it before Fedora 16 is end of life. If you
would still like to see this bug fixed and are able to reproduce it
against a later version of Fedora, you are encouraged to click on
"Clone This Bug" and open it against that version of Fedora.
Although we aim to fix as many bugs as possible during every release's
lifetime, sometimes those efforts are overtaken by events. Often a
more recent Fedora release includes newer upstream software that fixes
bugs or makes them obsolete.
The process we are following is described here:
Fedora 16 changed to end-of-life (EOL) status on 2013-02-12. Fedora 16 is
no longer maintained, which means that it will not receive any further
security or bug fix updates. As a result we are closing this bug.
If you can reproduce this bug against a currently maintained version of
Fedora please feel free to reopen this bug against that version.
Thank you for reporting this bug and we are sorry it could not be fixed.