Bug 1228752

Summary: Xorg fails to start after fedup upgrade from f21 to f22
Product: [Fedora] Fedora Reporter: Steeve McCauley <steeve.mccauley>
Component: systemdAssignee: X/OpenGL Maintenance List <xgl-maint>
Status: CLOSED EOL QA Contact:
Severity: high Docs Contact:
Priority: unspecified    
Version: 22CC: amlau, e, f_a_f12001, fche, hdegoede, johannbg, jsynacek, lnykryn, msekleta, redhat-bugzilla, sam.elstob, s, systemd-maint, zbyszek
Target Milestone: ---Keywords: Reopened
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-07-19 19:10:40 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
Xorg log when attempting to login from gdm greeter
none
diff of config file in question
none
Copy of /etc/dbus-1/system.d/org.freedesktop.login1.conf that was marked as changed by rpm -V none

Description Steeve McCauley 2015-06-05 15:29:49 UTC
Created attachment 1035350 [details]
Xorg log when attempting to login from gdm greeter

Description of problem:

After upgrading from Fedora 21 to 22 using fed up, I am no longer able to run X as a normal user.  I can run Xorg as root and have used lightdm to do so, but cannot login as a normal user using gdm.

Version-Release number of selected component (if applicable):


How reproducible:


Steps to Reproduce:
1.
2.
3.

Actual results:
Attempting to login with gdm fails and returns immediately to the gdm greeter

Expected results:
Start and X session for a non-root user

Additional info:

There are 3 errors (in the attached log) related to what look like permissions issues: 

[ 88143.498] (EE) systemd-logind: TakeControl failed: Rejected send message, 2 matched rules; type="method_call", sender=":1.654" (uid=1201 pid=3917 comm="/usr/libexec/Xorg vt3 -displayfd 3 -auth /run/user") interface="org.freedesktop.login1.Session" member="TakeControl" error name="(unset)" requested_reply="0" destination="org.freedesktop.login1" (uid=0 pid=729 comm="/usr/lib/systemd/systemd-logind ")

[ 88143.498] (II) xfree86: Adding drm device (/dev/dri/card0)
[ 88143.498] (EE) /dev/dri/card0: failed to set DRM interface version 1.4: Permission denied

[ 88143.503] (EE)
Fatal server error:
[ 88143.503] (EE) xf86OpenConsole: Cannot open virtual console 3 (Permission denied)
[ 88143.503] (EE)

Comment 1 Hans de Goede 2015-06-05 18:57:28 UTC
Hi.

This looks like it may be a selinux issue, try logging in to a text console as root (ctrl+alt+f3 should give you one) and then do "setenforce 0" and try again.

If that helps as root do:

touch /.autorelabel

And then reboot.

And see if that helps.

Regards,

Hans

Comment 2 Steeve McCauley 2015-06-08 01:21:26 UTC
Nope, not selinux, I had disabled selinux.

I did figure out what the problem was and it was related to the TakeControl method call in org.freedesktop.login1.conf which was missing in the version of the file installed on my updated system.

This file did not change, nor was an updated rpmnew version installed, after reinstalling systemd,

# dnf reinstall systemd

I noticed the TakeControl method was not referred to in this file, so I deleted the file and reinstalled systemd again.  The updated file does refer to TakeControl.

So it looks like there is a problem with the packaging of these configuration files not being updated when an existing version is found.

Comment 3 Steeve McCauley 2015-06-08 01:23:11 UTC
Changed compontent to systemd.

Comment 4 Steeve McCauley 2015-06-08 19:57:14 UTC
I went ahead and updated another one of my systems today that had been updated with fedup several times (f19->f20->f21->f22) but the correct systemd configuration file was installed as expected so everything worked perfectly.

Comment 5 Hans de Goede 2015-06-09 06:48:09 UTC
/etc/dbus-1/system.d/org.freedesktop.login1.conf is marked as a config file, so if for some reason you edited it on this one system (or marked it immutable) and then rpm will not replace it, I think that is the most likely explanation of what is going on here.

Comment 6 Steeve McCauley 2015-06-09 11:01:48 UTC
Pretty sure I have never edited this file or made it immutable.  Note that I did meet at least one other user who encountered this problem when I initially reported this issue here,

http://forums.fedoraforum.org/showthread.php?t=304847

And if the file were marked immutable I wouldn't have been able to remove it to delete or rename it without removing the immutable attribute.

If this config file had been edited shouldn't the package provide the upgrade version (org.freedesktop.login1.conf.rpmnew) when upgrading?

Comment 7 Steeve McCauley 2015-06-09 11:04:03 UTC
Created attachment 1036694 [details]
diff of config file in question

This is a diff of the config file from a backup to what was installed after deleting the file and reinstalling the systemd package.

Comment 8 Lennart Poettering 2015-06-17 22:59:49 UTC
We ship that file as normal file in the RPM. If something modified it outside of that, it wasn't us. Note sure what, but closing this here, as it it is not a systemd bug.

Comment 9 Steeve McCauley 2015-06-17 23:06:12 UTC
Seems strange to me that a configuration so integral to systemd functionning properly is not updated when the rpm is updated.  At this point I agree that it is not necessarily a systemd bug, but a packaging bug.

Comment 10 Sam Elstob 2015-09-08 09:06:20 UTC
I have just encountered this issue as well (mouse and keyboard not working in X)

# Symptoms

1. Upgraded from F21->F22 using Fedup
2. Upgrade was successful - X seemed to work
3. Ran the steps in https://fedoraproject.org/wiki/FedUp#Cleaning_Up_Post_Upgrade
4. Upon next reboot, mouse and keyboard not functioning at all in X

# Expected

Mouse and keyboard functioning in X

# Troubleshooting

1. Switching to a console works (ctrl-alt-f2)

2. Check the logs

journalctl -e _COMM=gdm-x-session

Sep 08 08:03:46 deben /usr/libexec/gdm-x-session[3493]: (II) config/udev: Adding input device Microsoft Microsoft 3-Button Mouse with IntelliEye(TM) (/dev/input/mouse0)
Sep 08 08:03:46 deben /usr/libexec/gdm-x-session[7686]: (II) No input driver specified, ignoring this device.
Sep 08 08:03:46 deben /usr/libexec/gdm-x-session[7686]: (II) This device may have been added with another device file.
Sep 08 08:03:46 deben /usr/libexec/gdm-x-session[3493]: (II) No input driver specified, ignoring this device.
Sep 08 08:03:46 deben /usr/libexec/gdm-x-session[3493]: (II) This device may have been added with another device file.
Sep 08 08:03:46 deben /usr/libexec/gdm-x-session[3493]: (II) config/udev: Adding input device Microsoft Microsoft 3-Button Mouse with IntelliEye(TM) (/dev/input/event5)
Sep 08 08:03:46 deben /usr/libexec/gdm-x-session[3493]: (**) Microsoft Microsoft 3-Button Mouse with IntelliEye(TM): Applying InputClass "evdev pointer catchall"
Sep 08 08:03:46 deben /usr/libexec/gdm-x-session[7686]: (II) config/udev: Adding input device Microsoft Comfort Curve Keyboard 3000 (/dev/input/event12)
Sep 08 08:03:46 deben /usr/libexec/gdm-x-session[7686]: (**) Microsoft Comfort Curve Keyboard 3000: Applying InputClass "evdev keyboard catchall"
Sep 08 08:03:46 deben /usr/libexec/gdm-x-session[7686]: (**) Microsoft Comfort Curve Keyboard 3000: Applying InputClass "system-setup-keyboard"
Sep 08 08:03:46 deben /usr/libexec/gdm-x-session[3493]: (EE) systemd-logind: failed to take device /dev/input/event5: Rejected send message, 2 matched rules; type="method_call", send
Sep 08 08:03:46 deben /usr/libexec/gdm-x-session[3493]: (II) Using input driver 'evdev' for 'Microsoft Microsoft 3-Button Mouse with IntelliEye(TM)'
Sep 08 08:03:46 deben /usr/libexec/gdm-x-session[3493]: (**) Microsoft Microsoft 3-Button Mouse with IntelliEye(TM): always reports core events
Sep 08 08:03:46 deben /usr/libexec/gdm-x-session[3493]: (**) evdev: Microsoft Microsoft 3-Button Mouse with IntelliEye(TM): Device: "/dev/input/event5"
Sep 08 08:03:46 deben /usr/libexec/gdm-x-session[3493]: (EE) evdev: Microsoft Microsoft 3-Button Mouse with IntelliEye(TM): Unable to open evdev device "/dev/input/event5".
Sep 08 08:03:46 deben /usr/libexec/gdm-x-session[3493]: (EE) PreInit returned 2 for "Microsoft Microsoft 3-Button Mouse with IntelliEye(TM)"
Sep 08 08:03:46 deben /usr/libexec/gdm-x-session[3493]: (II) UnloadModule: "evdev"
Sep 08 08:03:46 deben /usr/libexec/gdm-x-session[3493]: (II) config/udev: Adding input device Microsoft Comfort Curve Keyboard 3000 (/dev/input/event12)
Sep 08 08:03:46 deben /usr/libexec/gdm-x-session[3493]: (**) Microsoft Comfort Curve Keyboard 3000: Applying InputClass "evdev keyboard catchall"
Sep 08 08:03:46 deben /usr/libexec/gdm-x-session[3493]: (**) Microsoft Comfort Curve Keyboard 3000: Applying InputClass "system-setup-keyboard"
Sep 08 08:03:46 deben /usr/libexec/gdm-x-session[3493]: (EE) systemd-logind: failed to take device /dev/input/event12: Rejected send message, 2 matched rules; type="method_call", sen
Sep 08 08:03:46 deben /usr/libexec/gdm-x-session[3493]: (II) Using input driver 'evdev' for 'Microsoft Comfort Curve Keyboard 3000'
Sep 08 08:03:46 deben /usr/libexec/gdm-x-session[3493]: (**) Microsoft Comfort Curve Keyboard 3000: always reports core events
Sep 08 08:03:46 deben /usr/libexec/gdm-x-session[3493]: (**) evdev: Microsoft Comfort Curve Keyboard 3000: Device: "/dev/input/event12"
Sep 08 08:03:46 deben /usr/libexec/gdm-x-session[3493]: (EE) evdev: Microsoft Comfort Curve Keyboard 3000: Unable to open evdev device "/dev/input/event12".
Sep 08 08:03:46 deben /usr/libexec/gdm-x-session[3493]: (EE) PreInit returned 2 for "Microsoft Comfort Curve Keyboard 3000"
Sep 08 08:03:46 deben /usr/libexec/gdm-x-session[3493]: (II) UnloadModule: "evdev"
Sep 08 08:03:46 deben /usr/libexec/gdm-x-session[7686]: (EE) systemd-logind: failed to take device /dev/input/event12: Rejected send message, 2 matched rules; type="method_call", sen
Sep 08 08:03:46 deben /usr/libexec/gdm-x-session[7686]: (II) Using input driver 'evdev' for 'Microsoft Comfort Curve Keyboard 3000'
Sep 08 08:03:46 deben /usr/libexec/gdm-x-session[7686]: (**) Microsoft Comfort Curve Keyboard 3000: always reports core events
Sep 08 08:03:46 deben /usr/libexec/gdm-x-session[7686]: (**) evdev: Microsoft Comfort Curve Keyboard 3000: Device: "/dev/input/event12"
Sep 08 08:03:46 deben /usr/libexec/gdm-x-session[7686]: (EE) evdev: Microsoft Comfort Curve Keyboard 3000: Unable to open evdev device "/dev/input/event12".
Sep 08 08:03:46 deben /usr/libexec/gdm-x-session[7686]: (EE) PreInit returned 2 for "Microsoft Comfort Curve Keyboard 3000"
Sep 08 08:03:46 deben /usr/libexec/gdm-x-session[7686]: (II) UnloadModule: "evdev"
Sep 08 08:03:46 deben /usr/libexec/gdm-x-session[7686]: (II) config/udev: Adding input device Microsoft Microsoft 3-Button Mouse with IntelliEye(TM) (/dev/input/event5)
Sep 08 08:03:46 deben /usr/libexec/gdm-x-session[7686]: (**) Microsoft Microsoft 3-Button Mouse with IntelliEye(TM): Applying InputClass "evdev pointer catchall"
Sep 08 08:03:46 deben /usr/libexec/gdm-x-session[7686]: (EE) systemd-logind: failed to take device /dev/input/event5: Rejected send message, 2 matched rules; type="method_call", send
Sep 08 08:03:46 deben /usr/libexec/gdm-x-session[7686]: (II) Using input driver 'evdev' for 'Microsoft Microsoft 3-Button Mouse with IntelliEye(TM)'
Sep 08 08:03:46 deben /usr/libexec/gdm-x-session[7686]: (**) Microsoft Microsoft 3-Button Mouse with IntelliEye(TM): always reports core events
Sep 08 08:03:46 deben /usr/libexec/gdm-x-session[7686]: (**) evdev: Microsoft Microsoft 3-Button Mouse with IntelliEye(TM): Device: "/dev/input/event5"
Sep 08 08:03:46 deben /usr/libexec/gdm-x-session[7686]: (EE) evdev: Microsoft Microsoft 3-Button Mouse with IntelliEye(TM): Unable to open evdev device "/dev/input/event5".
Sep 08 08:03:46 deben /usr/libexec/gdm-x-session[7686]: (EE) PreInit returned 2 for "Microsoft Microsoft 3-Button Mouse with IntelliEye(TM)"
Sep 08 08:03:46 deben /usr/libexec/gdm-x-session[7686]: (II) UnloadModule: "evdev"
Sep 08 08:03:46 deben /usr/libexec/gdm-x-session[3493]: (II) config/udev: Adding input device Microsoft Comfort Curve Keyboard 3000 (/dev/input/event13)
Sep 08 08:03:46 deben /usr/libexec/gdm-x-session[3493]: (**) Microsoft Comfort Curve Keyboard 3000: Applying InputClass "evdev keyboard catchall"
Sep 08 08:03:46 deben /usr/libexec/gdm-x-session[3493]: (**) Microsoft Comfort Curve Keyboard 3000: Applying InputClass "system-setup-keyboard"
Sep 08 08:03:46 deben /usr/libexec/gdm-x-session[3493]: (EE) systemd-logind: failed to take device /dev/input/event13: Rejected send message, 2 matched rules; type="method_call", sen
Sep 08 08:03:46 deben /usr/libexec/gdm-x-session[3493]: (II) Using input driver 'evdev' for 'Microsoft Comfort Curve Keyboard 3000'
Sep 08 08:03:46 deben /usr/libexec/gdm-x-session[3493]: (**) Microsoft Comfort Curve Keyboard 3000: always reports core events

3. Found this bugzilla by googling "systemd-logind failed to take device rejected send message"

4. Checked the integrity of systemd

rpm -qVf /etc/dbus-1/system.d/org.freedesktop.login1.conf

This showed that the above file had been modified.  Unfortunately I have lost the output of the verify command (because I was in the console trying to fix my system) but I have attached the copy of the file.

Tried "yum reinstall systemd" but this continued to show the file as modified

# Workaround:

mv /etc/dbus-1/system.d/org.freedesktop.login1.conf /etc/dbus-1/system.d/org.freedesktop.login1.conf.old
yum reinstall systemd
rpm -qVf /etc/dbus-1/system.d/org.freedesktop.login1.conf
# File has not been modified
# Restart X
init 5

Result Mouse and Keyboard now working

# Thoughts

I ran sudo rpmconf -a yesterday as suggested by https://fedoraproject.org/wiki/FedUp#Cleaning_Up_Post_Upgrade

Is it possible that /etc/dbus-1/system.d/org.freedesktop.login1.conf is marked as a config file, perhaps from a previous Fedora release?

Note - this system has been upgraded using Fedup through at least 3-4 Fedora releases

Comment 11 Sam Elstob 2015-09-08 09:11:05 UTC
Created attachment 1071257 [details]
Copy of /etc/dbus-1/system.d/org.freedesktop.login1.conf that was marked as changed by rpm -V

Comment 12 Steeve McCauley 2015-09-08 11:18:29 UTC
I downloaded the src.rpm and verified that these files are packaged as config files, as was suggested in comment #8, so to me it's pretty obvious that these files are not shipped as normal files.  IMO this is a bug, from rpmbuild/SPECS/systemd.spec,

%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.systemd1.conf
%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.hostname1.conf
%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.login1.conf
%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.locale1.conf
%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.timedate1.conf
%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.machine1.conf
%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.resolve1.conf
%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.import1.conf
%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.network1.conf
%config(noreplace) %{_sysconfdir}/systemd/system.conf
%config(noreplace) %{_sysconfdir}/systemd/user.conf
%config(noreplace) %{_sysconfdir}/systemd/logind.conf
%config(noreplace) %{_sysconfdir}/systemd/journald.conf
%config(noreplace) %{_sysconfdir}/systemd/bootchart.conf
%config(noreplace) %{_sysconfdir}/systemd/resolved.conf
%config(noreplace) %{_sysconfdir}/systemd/timesyncd.conf
%config(noreplace) %{_sysconfdir}/systemd/coredump.conf
%config(noreplace) %{_sysconfdir}/udev/udev.conf
%config(noreplace) %{_sysconfdir}/yum/protected.d/systemd.conf
%config(noreplace) %{_sysconfdir}/pam.d/systemd-user

these files are integral to normal system functionning.

Comment 13 e 2015-10-20 12:02:27 UTC
This bug needs attention.

I just upgraded using Fedup from F21 and was left with an unusable system. It took a while to find this.

Yes, it's no systemd pe se, but the packaging of it.

Comment 14 Steeve McCauley 2015-10-20 12:10:37 UTC
Emmanuel, maybe you could try re-opening another bug.  This one will no doubt never be attended to since someone has decided that it is not a bug (which it most certainly is).

Comment 15 Zbigniew Jędrzejewski-Szmek 2015-10-21 00:38:12 UTC
(In reply to Steeve McCauley from comment #14)
> Emmanuel, maybe you could try re-opening another bug.  This one will no
> doubt never be attended to since someone has decided that it is not a bug
> (which it most certainly is).
Please don't suggest duplicating bugs to get more attention. We already have too many open bugs to deal with.

I guess that the file from comment #11 may be coming from one of the systemd-44 rpms. It is closest to v44-4669-gd889a2069a in systemd upstream git, but not identical. Do you have any idea where your version of this file could be from?

The file is a %config(noreplace) file, and that is how it should be, it's a configuration file after all.

I guess we could add a post-install scriplet which renames the .rpmnew file over the old one if it matches the checksum... like in http://pkgs.fedoraproject.org/cgit/java-1.8.0-openjdk.git/tree/java-1.8.0-openjdk.spec#n170.

Comment 16 f_a_f12001 2016-01-01 15:44:35 UTC
 Sam Elstob,
Thank you very much for the detailed explanation and for the fix, I had the same issue as you and your fix worked perfectly.
Also I upgraded this Fedora desktop using yum before through at least 3-4 Fedora releases, when I reached Fedora 22 that issue happened for the first time.

Comment 17 Fedora End Of Life 2016-07-19 19:10:40 UTC
Fedora 22 changed to end-of-life (EOL) status on 2016-07-19. Fedora 22 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. If you
are unable to reopen this bug, please file a new report against the
current release. If you experience problems, please add a comment to this
bug.

Thank you for reporting this bug and we are sorry it could not be fixed.