Mir

Merge lp://staging/~vanvugt/mir/libprotobuf-unlite into lp://staging/mir

Proposed by Daniel van Vugt
Status: Work in progress
Proposed branch: lp://staging/~vanvugt/mir/libprotobuf-unlite
Merge into: lp://staging/mir
Diff against target: 127 lines (+16/-10)
9 files modified
debian/control (+1/-1)
debian/libmirprotobuf4.install (+1/-1)
src/client/mirclient.pc.in (+1/-1)
src/protobuf/CMakeLists.txt (+2/-2)
src/protobuf/mir_protobuf.proto (+3/-0)
src/protobuf/mir_protobuf_wire.proto (+3/-0)
tests/integration-tests/CMakeLists.txt (+1/-1)
tests/integration-tests/graphics/mesa/CMakeLists.txt (+2/-2)
tests/unit-tests/CMakeLists.txt (+2/-2)
To merge this branch: bzr merge lp://staging/~vanvugt/mir/libprotobuf-unlite
Reviewer Review Type Date Requested Status
Mir CI Bot continuous-integration Needs Fixing
Alan Griffiths Needs Information
Review via email: mp+302252@code.staging.launchpad.net

Commit message

Revert back to linking to libprotobuf instead of libprotobuf-lite.
Thankfully we don't have to change the classes we link to, but it
seems we do need to use the full libprotobuf library in order to
avoid it getting confused, corrupting the heap and crashing unity8
every time you log out. (LP: #1535297)

Consider this a semi-permanent workaround to stop the crash reports
from happening.

This change appears to be free from ABI and protocol breaks. Existing
clients/servers can still talk to the new clients/servers.

Description of the change

As well as hopefully stopping the crash reports, this might also
shrink our system footprint if we were the first/last users of
libprotobuf-lite.

To post a comment you must log in.
Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :

FAILED: Continuous integration, rev:3635
https://mir-jenkins.ubuntu.com/job/mir-ci/1405/
Executed test runs:
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-mir/1714/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/1767
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/1758
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/1758
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=yakkety/1758
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=vivid+overlay/1735/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/1735
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/1735/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=yakkety/1735
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=yakkety/1735/artifact/output/*zip*/output.zip
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/1735/console
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/1735/artifact/output/*zip*/output.zip
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/1735/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/1735
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/1735/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://mir-jenkins.ubuntu.com/job/mir-ci/1405/rebuild

review: Needs Fixing (continuous-integration)
Revision history for this message
Alan Griffiths (alan-griffiths) wrote :

1. It would be better if we simply stopped loading libprotobuf-lite into global symbol space with "dlopen(info.dli_fname, RTLD_NOW | RTLD_NOLOAD | RTLD_GLOBAL);". I though Cemil was already working on that?

2. If any of the (current or future) Qt plugins use protobuf-lite then we'll see similar issues with this approach. Have we checked?

review: Needs Information
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

I was going for a quick fix (and waiting to see if it works afterwards).

If anyone has a better alternative that might work, please do.

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Deja vu:
    Protobuf-can-be-reloaded (SEGFAULT)
on vivid+overlay.

Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :

FAILED: Continuous integration, rev:3637
https://mir-jenkins.ubuntu.com/job/mir-ci/1415/
Executed test runs:
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-mir/1726/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/1779
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/1770
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/1770
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=yakkety/1770
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=vivid+overlay/1748/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/1748
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/1748/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=yakkety/1748
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=yakkety/1748/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/1748
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/1748/artifact/output/*zip*/output.zip
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/1748/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/1748
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/1748/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://mir-jenkins.ubuntu.com/job/mir-ci/1415/rebuild

review: Needs Fixing (continuous-integration)
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

It only crashes on vivid now. I'd guess that's possibly bug 1391976 regressing, and perhaps it was fixed upstream in protobuf in xenial and later.

But if the required fix isn't in vivid yet then we can't proceed with this.

Revision history for this message
Christopher Townsend (townsend) wrote :

Based on your last comment, does the Vivid crash occur on the phone? I thought this was a desktop only crash, and if that is still the case, then we don't care about supporting U8 desktop on Vivid.

If the crash does occur on the phone, then well, uh, ignore this comment:)

Unmerged revisions

3637. By Daniel van Vugt

Bump the libmirprotobuf ABI in one last clumsy effort to get
mir_test_reload_protobuf passing on vivid.

3636. By Daniel van Vugt

Merge latest trunk

3635. By Daniel van Vugt

Working

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
The diff is not available at this time. You can reload the page or download it.

Subscribers

People subscribed via source and target branches