Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(123)

Issue 2861163002: Linux: Disable DBus auto-launch (Closed)

Created:
3 years, 7 months ago by Primiano Tucci (use gerrit)
Modified:
3 years, 7 months ago
Reviewers:
Lei Zhang, jam, satorux1, satorux
CC:
chromium-reviews, Ken Russell (switch to Gerrit), Rick Byers, johnchen
Target Ref:
refs/heads/master
Project:
chromium
Visibility:
Public.

Description

Linux: Disable DBus auto-launch This is a workaround (ETA ~ 2-3 years) for libdbus not being multi-threading friendly and causing random hangs when running chrome outside of Linux desktop environments. Background: ----------- Typically, Linux desktop environments set the DBUS_SESSION_BUS_ADDRESS environment variable. This variable allows the dbus client library to directly connect to the existing bus, which is started by the desktop environment or systemd. When this variable is missing, the dbus client library will fallback to auto-launch mode [1], which causes 4 nested fork() + exec() calls. Doing this has two problems: (i) slows down startup; (ii) can hang the browser if the fork() happens while another thread is in a malloc() (Chrome's tcmalloc has no at-fork handlers). This situation (no env variable) is very common in test scenarios (browsertests, chromedriver, etc). Change introduced by this CL: ----------------------------- This CL sets the bus address env variable to "disabled:" if not set. This effectively shuts down the dbus auto-launch. If necessary, this behavior can be restored by setting, before launching chrome, DBUS_SESSION_BUS_ADDRESS="autolaunch:" . This workaround will be necessary until libdbus and gspawn are fixed to be multi-threading friendly [2,3] and that fix rolls into the various distributions. The change is introduced in the main embedder rather than in the google-chrome wrapper, as several binaries can be affected by this, for instance: - browser tests (http://crbug.com/693668) - chrome --headless - webdriver/selenium which seem to directly invoke "chrome" see https://github.com/SeleniumHQ/docker-selenium/issues/87 [1] https://dbus.freedesktop.org/doc/dbus-launch.1.html [2] https://bugs.freedesktop.org/show_bug.cgi?id=100843 [3] https://bugs.chromium.org/p/chromedriver/issues/detail?id=1699 BUG=715658, 695643, 713947 TEST=strace -ff -o trace chrome; grep dbus-launch trace* Review-Url: https://codereview.chromium.org/2861163002 Cr-Commit-Position: refs/heads/master@{#469987} Committed: https://chromium.googlesource.com/chromium/src/+/8511820ec8280caacbd4f81f3ecd13b6c61681b0

Patch Set 1 #

Total comments: 1
Unified diffs Side-by-side diffs Delta from patch set Stats (+13 lines, -0 lines) Patch
M services/service_manager/embedder/main.cc View 1 chunk +13 lines, -0 lines 1 comment Download

Messages

Total messages: 19 (8 generated)
Primiano Tucci (use gerrit)
3 years, 7 months ago (2017-05-05 13:22:57 UTC) #3
Lei Zhang
lgtm I've definitely hit my share of these deadlocks.
3 years, 7 months ago (2017-05-05 21:50:39 UTC) #4
Primiano Tucci (use gerrit)
+jam, for OWNERS
3 years, 7 months ago (2017-05-05 23:44:28 UTC) #6
satorux1
https://codereview.chromium.org/2861163002/diff/1/services/service_manager/embedder/main.cc File services/service_manager/embedder/main.cc (right): https://codereview.chromium.org/2861163002/diff/1/services/service_manager/embedder/main.cc#newcode351 services/service_manager/embedder/main.cc:351: setenv("DBUS_SESSION_BUS_ADDRESS", "disabled:", kNoOverrideIfAlreadySet); Several environmental variables, such as GNOME_DISABLE_CRASH_DIALOG, ...
3 years, 7 months ago (2017-05-08 01:30:37 UTC) #8
Primiano Tucci (use gerrit)
On 2017/05/08 01:30:37, satorux1 wrote: > https://codereview.chromium.org/2861163002/diff/1/services/service_manager/embedder/main.cc > File services/service_manager/embedder/main.cc (right): > > https://codereview.chromium.org/2861163002/diff/1/services/service_manager/embedder/main.cc#newcode351 > ...
3 years, 7 months ago (2017-05-08 10:39:11 UTC) #10
jam
rs lgtm
3 years, 7 months ago (2017-05-08 14:05:52 UTC) #11
commit-bot: I haz the power
CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2861163002/1
3 years, 7 months ago (2017-05-08 14:06:30 UTC) #13
commit-bot: I haz the power
Committed patchset #1 (id:1) as https://chromium.googlesource.com/chromium/src/+/8511820ec8280caacbd4f81f3ecd13b6c61681b0
3 years, 7 months ago (2017-05-08 15:10:12 UTC) #16
iclelland
A revert of this CL (patchset #1 id:1) has been created in https://codereview.chromium.org/2869843003/ by iclelland@chromium.org. ...
3 years, 7 months ago (2017-05-08 18:40:10 UTC) #17
Primiano Tucci (use gerrit)
A revert of this CL (patchset #1 id:1) has been created in https://codereview.chromium.org/2868023002/ by primiano@chromium.org. ...
3 years, 7 months ago (2017-05-09 10:57:10 UTC) #18
Primiano Tucci (use gerrit)
3 years, 7 months ago (2017-05-09 16:13:44 UTC) #19
Message was sent while issue was closed.
FTR this relanded in https://codereview.chromium.org/2865283002/ - #470301

Powered by Google App Engine
This is Rietveld 408576698