Missing runtime dependency on libx11-xcb1

Bug #1919146 reported by Alexander Deruwe on 2021-03-15
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
chromium-browser (Ubuntu)
High
Olivier Tilloy

Bug Description

Hi,

This morning we noticed that in the latest version of chromium-browser on 18.04 (89.0.4389.82-0ubuntu0.18.04.1) the dependency on libx11-xcb1 was removed.
This caused our use-case with chromium-browser to break.
For now we install libx11-xcb1 separately, but this seems like a breaking change.

$ lsb_release -rd
Description: Ubuntu 18.04.5 LTS
Release: 18.04

Thanks and best regards,

Alexander Deruwe

Olivier Tilloy (osomon) wrote :

Can you please elaborate on the use case that is broken by this change?

Changed in chromium-browser (Ubuntu):
status: New → Incomplete
Alexander Deruwe (aderuwe) wrote :

Sure.

We use Browsershot (https://github.com/spatie/browsershot), which in turn uses Puppeteer (https://developers.google.com/web/tools/puppeteer/) to use chromium-browser in headless mode to generate PDF's from HTML.
Without libx11-xcb1, chromium-browser never completes, which causes all processes to just hang indefinitely until the system is starved from resources.

Isn't removing dependencies in an LTS release a breaking change regardless?

Olivier Tilloy (osomon) wrote :

I can confirm the problem: in a bionic chroot, I install chromium-browser and make sure libx11-xcb1 isn't installed (in a minimal chroot without a desktop environment it isn't), then I start chromium in headless mode and this is what I'm seeing:

    $ chromium-browser --headless http://example.org
    [0317/172148.363045:WARNING:headless_content_main_delegate.cc(530)] Cannot create Pref Service with no user data dir.
    [0317/172148.365133:ERROR:bus.cc(393)] Failed to connect to the bus: Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory
    [0317/172148.516024:WARNING:gpu_process_host.cc(1282)] The GPU process has crashed 1 time(s)
    [0317/172148.666694:WARNING:gpu_process_host.cc(1282)] The GPU process has crashed 2 time(s)
    [0317/172148.821606:WARNING:gpu_process_host.cc(1282)] The GPU process has crashed 3 time(s)
    [0317/172148.978707:WARNING:gpu_process_host.cc(1282)] The GPU process has crashed 4 time(s)
    [0317/172149.134791:WARNING:gpu_process_host.cc(1282)] The GPU process has crashed 5 time(s)
    [0317/172149.288921:WARNING:gpu_process_host.cc(1282)] The GPU process has crashed 6 time(s)
    [0317/172149.292690:WARNING:gpu_process_host.cc(1002)] Reinitialized the GPU process after a crash. The reported initialization time was 0 ms

and the chromium process never returns.

After installing libx11-xcb1, this is what I'm seeing:

    $ chromium-browser --headless http://example.org
    [0317/172211.239945:WARNING:headless_content_main_delegate.cc(530)] Cannot create Pref Service with no user data dir.
    [0317/172211.242524:ERROR:bus.cc(393)] Failed to connect to the bus: Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory

and the process exits successfully. If I add the --dump-dom parameter I can confirm that the page that was requested was correctly fetched and parsed.

Now the problem isn't that the dependency was removed, in fact chromium 88 didn't depend on libx11-xcb1 and I just confirmed in the same chroot that it worked well in headless mode without it. It's the opposite indeed: this is a new requirement, and I'm investigating to figure out why the dependency wasn't automatically added.

Changed in chromium-browser (Ubuntu):
status: Incomplete → Confirmed
assignee: nobody → Olivier Tilloy (osomon)
importance: Undecided → High
Olivier Tilloy (osomon) wrote :

I think this might have been caused by this upstream change: https://chromium.googlesource.com/chromium/src/+/b43825d5319658f1f01b2b487d8c453c582175db, which dlopens libX11-xcb.so.1.

Alexander Deruwe (aderuwe) wrote :

Thanks for the investigation Olivier.

In case it helps, I was very much in a hurry so I just installed whatever other version of chromium-browser I found with apt which happened to be 65.0.3325.181-0ubuntu1 and not the previous. That version somehow had the dependency. Then I made the wrong assumption that it was a recently added one.

Olivier Tilloy (osomon) on 2021-03-17
summary: - Dependency removed on chromium-browser
+ Missing runtime dependency on libx11-xcb1
Olivier Tilloy (osomon) wrote :
Changed in chromium-browser (Ubuntu):
status: Confirmed → Fix Committed
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package chromium-browser - 89.0.4389.90-0ubuntu0.18.04.2

---------------
chromium-browser (89.0.4389.90-0ubuntu0.18.04.2) bionic; urgency=medium

  * debian/control: add an explicit runtime dependency on libx11-xcb1
    (LP: #1919146)

 -- Olivier Tilloy <email address hidden> Wed, 17 Mar 2021 18:52:33 +0100

Changed in chromium-browser (Ubuntu):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers