Bug 1241759

Summary: polkitd: undefined symbol: polkit_system_bus_name_get_user_sync
Product: [Fedora] Fedora Reporter: Dominik 'Rathann' Mierzejewski <dominik>
Component: polkitAssignee: Miloslav Trmač <mitr>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 22CC: dominik, luca.cavalli, mitr, mzdunek
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: polkit-0.113-4.fc22 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-07-21 08:20:28 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:

Description Dominik 'Rathann' Mierzejewski 2015-07-10 04:04:40 UTC
Description of problem:
After dnf upgrade, polkit.service fails to start. The following errors can be seen in the logs:
Jul 10 05:42:22 sakura.greysector.net systemd[1]: Starting Authorization Manager...
Jul 10 05:42:22 sakura.greysector.net polkitd[2437]: /usr/lib/polkit-1/polkitd: symbol lookup error: /usr/lib/polkit-1/polkitd: undefined symbol: polkit_system_bus_name_get_user_sync
Jul 10 05:42:22 sakura.greysector.net systemd[1]: polkit.service: main process exited, code=exited, status=127/n/a
Jul 10 05:42:22 sakura.greysector.net systemd[1]: Failed to start Authorization Manager.
Jul 10 05:42:22 sakura.greysector.net systemd[1]: Unit polkit.service entered failed state.
Jul 10 05:42:22 sakura.greysector.net systemd[1]: polkit.service failed.

Version-Release number of selected component (if applicable):
polkit-0.113-1.fc22.x86_64
polkit-libs-0.113-1.fc22.x86_64

Steps to Reproduce:
1. Start with polkit and polkit-libs 0.112-9.fc22 installed.
2. dnf upgrade polkit
3. reboot

Actual results:
polkit.service fails to start and there are lengthy delays upon boot and login due to systemd trying to launch polkit.

Expected results:
Successful startup.

Additional info:
This is due to ABI break in polkit-libs (/usr/lib64/libpolkit-gobject-1.so.0.0.0). Newer polkitd uses this symbol (polkit_system_bus_name_get_user_sync) and there's no strict dependency on polkit-libs, so it's possible to end up with
polkit-0.113-1.fc22.x86_64 and polkit-libs-0.112-9.fc22.x86_64 installed.

Also, please check the output of rpmsodiff:

$ rpmsodiff polkit-libs-0.112-9.fc22.x86_64.rpm polkit-libs-0.113-1.fc22.x86_64.rpm 
	common sonames:
libpolkit-agent-1.so.0	/usr/lib64/libpolkit-agent-1.so.0.0.0	/usr/lib64/libpolkit-agent-1.so.0.0.0
libpolkit-gobject-1.so.0	/usr/lib64/libpolkit-gobject-1.so.0.0.0	/usr/lib64/libpolkit-gobject-1.so.0.0.0

libpolkit-agent-1.so.0 definitions unchanged

--- polkit-libs-0.112-9.fc22/libpolkit-gobject-1.so.0	2015-07-10 06:02:41.989361708 +0200
+++ polkit-libs-0.113-1.fc22/libpolkit-gobject-1.so.0	2015-07-10 06:03:18.314706878 +0200
@@ -101,2 +101,3 @@
 polkit_system_bus_name_get_type	T
+polkit_system_bus_name_get_user_sync	T
 polkit_system_bus_name_new	T

	1 symbols added
T polkit_system_bus_name_get_user_sync

# template for libpolkit-gobject-1.so.0 version script
POLKIT_0.113 {
    global:
	polkit_system_bus_name_get_user_sync;
};

vim:ft=diff

Comment 1 Miloslav Trmač 2015-07-10 16:46:43 UTC
Thanks for your report.

You are right that a strict dependency is missing, and I will add it.

AFAICS this can only be reproduced by explicitly running (dnf update polkit); not the usual (dnf update).  Is there any other way to trigger this, or indeed a reason to run (dnf update polkit) in particular?

Comment 2 Dominik 'Rathann' Mierzejewski 2015-07-10 17:00:38 UTC
"dnf update polkit" is the only way to reproduce. I was looking at security updates from updates-testing and hand-picked a few packages to update and that's how I ended up running "dnf update polkit".

Comment 3 Miloslav Trmač 2015-07-10 17:17:57 UTC
OK, I shouldn’t be making it difficult to test polkit updates ☺

For upgrade path reasons it is also desirable to bump the F22 polkit, so I will prepare an update today.

Comment 4 Fedora Update System 2015-07-10 17:28:45 UTC
polkit-0.113-2.fc22 has been submitted as an update for Fedora 22.
https://admin.fedoraproject.org/updates/polkit-0.113-2.fc22

Comment 5 Fedora Update System 2015-07-13 19:20:17 UTC
Package polkit-0.113-2.fc22:
* should fix your issue,
* was pushed to the Fedora 22 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing polkit-0.113-2.fc22'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-2015-11486/polkit-0.113-2.fc22
then log in and leave karma (feedback).

Comment 6 Luca Cavalli 2015-07-14 13:49:47 UTC
Still not able to upgrade using the suggested command (replaced yum with dnf):

$ su -c 'dnf update --enablerepo=updates-testing polkit-0.113-2.fc22'
Password: 
Last metadata expiration check performed 0:03:39 ago on Tue Jul 14 15:44:58 2015.
Dependencies resolved.
================================================================================
 Package            Arch         Version            Repository             Size
================================================================================
Upgrading:
 polkit             x86_64       0.113-2.fc22       updates-testing       127 k
 polkit-devel       x86_64       0.113-2.fc22       updates-testing        46 k
 polkit-docs        noarch       0.113-2.fc22       updates-testing       259 k
 polkit-libs        x86_64       0.113-2.fc22       updates-testing        70 k

Transaction Summary
================================================================================
Upgrade  4 Packages

Total download size: 501 k
Is this ok [y/N]: y
Downloading Packages:
(1/4): polkit-devel-0.112-9.fc22_0.113-2.fc22.x  32 kB/s |  20 kB     00:00    
(2/4): polkit-libs-0.113-2.fc22.x86_64.rpm      100 kB/s |  70 kB     00:00    
(3/4): polkit-0.113-2.fc22.x86_64.rpm           103 kB/s | 127 kB     00:01    
(4/4): polkit-docs-0.112-9.fc22_0.113-2.fc22.no  43 kB/s |  28 kB     00:00    
[DRPM] polkit-devel-0.112-9.fc22_0.113-2.fc22.x86_64.drpm: done                
[DRPM] polkit-docs-0.112-9.fc22_0.113-2.fc22.noarch.drpm: done                 
--------------------------------------------------------------------------------
Total                                            89 kB/s | 244 kB     00:02     
Delta RPMs reduced 0.5 MB of updates to 0.2 MB (51.1% saved)
Running transaction check
Transaction check succeeded.
Running transaction test
Error: Transaction check error:
  file /usr/share/doc/polkit/NEWS from install of polkit-0.113-2.fc22.x86_64 conflicts with file from package polkit-0.112-7.fc21.1.i686
  file /usr/share/doc/polkit/README from install of polkit-0.113-2.fc22.x86_64 conflicts with file from package polkit-0.112-7.fc21.1.i686
  file /usr/share/man/man1/pkexec.1.gz from install of polkit-0.113-2.fc22.x86_64 conflicts with file from package polkit-0.112-7.fc21.1.i686

Error Summary
-------------

Comment 7 Miloslav Trmač 2015-07-14 21:00:39 UTC
Luca, that (with an .fc21 package still installed) is a separate issue, #1243004. I will push a new update for that one as well.

Comment 8 Fedora Update System 2015-07-14 21:35:54 UTC
polkit-0.113-4.fc22 has been submitted as an update for Fedora 22.
https://admin.fedoraproject.org/updates/polkit-0.113-4.fc22

Comment 9 Fedora Update System 2015-07-21 08:20:28 UTC
polkit-0.113-4.fc22 has been pushed to the Fedora 22 stable repository.  If problems still persist, please make note of it in this bug report.