dropbox / dropbox/nautilus-dropbox

daemon upgrade failing due to missing libatomic dependency

Open
#78 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
276
Forks
68
Avg merge
1d 22h
Merged PRs (30d)
2

Description

At some point after daemon 84.4.170 there was a new dependency (on Fedora) introduced causing automatic upgrade to fail. By manually doing `yum install libatomic` the problem was solved. The nautilus-dropbox rpm package does not include a requires line for libatomic (The GNU Atomic library).

On a Fedora 29 box with libatomic not installed, the following error resulted after running:
`$ dropbox update`
...
```
dropbox: initializing python 3.7.2
dropbox: setting program path '/home/castedo/.dropbox-dist/dropbox-lnx.x86_64-85.4.155/dropbox'
dropbox: setting home path '/home/castedo/.dropbox-dist/dropbox-lnx.x86_64-85.4.155'
dropbox: setting python path '/home/castedo/.dropbox-dist/dropbox-lnx.x86_64-85.4.155:/home/castedo/.dropbox-dist/dropbox-lnx.x86_64-85.4.155/python-packages-37.zip'
dropbox: python initialized
dropbox: running dropbox
dropbox: setting args
dropbox: applying overrides
dropbox: running main script
dropbox: load fq extension '/home/castedo/.dropbox-dist/dropbox-lnx.x86_64-85.4.155/cryptography.hazmat.bindings._constant_time.cpython-37m-x86_64-linux-gnu.so'
dropbox: load fq extension '/home/castedo/.dropbox-dist/dropbox-lnx.x86_64-85.4.155/cryptography.hazmat.bindings._openssl.cpython-37m-x86_64-linux-gnu.so'
dropbox: load fq extension '/home/castedo/.dropbox-dist/dropbox-lnx.x86_64-85.4.155/cryptography.hazmat.bindings._padding.cpython-37m-x86_64-linux-gnu.so'
dropbox: load fq extension '/home/castedo/.dropbox-dist/dropbox-lnx.x86_64-85.4.155/psutil._psutil_linux.cpython-37m-x86_64-linux-gnu.so'
dropbox: load fq extension '/home/castedo/.dropbox-dist/dropbox-lnx.x86_64-85.4.155/psutil._psutil_posix.cpython-37m-x86_64-linux-gnu.so'
dropbox: load fq extension '/home/castedo/.dropbox-dist/dropbox-lnx.x86_64-85.4.155/linuxffi.pthread._linuxffi_pthread.cpython-37m-x86_64-linux-gnu.so'
dropbox: load fq extension '/home/castedo/.dropbox-dist/dropbox-lnx.x86_64-85.4.155/cpuid.compiled._cpuid.cpython-37m-x86_64-linux-gnu.so'
dropbox: load fq extension '/home/castedo/.dropbox-dist/dropbox-lnx.x86_64-85.4.155/apex._apex.cpython-37m-x86_64-linux-gnu.so'
dropbox: load fq extension '/home/castedo/.dropbox-dist/dropbox-lnx.x86_64-85.4.155/tornado.speedups.cpython-37m-x86_64-linux-gnu.so'
dropbox: load fq extension '/home/castedo/.dropbox-dist/dropbox-lnx.x86_64-85.4.155/linuxffi.resolv.compiled._linuxffi_resolv.cpython-37m-x86_64-linux-gnu.so'
dropbox: load fq extension '/home/castedo/.dropbox-dist/dropbox-lnx.x86_64-85.4.155/librsyncffi.compiled._librsyncffi.cpython-37m-x86_64-linux-gnu.so'
dropbox: load fq extension '/home/castedo/.dropbox-dist/dropbox-lnx.x86_64-85.4.155/linuxffi.sys.compiled._linuxffi_sys.cpython-37m-x86_64-linux-gnu.so'
dropbox: load fq extension '/home/castedo/.dropbox-dist/dropbox-lnx.x86_64-85.4.155/posixffi.libc._posixffi_libc.cpython-37m-x86_64-linux-gnu.so'
dropbox: load fq extension '/home/castedo/.dropbox-dist/dropbox-lnx.x86_64-85.4.155/linuxffi.gnu.compiled._linuxffi_gnu.cpython-37m-x86_64-linux-gnu.so'
Traceback (most recent call last):
File "dropbox/client/main.pyc", line 7919, in main
File "dropbox/client/main.pyc", line 7843, in main_startup
File "dropbox/client/main.pyc", line 942, in __init__
File "dropbox/sync_engine_boundary/factory.pyc", line 147, in make_default_file_system
File "dropbox/sync_engine_boundary/factory.pyc", line 99, in __init__
File "dropbox/sync_engine_boundary/factory.pyc", line 118, in _initialize_classes
File "dropbox/sync_engine/nucleus/classic_client/sync_engine.pyc", line 276, in
File "dropbox/sync_engine/nucleus/classic_client/thin_adapter/in_proc.pyc", line 98, in
File "dropbox/sync_engine/nucleus/classic_client/wrapped_thin_client.pyc", line 26, in
File "dropbox/sync_engine/nucleus/thin_client/client.pyc", line 28, in
File "dropbox/foundation/metrics/amp/remote_sink.pyc", line 10, in
ImportError: libatomic.so.1: cannot open shared object file: No such file or directory
!! dropbox: fatal python exception:
['Traceback (most recent call last):\n', ' File "dropbox/client/main.pyc", line 7919, in main\n', ' File "dropbox/client/main.pyc", line 7843, in main_startup\n', ' File "dropbox/client/main.pyc", line 942, in __init__\n', ' File "dropbox/sync_engine_boundary/factory.pyc", line 147, in make_default_file_system\n', ' File "dropbox/sync_engine_boundary/factory.pyc", line 99, in __init__\n', ' File "dropbox/sync_engine_boundary/factory.pyc", line 118, in _initialize_classes\n', ' File "dropbox/sync_engine/nucleus/classic_client/sync_engine.pyc", line 276, in \n', ' File "dropbox/sync_engine/nucleus/classic_client/thin_adapter/in_proc.pyc", line 98, in \n', ' File "dropbox/sync_engine/nucleus/classic_client/wrapped_thin_client.pyc", line 26, in \n', ' File "dropbox/sync_engine/nucleus/thin_client/client.pyc", line 28, in \n', ' File "dropbox/foundation/metrics/amp/remote_sink.pyc", line 10, in \n', 'ImportError: libatomic.so.1: cannot open shared object file: No such file or directory\n'] (error 3)
```
After doing a `yum install libatomic`, the daemon upgrade was then successfully made to version 85.4.155.

I'd say around a week ago or so I started to notice my desktop Dropbox icon in a constant state of "Upgrading..." so I suspected something was up. I did multiple attempts at `yum update nautilus-dropbox` hoping that would solve the problem but it did not. (I have /etc/yum.repos.d/ pointing to http://linux.dropbox.com/fedora/$releasever/).

It would be nice if the rpm is updated to include this new dependency so that doing `yum update nautilus-dropbox` would have solved the problem without debugging.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by inspecting the nautilus-dropbox Fedora RPM packaging and its dependency metadata, using the reported libatomic.so.1 failure as the reproduction case. The work is done when the package declares libatomic as a requirement and a Fedora yum update installs the dependency before daemon 85.4.155 runs.

Written by the indexing model from the issue text.

Assessment

Tech stack
fedora, linux, python
Domain
release
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.