[snap] chromium fails to start with "/snap/chromium/1444/usr/lib/chromium-browser/chrome: error while loading shared libraries: libatk-1.0.so.0: cannot open shared object file: No such file or directory"

Bug #1910821 reported by Kolargol00
16
This bug affects 3 people
Affects Status Importance Assigned to Milestone
chromium-browser (Ubuntu)
Invalid
Undecided
Unassigned

Bug Description

When starting chromium from the command line, it fails to start with this error:

/snap/chromium/1444/usr/lib/chromium-browser/chrome: error while loading shared libraries: libatk-1.0.so.0: cannot open shared object file: No such file or directory

This is on Ubuntu 20.04.1, upgraded from 18.04.5. However, libatk-1.0.so.0 is installed on the system:

$ ldd /snap/chromium/1444/usr/lib/chromium-browser/chrome
 linux-vdso.so.1 (0x00007ffc60be9000)
 libffmpeg.so => /snap/chromium/1444/usr/lib/chromium-browser/libffmpeg.so (0x00007f7be29cb000)
 libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f7be299d000)
 libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f7be297a000)
 librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f7be296f000)
 libgobject-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 (0x00007f7be290f000)
 libglib-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007f7be27e6000)
 libnss3.so => /usr/lib/x86_64-linux-gnu/libnss3.so (0x00007f7be2695000)
 libnssutil3.so => /usr/lib/x86_64-linux-gnu/libnssutil3.so (0x00007f7be2662000)
 libsmime3.so => /usr/lib/x86_64-linux-gnu/libsmime3.so (0x00007f7be2632000)
 libnspr4.so => /usr/lib/x86_64-linux-gnu/libnspr4.so (0x00007f7be25f2000)
 libatk-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libatk-1.0.so.0 (0x00007f7be25c8000)
 libatk-bridge-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libatk-bridge-2.0.so.0 (0x00007f7be2591000)
 libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007f7be2452000)
 libX11-xcb.so.1 => /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1 (0x00007f7be244d000)
 libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f7be2423000)
 libcups.so.2 => /usr/lib/x86_64-linux-gnu/libcups.so.2 (0x00007f7be2388000)
 libfontconfig.so.1 => /usr/lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007f7be2341000)
 libdbus-1.so.3 => /lib/x86_64-linux-gnu/libdbus-1.so.3 (0x00007f7be22f0000)
 libgio-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0 (0x00007f7be210d000)
 libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007f7be20df000)
 libdrm.so.2 => /usr/lib/x86_64-linux-gnu/libdrm.so.2 (0x00007f7be20cb000)
 libxkbcommon.so.0 => /usr/lib/x86_64-linux-gnu/libxkbcommon.so.0 (0x00007f7be2089000)
 libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f7be1f3a000)
 libXcomposite.so.1 => /usr/lib/x86_64-linux-gnu/libXcomposite.so.1 (0x00007f7be1f35000)
 libXdamage.so.1 => /usr/lib/x86_64-linux-gnu/libXdamage.so.1 (0x00007f7be1f2e000)
 libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007f7be1f19000)
 libXfixes.so.3 => /usr/lib/x86_64-linux-gnu/libXfixes.so.3 (0x00007f7be1f11000)
 libXrandr.so.2 => /usr/lib/x86_64-linux-gnu/libXrandr.so.2 (0x00007f7be1f04000)
 libgtk-3.so.0 => /usr/lib/x86_64-linux-gnu/libgtk-3.so.0 (0x00007f7be1753000)
 libgdk-3.so.0 => /usr/lib/x86_64-linux-gnu/libgdk-3.so.0 (0x00007f7be164e000)
 libpangocairo-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libpangocairo-1.0.so.0 (0x00007f7be163a000)
 libpango-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libpango-1.0.so.0 (0x00007f7be15eb000)
 libcairo.so.2 => /usr/lib/x86_64-linux-gnu/libcairo.so.2 (0x00007f7be14c8000)
 libgdk_pixbuf-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0 (0x00007f7be14a0000)
 libgbm.so.1 => /usr/lib/x86_64-linux-gnu/libgbm.so.1 (0x00007f7be148e000)
 libasound.so.2 => /usr/lib/x86_64-linux-gnu/libasound.so.2 (0x00007f7be1393000)
 libatspi.so.0 => /usr/lib/x86_64-linux-gnu/libatspi.so.0 (0x00007f7be135a000)
 libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f7be133f000)
 libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f7be114d000)
 /lib64/ld-linux-x86-64.so.2 (0x00007f7bec71d000)
 libffi.so.7 => /usr/lib/x86_64-linux-gnu/libffi.so.7 (0x00007f7be1141000)
 libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f7be10ce000)
 libplc4.so => /usr/lib/x86_64-linux-gnu/libplc4.so (0x00007f7be10c7000)
 libplds4.so => /usr/lib/x86_64-linux-gnu/libplds4.so (0x00007f7be10c0000)
 libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007f7be10ba000)
 libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f7be10b2000)
 libgssapi_krb5.so.2 => /usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2 (0x00007f7be1065000)
 libavahi-common.so.3 => /usr/lib/x86_64-linux-gnu/libavahi-common.so.3 (0x00007f7be1057000)
 libavahi-client.so.3 => /usr/lib/x86_64-linux-gnu/libavahi-client.so.3 (0x00007f7be1042000)
 libgnutls.so.30 => /usr/lib/x86_64-linux-gnu/libgnutls.so.30 (0x00007f7be0e6c000)
 libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f7be0e50000)
 libfreetype.so.6 => /usr/lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007f7be0d91000)
 libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007f7be0d88000)
 libsystemd.so.0 => /lib/x86_64-linux-gnu/libsystemd.so.0 (0x00007f7be0cd9000)
 libgmodule-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgmodule-2.0.so.0 (0x00007f7be0cd1000)
 libmount.so.1 => /lib/x86_64-linux-gnu/libmount.so.1 (0x00007f7be0c71000)
 libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007f7be0c46000)
 libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007f7be0c2a000)
 libXrender.so.1 => /usr/lib/x86_64-linux-gnu/libXrender.so.1 (0x00007f7be0a20000)
 libXi.so.6 => /usr/lib/x86_64-linux-gnu/libXi.so.6 (0x00007f7be0a0c000)
 libcairo-gobject.so.2 => /usr/lib/x86_64-linux-gnu/libcairo-gobject.so.2 (0x00007f7be0a00000)
 libepoxy.so.0 => /usr/lib/x86_64-linux-gnu/libepoxy.so.0 (0x00007f7be08cd000)
 libfribidi.so.0 => /usr/lib/x86_64-linux-gnu/libfribidi.so.0 (0x00007f7be08b0000)
 libpangoft2-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libpangoft2-1.0.so.0 (0x00007f7be0897000)
 libharfbuzz.so.0 => /usr/lib/x86_64-linux-gnu/libharfbuzz.so.0 (0x00007f7be0792000)
 libXinerama.so.1 => /usr/lib/x86_64-linux-gnu/libXinerama.so.1 (0x00007f7be078b000)
 libXcursor.so.1 => /usr/lib/x86_64-linux-gnu/libXcursor.so.1 (0x00007f7be077e000)
 libwayland-cursor.so.0 => /usr/lib/x86_64-linux-gnu/libwayland-cursor.so.0 (0x00007f7be0773000)
 libwayland-egl.so.1 => /usr/lib/x86_64-linux-gnu/libwayland-egl.so.1 (0x00007f7be076e000)
 libwayland-client.so.0 => /usr/lib/x86_64-linux-gnu/libwayland-client.so.0 (0x00007f7be075d000)
 libthai.so.0 => /usr/lib/x86_64-linux-gnu/libthai.so.0 (0x00007f7be0750000)
 libpixman-1.so.0 => /usr/lib/x86_64-linux-gnu/libpixman-1.so.0 (0x00007f7be06a9000)
 libpng16.so.16 => /usr/lib/x86_64-linux-gnu/libpng16.so.16 (0x00007f7be0671000)
 libxcb-shm.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0 (0x00007f7be066c000)
 libxcb-render.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-render.so.0 (0x00007f7be065d000)
 libwayland-server.so.0 => /usr/lib/x86_64-linux-gnu/libwayland-server.so.0 (0x00007f7be0645000)
 libbsd.so.0 => /usr/lib/x86_64-linux-gnu/libbsd.so.0 (0x00007f7be062b000)
 libkrb5.so.3 => /usr/lib/x86_64-linux-gnu/libkrb5.so.3 (0x00007f7be054e000)
 libk5crypto.so.3 => /usr/lib/x86_64-linux-gnu/libk5crypto.so.3 (0x00007f7be051d000)
 libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2 (0x00007f7be0516000)
 libkrb5support.so.0 => /usr/lib/x86_64-linux-gnu/libkrb5support.so.0 (0x00007f7be0505000)
 libp11-kit.so.0 => /usr/lib/x86_64-linux-gnu/libp11-kit.so.0 (0x00007f7be03cf000)
 libidn2.so.0 => /usr/lib/x86_64-linux-gnu/libidn2.so.0 (0x00007f7be03ae000)
 libunistring.so.2 => /usr/lib/x86_64-linux-gnu/libunistring.so.2 (0x00007f7be022c000)
 libtasn1.so.6 => /usr/lib/x86_64-linux-gnu/libtasn1.so.6 (0x00007f7be0216000)
 libnettle.so.7 => /usr/lib/x86_64-linux-gnu/libnettle.so.7 (0x00007f7be01dc000)
 libhogweed.so.5 => /usr/lib/x86_64-linux-gnu/libhogweed.so.5 (0x00007f7be01a2000)
 libgmp.so.10 => /usr/lib/x86_64-linux-gnu/libgmp.so.10 (0x00007f7be011e000)
 liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007f7be00f5000)
 liblz4.so.1 => /usr/lib/x86_64-linux-gnu/liblz4.so.1 (0x00007f7be00d4000)
 libgcrypt.so.20 => /usr/lib/x86_64-linux-gnu/libgcrypt.so.20 (0x00007f7bdffb6000)
 libblkid.so.1 => /lib/x86_64-linux-gnu/libblkid.so.1 (0x00007f7bdff5d000)
 libpcre2-8.so.0 => /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0 (0x00007f7bdfecd000)
 libgraphite2.so.3 => /usr/lib/x86_64-linux-gnu/libgraphite2.so.3 (0x00007f7bdfea0000)
 libdatrie.so.1 => /usr/lib/x86_64-linux-gnu/libdatrie.so.1 (0x00007f7bdfe96000)
 libkeyutils.so.1 => /lib/x86_64-linux-gnu/libkeyutils.so.1 (0x00007f7bdfe8f000)
 libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x00007f7bdfe6a000)

I don't like being forced to use a snap that doesn't even work properly.

ProblemType: Bug
DistroRelease: Ubuntu 20.04
Package: chromium-browser 1:85.0.4183.83-0ubuntu0.20.04.2
ProcVersionSignature: Ubuntu 5.4.0-60.67-generic 5.4.78
Uname: Linux 5.4.0-60-generic x86_64
NonfreeKernelModules: nvidia_modeset nvidia
ApportVersion: 2.20.11-0ubuntu27.14
Architecture: amd64
CasperMD5CheckResult: skip
CurrentDesktop: MATE
Date: Fri Jan 8 22:29:22 2021
DiskUsage:
 Filesystem Type Size Used Avail Use% Mounted on
 /dev/sdb1 ext4 914G 852G 52G 95% /home
 tmpfs tmpfs 7.8G 207M 7.6G 3% /dev/shm
 /dev/sdb1 ext4 914G 852G 52G 95% /home
InstallationDate: Installed on 2016-08-09 (1613 days ago)
InstallationMedia: Ubuntu 16.04.1 LTS "Xenial Xerus" - Release amd64 (20160719)
MachineType: ASUS All Series
ProcKernelCmdLine: BOOT_IMAGE=/vmlinuz-5.4.0-60-generic root=/dev/mapper/hostname-root ro verbose
Snap.Changes:
 ID Status Spawn Ready Summary
 2 Done 2021-01-08T12:47:44+01:00 2021-01-08T12:49:13+01:00 Install "chromium" snap
 4 Done 2021-01-08T12:49:13+01:00 2021-01-08T12:49:16+01:00 Connect chromium:password-manager-service to snapd:password-manager-service
Snap.ChromeDriverVersion: Error: command ['snap', 'run', 'chromium.chromedriver', '--version'] failed with exit code 127: /snap/chromium/1444/usr/lib/chromium-browser/chromedriver: error while loading shared libraries: libX11-xcb.so.1: cannot open shared object file: No such file or directory
Snap.ChromiumVersion: Error: command ['snap', 'run', 'chromium', '--version'] failed with exit code 127: /snap/chromium/1444/usr/lib/chromium-browser/chrome: error while loading shared libraries: libatk-1.0.so.0: cannot open shared object file: No such file or directory
SourcePackage: chromium-browser
UpgradeStatus: Upgraded to focal on 2021-01-08 (0 days ago)
dmi.bios.date: 08/15/2014
dmi.bios.vendor: American Megatrends Inc.
dmi.bios.version: 2103
dmi.board.asset.tag: To be filled by O.E.M.
dmi.board.name: Z87-PLUS
dmi.board.vendor: ASUSTeK COMPUTER INC.
dmi.board.version: Rev 1.xx
dmi.chassis.asset.tag: Asset-1234567890
dmi.chassis.type: 3
dmi.chassis.vendor: Chassis Manufacture
dmi.chassis.version: Chassis Version
dmi.modalias: dmi:bvnAmericanMegatrendsInc.:bvr2103:bd08/15/2014:svnASUS:pnAllSeries:pvrSystemVersion:rvnASUSTeKCOMPUTERINC.:rnZ87-PLUS:rvrRev1.xx:cvnChassisManufacture:ct3:cvrChassisVersion:
dmi.product.family: ASUS MB
dmi.product.name: All Series
dmi.product.sku: All
dmi.product.version: System Version
dmi.sys.vendor: ASUS

Revision history for this message
Kolargol00 (kolargol00) wrote :
Revision history for this message
Olivier Tilloy (osomon) wrote :

It looks like the gnome-3-28-1804 and gtk-common-themes content snaps are not installed, this is what is causing chromium to not find libraries. Those should have been installed automatically when installing chromium.

How did you install chromium? Could it be that you manually uninstalled those content snaps?

Changed in chromium-browser (Ubuntu):
status: New → Incomplete
Revision history for this message
Kolargol00 (kolargol00) wrote :

Thank you for your answer Olivier. That is indeed exactly the case.

The two snaps gnome-3-28-1804 and gtk-common-themes were automatically installed during the upgrade and chromium through the deb transitional package. Then I manually uninstalled gnome-3-28-1804 and gtk-common-themes snaps because I don't see a use for them. The snap CLI never complained about breaking dependencies by doing so.

I thought each snap ships everything it needs and doesn't require other snaps. Where can I see those dependencies then?

Revision history for this message
Olivier Tilloy (osomon) wrote :

The dependency system in snapd is intentionally basic and it won't complain when uninstalling a dependency, because it has no way of knowing whether it's strictly required for the snap to work, or simply providing additional capabilities.

The fact that each snap ships everything they need is largely true, but for the exception of the platform snaps (such as gnome-3-28-1804) that contain a set of common libraries typically used by GNOME/GTK applications, which allows de-duplicating and consequently reducing the size of the snaps significantly.

If you're interested in the details, I suggest reading https://snapcraft.io/docs/content-interface.

I am not aware of a generic way to inspect a given snap's dependencies, other than installing it and observing which other content snaps get pulled in.

Changed in chromium-browser (Ubuntu):
status: Incomplete → Invalid
Revision history for this message
Kolargol00 (kolargol00) wrote :

Thank you for your help and explanations. I reinstalled the chromium snap with:

    snap remove chromium
    apt install --reinstall chromium-browser

and now Chromium works again. :)

Under the angle of snapd's limited dependency management, relying on such "hidden", i.e. unenforceable, dependencies for the chromium snap seems like a risky idea...

Revision history for this message
Ciro Santilli 六四事件 法轮功 (cirosantilli) wrote :

This seemed to happen to me after running:

```
sudo snap install chromium
sudo snap install pycharm-community --classic
```

but not 100% sure this is a minimal repro on Ubuntu 21.04 snap 2.50.1. The reinstall workaround worked, but I lost all my browser data which is sad.

Revision history for this message
Vincent Gerris (vgerris) wrote :

same here, all data gone. what a shit show, like waking up after a car crash feeling fine but no memory. Perhaps devs can consider these kind of things before these things happen.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.