← Back to team overview

touch-packages team mailing list archive

[Bug 1526658] Re: Mir clients (including Unity8 itself) crash in XGetXCBConnection() if multiple versions of mir-client-platform-mesa are installed.

 

Alan's enhanced fixed has now landed for Mir 0.20.0, which should
eliminate the need for the above workaround. Also backported in
preparation for Mir 0.19.1

** Also affects: mir/0.19
   Importance: Undecided
       Status: New

** Changed in: mir/0.19
       Status: New => Fix Committed

** Changed in: mir/0.19
    Milestone: None => 0.19.1

** No longer affects: mir/0.19

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to mir in Ubuntu.
https://bugs.launchpad.net/bugs/1526658

Title:
  Mir clients (including Unity8 itself) crash in XGetXCBConnection() if
  multiple versions of mir-client-platform-mesa are installed.

Status in Mir:
  Fix Released
Status in mir package in Ubuntu:
  Fix Released

Bug description:
  The mir egl platform fails to load under certain circumstances
  producing the following stack trace:

  #0  0x00007ffff3a996e7 in XGetXCBConnection () from /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1
  #1  0x00007ffff534dc74 in dri2_initialize_x11_dri2 (drv=<optimized out>, disp=0x6d1b90) at ../../../../src/egl/drivers/dri2/platform_x11.c:1268
  #2  dri2_initialize_x11 (drv=<optimized out>, disp=0x6d1b90) at ../../../../src/egl/drivers/dri2/platform_x11.c:1357
  #3  0x00007ffff5347adf in _eglMatchAndInitialize (dpy=0x6d1b90) at ../../../../src/egl/main/egldriver.c:261
  #4  0x00007ffff5347b99 in _eglMatchDriver (dpy=dpy@entry=0x6d1b90, test_only=test_only@entry=0) at ../../../../src/egl/main/egldriver.c:292
  #5  0x00007ffff5343b32 in eglInitialize (dpy=0x6d1b90, major=0x7fffffffdac8, minor=0x7fffffffdacc) at ../../../../src/egl/main/eglapi.c:482
  #6  0x00007ffff686cc1f in ?? () from /usr/lib/x86_64-linux-gnu/libmirserver.so.36
  #7  0x00007ffff686cd7b in ?? () from /usr/lib/x86_64-linux-gnu/libmirserver.so.36
  #8  0x00007ffff686d420 in ?? () from /usr/lib/x86_64-linux-gnu/libmirserver.so.36
  #9  0x00007ffff59dd82c in mir::graphics::OverlappingOutputGrouping::for_each_group(std::function<void (mir::graphics::OverlappingOutputGroup const&)> const&) () from /usr/lib/x86_64-linux-gnu/libmirplatform.so.11
  #10 0x00007ffff686de6b in ?? () from /usr/lib/x86_64-linux-gnu/libmirserver.so.36
  #11 0x00007ffff686e450 in ?? () from /usr/lib/x86_64-linux-gnu/libmirserver.so.36
  #12 0x00007ffff67fef3c in ?? () from /usr/lib/x86_64-linux-gnu/libmirserver.so.36
  #13 0x00007ffff67ff87d in ?? () from /usr/lib/x86_64-linux-gnu/libmirserver.so.36
  #14 0x00007ffff67fde31 in mir::DefaultServerConfiguration::the_display() () from /usr/lib/x86_64-linux-gnu/libmirserver.so.36

  In the given case a 0.17.1 mirclient9 was combined with a 0.18 mirserver36. mirserver36 is compatible with mirclient9. The mirserver36 works with mirclient9. The significant difference lies in the client and server platforms. The native display used for egl initialization is created by the server. Mesa then uses a function from the client platform to validate the native display. For yet unknown reason the 0.17.1 libmirclient9 did select mesa.so.2 (from mir-client-platform-mesa2 0.14). Thus the validation failed.
  It did so probably because that version was a left over of the 0.14 release with a partially bumped ABI. So the remaining issue is that there is an ABI we have to care about between the native EGL Display given to mesa, and the client platform that validates it.

To manage notifications about this bug go to:
https://bugs.launchpad.net/mir/+bug/1526658/+subscriptions