Bug 1638910

Summary: anaconda 30.5-1.fc30 crashes in activate_keyboard
Product: [Fedora] Fedora Reporter: Kevin Fenzi <kevin>
Component: dbusAssignee: Colin Walters <walters>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: amigadave, anaconda-maint-list, awilliam, dustymabe, john.j5live, jonathan, kellin, lpoetter, mclasen, rhughes, robatino, rstrode, sandmann, vanmeeuwen+fedora, vponcova, walters, wwoods, zbyszek
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard: AcceptedBlocker
Fixed In Version: dbus-1.12.10-4.fc30 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-10-22 07:39:54 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:
Bug Depends On:    
Bug Blocks: 1574713    

Description Kevin Fenzi 2018-10-12 19:10:04 UTC
Rawhide composes have been failing the last few days, due to the Cloud base image failing. 

https://koji.fedoraproject.org/koji/taskinfo?taskID=30189358

and looking at the screenshot...

Traceback (most recent call last):
  File "/sbin/anaconda", line 543, in <module>
    keyboard_activate_keyboard(localization_proxy)
...
gi.repository.Glib.Error: g-io-error-quark: Could not connect: No such file or directory

This may well be some other component changing under anaconda, but I am not sure what it is. Please move to that component if it's obvious...

Comment 1 Adam Williamson 2018-10-12 19:12:28 UTC
Automatic F30 blocker, as it completely prevents the compose from happening.

Comment 2 Kevin Fenzi 2018-10-14 04:11:03 UTC
So, looking at everything that changed on the day when this started, it looks like it might be caused by dbus.

I untagged dbus-1.12.10-3 and the Cloud base image composed.
(Although the entire rawhide compose failed for another reason)

I'm still not sure _why_ the dbus update caused this. It adds:

+%triggerpostun common -- dbus-common < 1:1.12.10-4
+systemctl --no-reload preset dbus.socket &>/dev/null || :
+systemctl --no-reload --global preset dbus.socket &>/dev/null || :
+
+%triggerpostun daemon -- dbus-daemon < 1:1.12.10-4
+systemctl --no-reload preset dbus-daemon.service &>/dev/null || :
+systemctl --no-reload --global preset dbus-daemon.service &>/dev/null || :

Comment 3 Adam Williamson 2018-10-14 16:11:51 UTC
Does that have the effect of actually implementing the dbus -> dbus-broker switch, and anaconda turns out not to work with dbus-broker? ...or something?

Comment 4 Kevin Fenzi 2018-10-14 23:41:18 UTC
No, the intent of that change was to make sure upgraded users get the new units enabled for the broker. I am not sure how preset calls might mess up an install. ;( 

Adding zbyszek for any systemd thoughts...

Comment 5 Zbigniew Jędrzejewski-Szmek 2018-10-15 11:52:11 UTC
dbus.socket, dbus-daemon.service are enabled in presets. So if those 'systemctl presets' commands were executed, both units should be (still) enabled afterwards. That said, during a compose, I don't think *anything* should be ever uninstalled, so those %triggerpost*un* lines should never fire.

So the error must be somewhere different I think.

Comment 6 Zbigniew Jędrzejewski-Szmek 2018-10-15 12:51:11 UTC
The problem is that dbus-common which contains the unit files in question has no dependency on systemd (see https://fedoraproject.org/wiki/Packaging:Scriptlets#Scriptlets for how this should look). Hence, during the initial installation, dbus-daemon is installed before systemd, and the preset call done from the dbus-daemon scriptlet fails silently.

The right solution is either to add '%{?systemd_requires}' or '%{?systemd_ordering}' to the dbus-daemon.

Note that in F30, the unit files have been moved to dbus-common, so those macros should be added to that package instead.

Comment 7 Zbigniew Jędrzejewski-Szmek 2018-10-15 12:54:21 UTC
Oh, and btw, this is fairly easy to test:
$ koji download-build -a noarch -a x86_64 1140329                                         
$ sudo dnf -y --setopt=install_weak_deps=False --releasever=29 --installroot=/tmp/f29test2 --disablerepo='*' --enablerepo=fedora --enablerepo=updates install dnf fedora-release dbus-common-1.12.10-2.fc29.noarch.rpm dbus-libs-1.12.10-2.fc29.x86_64.rpm dbus-daemon-1.12.10-2.fc29.x86_64.rpm dbus-1.12.10-2.fc29.x86_64.rpm dbus-tools-1.12.10-2.fc29.x86_64.rpm
$ sudo systemd-nspawn -D /tmp/f29test2
# systemctl is-enabled dbus.socket

Comment 8 David King 2018-10-19 07:10:52 UTC
https://src.fedoraproject.org/rpms/dbus/pull-request/8 has a fix for this (and another bif of fallout from the dbus-broker changes).

Comment 9 Fedora Update System 2018-10-22 08:27:55 UTC
dbus-1.12.10-4.fc29 has been submitted as an update to Fedora 29. https://bodhi.fedoraproject.org/updates/FEDORA-2018-1eff1712c2

Comment 10 Fedora Update System 2018-10-22 19:23:55 UTC
dbus-1.12.10-4.fc29 has been pushed to the Fedora 29 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2018-1eff1712c2

Comment 11 Fedora Update System 2018-10-26 07:12:58 UTC
dbus-1.12.10-5.fc29 has been submitted as an update to Fedora 29. https://bodhi.fedoraproject.org/updates/FEDORA-2018-a232773e25