New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 823962 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Mar 2018
Cc:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug



Sign in to add a comment

Buildbot Linux Builder (dbg)(32) looking for library in the wrong place

Project Member Reported by hzl@chromium.org, Mar 21 2018

Issue description

Currently Buildbot Linux Builder (dbg)(32) is looking for library in "/usr/lib/i386-linux-gnu/".

The correct path to look for library should be "src/build/linux/debian_sid_i386-sysroot/usr/lib/", because this is where the libraries are downloaded.

It seems to me by accident, buildbot linux builder (dbg)(32) happens to have the necessary libraries in "/usr/lib/i386-linux-gnu/" and magically works.

This is not the case for Luci Linux Builder (dbg)(32). On the Luci bot, the libraries are downloaded to "src/build/linux/debian_sid_i386-sysroot/usr/lib/" as intended, but the bot is looking for library in "/usr/lib/i386-linux-gnu/" same as the buildbot Linux Builder (dbg)(32) and causes an error.





 

Comment 2 by hzl@chromium.org, Mar 21 2018

Labels: -Pri-3 Pri-2
Cc: dpranke@chromium.org
Status: Started (was: Untriaged)
Loading the libraries from /usr/lib is correct -- binaries should not run against the sysroot libraries.

The i386 version of libX11-xcb.so.1 is necessary on the Linux builders.

Comment 4 by efoo@chromium.org, Mar 21 2018

Labels: LUCI-TaskForce
On Buildbot machine (build45-m1) libX11-xcb.so.1 comes from package libx11-xcb1:i386 (discovered by running dpkg -S /usr/lib/i386-linux-gnu/libX11-xcb.so.1). It is also a symlink to libX11-xcb.so.1.0.0.

On Swarming machine (build16-m1) /usr/lib/i386-linux-gnu/libX11-xcb.so.1 exists, but it's not part of any debian package (how?..), and it is also not a symlink. In fact it is empty. I don't understand how it could happen.

Regarless, I think the package in question should be installed by 'install-build-deps.sh --lib32'. If not, it looks like a bug in install-build-deps.sh. 

Note that the problem of running install-build-deps.sh automatically by Puppet is unsolved, so we'll have to do it manually...
Ahh, we ran install-build-deps.sh on the afflicted machine, but didn't realize there was an option to explicitly select 32 bit packages.

Zhiling, could you try running the script again, but this time add the --lib32 option?

(And the empty lib is prob hzl manually touching/experimenting on the bot.)

> could you try running the script again, but this time add the --lib32 option?

You must wait for https://chromium-review.googlesource.com/c/chromium/src/+/972590 to land first.
Project Member

Comment 8 by bugdroid1@chromium.org, Mar 21 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/dd47ad310164aa2160129d98bd8be7b7357ddc51

commit dd47ad310164aa2160129d98bd8be7b7357ddc51
Author: Tom Anderson <thomasanderson@chromium.org>
Date: Wed Mar 21 19:30:19 2018

Add libx11-xcb1:i386 as a 32-bit build dep

libX11-xcb.so.1 is required to generate the v8 context shapshot.  This was
causing the LUCI version of Linux Build (dbg)(32) to fail [1].

Patch adapted from [2] from timbrown@.

[1] https://logs.chromium.org/v/?s=chromium%2Fbuildbucket%2Fcr-buildbucket.appspot.com%2F8951515267836408512%2F%2B%2Fsteps%2Fcompile%2F0%2Fstdout
[2] https://chromium-review.googlesource.com/c/chromium/src/+/940196

BUG= 823962 
R=dpranke
CC=timbrown

Change-Id: I8fa8f8d8281613193bc9faf2f2c0c86d900ac401
Reviewed-on: https://chromium-review.googlesource.com/972590
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#544802}
[modify] https://crrev.com/dd47ad310164aa2160129d98bd8be7b7357ddc51/build/install-build-deps.sh

Owner: hzl@chromium.org
Status: Assigned (was: Started)
Back over to hzl@ to rerun install-build-deps
Cc: thomasanderson@chromium.org

Comment 11 by hzl@chromium.org, Mar 22 2018

Thanks for the quick fix. In /usr/lib/i386-linux-gnu/libX11, new files are created.

chrome-bot@build16-m1:(Linux 14.04):~$ ls /usr/lib/i386-linux-gnu/libX11<TAB>
libX11.so.6          libX11.so.6.3.0      libX11-xcb.so.1.0.0 

As you can see, the created file is "libX11-xcb.so.1.0.0", not "libX11-xcb.so.1".
The same thing happened on the buildbot linux builder (dbg)(32). The way people solved it 5 years ago (that file was created 5 years ago) is to create a sym link from "libX11-xcb.so.1" to "libX11-xcb.so.1.0.0".

The following is what I see on buildbot linux builder dbg 32.
ls -la /usr/lib/i386-linux-gnu/libX11-xcb.so.1
lrwxrwxrwx 1 root root 19 Dec  4  2013 /usr/lib/i386-linux-gnu/libX11-xcb.so.1 -> libX11-xcb.so.1.0.0

I will do the same thing to fix it.

Comment 12 by hzl@chromium.org, Mar 22 2018

And now, the failing command works! Thanks all!

Comment 13 by hzl@chromium.org, Mar 22 2018

Status: Fixed (was: Assigned)

Sign in to add a comment