Missing runtime dependency on libx11-xcb1

Bug #1919146 reported by Alexander Deruwe
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
chromium-browser (Ubuntu)
Fix Released
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

Revision history for this message
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
Revision history for this message
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?

Revision history for this message
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
Revision history for this message
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.

Revision history for this message
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)
summary: - Dependency removed on chromium-browser
+ Missing runtime dependency on libx11-xcb1
Revision history for this message
Olivier Tilloy (osomon) wrote :
Changed in chromium-browser (Ubuntu):
status: Confirmed → Fix Committed
Revision history for this message
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  
Everyone can see this information.

Other bug subscribers

Remote bug watches

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