Client: symbol lookup error on Ubuntu 16.04 with owncloud-client 2.2.0

Created on 12 May 2016  路  38Comments  路  Source: owncloud/client

Expected behaviour

owncloud client should start

Actual behaviour

$ owncloud
owncloud: symbol lookup error: /usr/lib/x86_64-linux-gnu/libowncloudsync.so.0: undefined symbol: _ZN9QKeychain15ReadPasswordJob6setKeyERK7QString

Steps to reproduce

  1. apt-get install owncloud-client
  2. owncloud

  3. Client configuration

Client version: 2.2.0-1.1

Operating system: Ubuntu 16.04 64-bit

FYI, the Ubuntu 15.10 nightlies of 2.2.x worked OK but I thought I'd revert back to "stable" compiled precisely for my version of Ubuntu.

$ more /etc/apt/sources.list.d/owncloud.list
deb http://download.opensuse.org/repositories/isv:/ownCloud:/desktop/Ubuntu_16.04/ /

$ dpkg -l "*cloud*" | grep ^ii
ii  libowncloudsync0:amd64      2.2.0-1.1    amd64        the ownCloud sync library
ii  owncloud-client:amd64       2.2.0-1.1    amd64        The ownCloud sync client - github.com/owncloud/client
ii  owncloud-client-l10n        2.2.0-1.1    all          Internationalization files for ownCloud

$ ldd `which owncloud` | grep sync
    libowncloudsync.so.0 => /usr/lib/x86_64-linux-gnu/libowncloudsync.so.0 (0x00007f7b46d53000)
    libocsync.so.0 => /usr/lib/x86_64-linux-gnu/owncloud/libocsync.so.0 (0x00007f7b45938000)
    libxcb-sync.so.1 => /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1 (0x00007f7b3c03f000)
bug sev2-high

Most helpful comment

This is what I did under Xubuntu 14.04 to get it working again:

sudo apt-get update
sudo apt-get remove owncloud-client
sudo apt-get autoremove
sudo apt-get install owncloud-client

Maybe it'll help someone.

All 38 comments

This seems to be caused by incorrect version of libqt5keychain0 - after uninstalling the nightly version there remains libqt5keychain0 version 0.6.2-11.1. If you then install a stable build it fails to run. You have to remove the libqt5keychain0 first and only then install the stable owncloud-client that in turn installs libqt5keychain0 version 0.5.0-1build1~gcc5.1 with which it works OK.
So this is basically a package issue - the libqt5keychain0 should have been uninstalled automatically and also the stable package should enforce installing the right version of libqt5keychain0 as apparently it doesn't work with a newer one.

The problem is that qtkeychain changed their ABI without bumping the SO Version.
A workaround is to recompile owncloudclient with libqtkeychain 0.6.2 and add this as dependency or add a break to the 0.6.X version to make sure that apt installs the correct version.

@hefee can you file this upstream?

Anyway, isv:ownCloud:desktop should have 0.6.2 as well. Fixing this now. Updated packages should be available in a few minutes.

@danimo as you may already noticed, - it is already filed upstream and linked to this thread: https://github.com/frankosterfeld/qtkeychain/issues/73

@hefee Shame on me. Didn't. Thanks!

Same issue after latest update on OpenSUSE LEAP 42.1:

owncloud: symbol lookup error: /usr/lib64/libowncloudsync.so.0: undefined symbol: _ZN9QKeychain3Job6setKeyERKT

This appeared after the last zypper update today. According to the rpm changelog, the package was updated on FR 13.5 by [email protected]:

Information for package owncloud-client:

Repository: Owncloud Client
Name: owncloud-client
Version: 2.2.0-2.2
Arch: x86_64
Vendor: obs://build.opensuse.org/isv:ownCloud
Installed: Yes
Status: up-to-date
Installed Size: 2.4 MiB
Summary: The ownCloud client
Description:
The ownCloud sync client - github.com/owncloud/client

Similar issue after latest upgrade on OpenSUSE 13.2:
"owncloud: symbol lookup error: /usr/lib64/libowncloudsync.so.0: undefined symbol: _ZN9QKeychain15ReadPasswordJob6setKeyERK7QString".
Worked again after downgrading libqt5keychain0 from 0.6.2-1.1-x86_64 (from isv:ownCloud:desktop) to 0.5.0-12.2-x86_64 (from KDE:Extra)

@WalterFae that is because 13.2 is currently not compiling: https://build.opensuse.org/package/live_build_log/isv:ownCloud:desktop/owncloud-client/openSUSE_13.2/i586. //cc @dragotin @jnweiger

This workaround does not help on leap.
the symbol lookup error appears with libqtkeychain0 0.4-3.3 (OpenSUSE standard), 0.4-5.1 (KDE Extra) and 0.6.2-1.1 (isv: ownCloud)

I'm having same issue with Ubuntu 14.04:

owncloud: symbol lookup error: /usr/lib/x86_64-linux-gnu/libowncloudsync.so.0: undefined symbol: _ZN9QKeychain3Job6setKeyERK7QString

If it can help, doing ldd reports:
libowncloudsync.so.0 => /usr/lib/x86_64-linux-gnu/libowncloudsync.so.0 (0x00007ffa9fe1e000)
libocsync.so.0 => /usr/lib/x86_64-linux-gnu/owncloud/libocsync.so.0 (0x00007ffa9ecdb000)
libxcb-sync.so.1 => /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1 (0x00007ffa9432d000)

However, libocsync package is not installed on my system and it's impossible to install as libowncloudsync0 package says it breaks libocsync0

Please find a solution, as of today I can't use owncloud client anymore!!

EDIT: please read post below, also my post was wrong for the simple reason that libocsync is directly provided from owncloud

I was having this issue because I had libqt5keychain0 0.5-9. I upgraded it to 0.6.2-1.1 (standard ubuntu update) and now it's finally working.

Thanks danimo irc user for suggestion

Same as bulletxt here. I've upgraded from owncloud-client 2.1.1 to 2.2.0, and got the same "undefined symbol" error as the original poster. After upgrading libqt5keychain0 from version 0.5.0-1build1~gcc5.1 to 0.6.2-1.1, it worked again.

Same issue on Red Hat Enterprise Linux 6.8.
After installing latest stable 2.2.0, owncloud client won't start.
owncloud --logfile -
/opt/qt-4.8/bin/owncloud: symbol lookup error: /usr/lib64/libowncloudsync.so.0: undefined symbol: _ZN9QKeychain3Job6setKeyERK7QString

ldd /usr/lib64/libowncloudsync.so.0 shows
libqtkeychain.so.0 => /opt/qt-4.8/lib64/libqtkeychain.so.0 (0x00007f4bbcde4000)

On this Debian/stable box, libqtkeychain0 would only be upgraded to 0.6.2 when apt-get is called with -t jessie-backports - although libqtkeychain0 is then fetched from the OC repo, not from the Debian backports repository. o_O

But now I have two packages: libqtkeychain0 (v0.6.2) and libqt5keychain0 (v0.4.0). After removing the latter, the original error is back:

$ owncloud 
owncloud: symbol lookup error: /usr/lib/x86_64-linux-gnu/libowncloudsync.so.0: undefined symbol: _ZN9QKeychain16WritePasswordJob6setKeyERK7QString
$ ldd /usr/lib/x86_64-linux-gnu/libowncloudsync.so.0 | grep qt
        libqtkeychain.so.0 => /usr/lib/x86_64-linux-gnu/libqtkeychain.so.0 (0x00007f086b850000)
$ ls -go /usr/lib/x86_64-linux-gnu/libqtkeychain.so.0*
lrwxrwxrwx 1     22 May 14 05:47 /usr/lib/x86_64-linux-gnu/libqtkeychain.so.0 -> libqtkeychain.so.0.6.2
-rw-r--r-- 1 144144 May 14 05:47 /usr/lib/x86_64-linux-gnu/libqtkeychain.so.0.6.2
$ nm -D /usr/lib/x86_64-linux-gnu/libowncloudsync.so.0 | grep WritePasswordJob6setKey
                 U _ZN9QKeychain16WritePasswordJob6setKeyERK7QString

It looks like trying to upgrade libqtkeychain is not an option for me unfortunately; when I try to upgrade it, zypper says that the version I already have installed is 0.20131103-27.1 (0.6.2-2.1) from the ownCloud OBS repo, which is newer than the other versions that I can find out on OBS. I'm running oS 13.1 Evergreen 32-bit.

I thought that I'd just downgrade to the older version of the client then, but it doesn't exist on OBS anymore apparently :'(

chrismyers81, you need libqt5keychain0 from isv:ownCloud:desktop repository.

The client packages for leap have been rebuild successfully (according to https://build.opensuse.org/project/monitor/isv:ownCloud:desktop). I just updated to version 2.2.0-5.1.xxxx.rpm including libqt5keychain0-0.6.2-1.1.x86_64.rpm and the symbol lookup errors are gone ;-)

RHEL6 still not fixed. Updated by yum:
May 18 08:37:38 Updated: libowncloudsync0-2.2.0-5.1.x86_64
May 18 08:37:40 Updated: owncloud-client-l10n-2.2.0-5.1.x86_64
May 18 08:37:43 Updated: owncloud-client-2.2.0-5.1.x86_64

Using repository:
http://download.opensuse.org/repositories/isv:/ownCloud:/desktop/RHEL_6/

Keychain installed from same repo:
Installed Packages
Name : opt-libqtkeychain0
Arch : x86_64
Version : 0.20140128
Release : 4.1
Size : 146 k
Repo : installed
From repo : isv_ownCloud_desktop
Summary : A cross platform password store library
URL : https://github.com/frankosterfeld/qtkeychain
License : MIT
Description : use qtkeychain to store passwords easy and secure on Linux, Windows and
: Mac.

@newachu I cannot reproduce your RHEL_6 issue:

wget -nv http://download.opensuse.org/repositories/isv:/ownCloud:/desktop/RHEL_6/isv:ownCloud:desktop.repo -O /etc/yum.repos.d/isv:ownCloud:desktop.repo
yum install owncloud-client

pulls in libowncloudsync0-2.2.0-5.1.x86_64 which has

rpm -q --requires libowncloudsync0 | grep keychain
libqtkeychain.so.0()(64bit)  
opt-libqtkeychain0 >= 0.6.2

So your opt-libqtkeychain0 should be upgraded to the correct version.

We did not increment the version number of libowncloudsync0 in this rebuild. Maybe you are stuck with the old one? It should be build release 5.1 ...

Hmm, still no love for me :/

chrismyers:/home/cmyers # rpm -qa | grep -i libqt5keychain0
libqt5keychain0-0.6.2-1.1.i586
chrismyers:/home/cmyers/Downloads/oc2 # rpm -Uvh *.rpm
Preparing... ################################# [100%]
Updating / installing...
1:libowncloudsync0-2.2.1~nightly201################################# [ 17%]
2:owncloud-client-l10n-2.2.1~nightl################################# [ 33%]
3:owncloud-client-2.2.1~nightly2016################################# [ 50%]
Cleaning up / removing...
4:owncloud-client-l10n-2.2.1~nightl################################# [ 67%]
5:owncloud-client-2.2.1~nightly2016################################# [ 83%]
6:libowncloudsync0-2.2.1~nightly201################################# [100%]

cmyers@chrismyers:~> owncloud
owncloud: symbol lookup error: /usr/lib/libowncloudsync.so.0: undefined symbol: _ZN9QKeychain3Job6setKeyERK7QString
cmyers@chrismyers:~> ls -l /usr/lib/libowncloudsync.so.*
lrwxrwxrwx 1 root root 24 May 18 08:28 /usr/lib/libowncloudsync.so.0 -> libowncloudsync.so.2.2.1
-rwxr-xr-x 1 root root 1283479 May 17 20:59 /usr/lib/libowncloudsync.so.2.2.1

But it looks like upgrading to libqt5keychain didn't update the links?

cmyers@chrismyers:~> ldd /usr/lib/libowncloudsync.so.0 | grep qt
libqtkeychain.so.0 => /usr/lib/libqtkeychain.so.0 (0xb6585000)

Are there any ramifications of me manually changing the symlink?

@jnweiger Thank you for the check. I tried to reinstall both libowncloudsync0 and opt-libqtkeychain0 with the following results:
`yum reinstall libowncloudsync0
Setting up Reinstall Process
Resolving Dependencies
--> Running transaction check
---> Package libowncloudsync0.x86_64 0:2.2.0-5.1 will be reinstalled
--> Finished Dependency Resolution
Downloading Packages:
libowncloudsync0-2.2.0-5.1.x86_64.rpm | 424 kB 00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : libowncloudsync0-2.2.0-5.1.x86_64 1/1
Verifying : libowncloudsync0-2.2.0-5.1.x86_64 1/1

Installed:
libowncloudsync0.x86_64 0:2.2.0-5.1

yum reinstall opt-libqtkeychain0
Loaded plugins: product-id, refresh-packagekit, rhnplugin, search-disabled-repos, security
This system is receiving updates from RHN Classic or RHN Satellite.
Setting up Reinstall Process
Installed package opt-libqtkeychain0-0.20140128-4.1.x86_64 (from isv_ownCloud_desktop) not available.
Error: Nothing to do
yum install opt-libqtkeychain0
Loaded plugins: product-id, refresh-packagekit, rhnplugin, search-disabled-repos, security
This system is receiving updates from RHN Classic or RHN Satellite.
Setting up Install Process
Package matching opt-libqtkeychain0-0.6.2-1.1.x86_64 already installed. Checking for update.
Nothing to do`

Managed to fix the issue with full removal and reinstall:
yum remove opt-libqtkeychain0
yum install owncloud-client

Solved for RHEL6 :+1:

I tried completely uninstalling and reinstalling from the repos, and when I chose to reinstall it's pulling libqtkeychain, not libqt5keychain : http://susepaste.org/5de15bdd

However, it looks like it's working now after doing a full uninstall-reinstall.

Happy to see that enforcing version 0.6.2 of qtkeychain/qt5keychain seems to solve the issue for everybody one way or the other. Please open new issues if more fixes are needed.

On Fedora 24 you can workaround the issue by running dnf downgrade qtkeychain-qt5 qtkeychain. After that owncloud client runs fine.

Hi, under Ubuntu Mate 16.04 i have the same issue.

symbol lookup error: /usr/lib/x86_64-linux-gnu/libowncloudsync.so

Do you have any solution ?

This is what I did under Xubuntu 14.04 to get it working again:

sudo apt-get update
sudo apt-get remove owncloud-client
sudo apt-get autoremove
sudo apt-get install owncloud-client

Maybe it'll help someone.

I see this on Debian testing.
libqt5keychain0 is 0.6.2-1.1

Unfortunately this comment isn't valid as a general fix.

@FriendFX thx! Works! (Ubuntu 16.04)

@mtompkins
sudo apt-get install libqtkeychain0=0.6.2-1.1 libqt5keychain0=0.6.2-1.1

@Cyb0org

Thanks for suggestion. No go unfortunately:

mtompkins@aio:~$ sudo apt-get install libqtkeychain0=0.6.2-1.1 libqt5keychain0=0.6.2-1.1
Reading package lists... Done
Building dependency tree       
Reading state information... Done
libqt5keychain0 is already the newest version (0.6.2-1.1).
The following NEW packages will be installed:
  libqtkeychain0
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 42.6 kB of archives.
After this operation, 179 kB of additional disk space will be used.
Do you want to continue? [Y/n] 
Get:1 http://download.opensuse.org/repositories/isv:/ownCloud:/desktop/Debian_8.0  libqtkeychain0 0.6.2-1.1 [42.6 kB]
Fetched 42.6 kB in 0s (67.1 kB/s)         
Selecting previously unselected package libqtkeychain0.
(Reading database ... 282590 files and directories currently installed.)
Preparing to unpack .../libqtkeychain0_0.6.2-1.1_amd64.deb ...
Unpacking libqtkeychain0 (0.6.2-1.1) ...
Setting up libqtkeychain0 (0.6.2-1.1) ...
mtompkins@aio:~$ owncloud 
owncloud: symbol lookup error: /usr/lib/x86_64-linux-gnu/libowncloudsync.so.0: undefined symbol: _ZN9QKeychain16WritePasswordJob6setKeyERK7QString
mtompkins@aio:~$ 

@Cyb0org Pt2.

Full uninstall and reinstall after that package does indeed work. Thank you.

On Debian/jessie, the owncloud-client would not work unless its version numbers were forced during the installation:

$ sudo apt-get -V install owncloud-client=2.2.0-2 libowncloudsync0=2.2.0-2 \
         owncloud-client-l10n=2.2.0-2 libowncloudsync0=2.2.0-2 \
         libqt5keychain0=0.6.2-1.1 libqtkeychain0=0.6.2-1.1

However, APT pinning may be a more elegant way to achieve the same:

$ cat /etc/apt/preferences.d/owncloud.pref 
Package: *
Pin: origin download.opensuse.org
Pin-Priority: 1000
$ sudo apt-get -V install owncloud-client
[...]
Get:1 http://download.opensuse.org/repositories/isv:/ownCloud:/desktop/Debian_8.0/  libqtkeychain0 0.6.2-1.1 [42.6 kB]
Get:2 http://download.opensuse.org/repositories/isv:/ownCloud:/desktop/Debian_8.0/  libowncloudsync0 2.2.0-2 [394 kB]
Get:3 http://download.opensuse.org/repositories/isv:/ownCloud:/desktop/Debian_8.0/  owncloud-client-l10n 2.2.0-2 [32.1 kB]
Get:4 http://download.opensuse.org/repositories/isv:/ownCloud:/desktop/Debian_8.0/  owncloud-client 2.2.0-2 [963 kB]

With that, owncloud-client is working again. The only oddity is the "%nil" in the version string in the "General" tab in the application:
oc_nil

Had same issue, my repository setting was still set on 15.10 while I have installed 16.04 a few weeks ago
Changing the repository to 16.04 and then reinstalling (thx to @FriendFX) worked well.

@ckujau thank you a lot, your answer helped me!

https://github.com/owncloud/client/issues/4829#issuecomment-221453981 fixed it for me (Debian/Sid).
Looks like Debian have an issue in their build of 2.2.0-2-dfsg. Pinning takes care of that though!

the trialing %nil will be fixed with 2.2.1 -- fixed the rules template today.

Was this page helpful?
0 / 5 - 0 ratings