Bug 1241759 - polkitd: undefined symbol: polkit_system_bus_name_get_user_sync
Summary: polkitd: undefined symbol: polkit_system_bus_name_get_user_sync
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: polkit
Version: 22
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Miloslav Trmač
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2015-07-10 04:04 UTC by Dominik 'Rathann' Mierzejewski
Modified: 2015-07-21 08:20 UTC (History)
4 users (show)

Fixed In Version: polkit-0.113-4.fc22
Clone Of:
Environment:
Last Closed: 2015-07-21 08:20:28 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

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.


Note You need to log in before you can comment on or make changes to this bug.