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

Issue 702629 link

Starred by 1 user

Issue metadata

Status: Duplicate
Merged: issue 700120
Owner: ----
Closed: Mar 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 3
Type: Bug



Sign in to add a comment

component build crash on Linux Xenial because of symbol conflict with system's libprotobuf

Project Member Reported by primiano@chromium.org, Mar 17 2017

Issue description

Context:
[chromium-dev] Not able to launch chromium browser
[blink-dev] Chromium on Xenial - protobuf version mismatch

My understanding of the situation is the following.
In component build, we end up with some .so that exposes protobuf symbols from third_party/protobuf (that we build from sources).

At runtime, however, we end up indirectly depending on libmirprotobuf.so.3 (a system package), apparently due to GTK 3.

Now we get into the state where both our .so(s) and libmirprotobuf.so.3 exposes some protobuf symbol. Depending on the loading order (IIRC symbol resolution starts from the root executable and continues the search in BFS) our symbols might win (whoever wins is irrelevant really)

So we end up with two code paths expecting different versions of protobuf (this is wai) but using the same library (this is bad)

This should be a problem only for component builds, as in static builds we don't expose protobuf symbols.

Not sure what the right fix would be here, this is a quite tricky problem.
On possibility might be using dlmopen with LM_ID_NEWLM to create a new loader namespace. Although haven't thought to this enough to be confident this would work without causing more problems.

 
Mergedinto: 700120
Status: Duplicate (was: Unconfirmed)
Ah I think there was a bug already:  Issue 700120 
Sorry realized just now

Sign in to add a comment