2015-12-16 08:07:28 |
Andreas Pokorny |
bug |
|
|
added bug |
2015-12-16 08:10:54 |
Andreas Pokorny |
description |
The mir egl platform fails to load on kvm with qxl enabled. As a result it falls back to trying x11 through xcb.
== SegvAnalysis =================================
Segfault happened at: 0x7ff571bb26e7 <XGetXCBConnection+7>: mov (%rax),%rax
PC (0x7ff571bb26e7) ok
source "(%rax)" (0x00000000) not located in a known VMA region (needed readable region)!
destination "%rax" ok
Stack memory exhausted (SP below stack segment)
== Stacktrace =================================
#0 0x00007ff571bb26e7 in XGetXCBConnection () from /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1
No symbol table info available.
#1 0x00007ff56c58ac74 in ?? () from /usr/lib/x86_64-linux-gnu/mesa-egl/libEGL.so.1
No symbol table info available.
#2 0x00007ff56c584adf in ?? () from /usr/lib/x86_64-linux-gnu/mesa-egl/libEGL.so.1
No symbol table info available.
#3 0x00007ff56c584b99 in ?? () from /usr/lib/x86_64-linux-gnu/mesa-egl/libEGL.so.1
No symbol table info available.
#4 0x00007ff56c580b32 in eglInitialize () from /usr/lib/x86_64-linux-gnu/mesa-egl/libEGL.so.1
No symbol table info available.
#5 0x00007ff56cd7cc1f in ?? () from /usr/lib/x86_64-linux-gnu/libmirserver.so.36
No symbol table info available.
#6 0x00007ff56cd7cd7b in ?? () from /usr/lib/x86_64-linux-gnu/libmirserver.so.36
No symbol table info available.
#7 0x00007ff56cd7d420 in ?? () from /usr/lib/x86_64-linux-gnu/libmirserver.so.36
No symbol table info available.
#8 0x00007ff56be7882c 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
No symbol table info available.
#9 0x00007ff56cd7de6b in ?? () from /usr/lib/x86_64-linux-gnu/libmirserver.so.36
No symbol table info available.
#10 0x00007ff56cd7e450 in ?? () from /usr/lib/x86_64-linux-gnu/libmirserver.so.36
No symbol table info available.
#11 0x00007ff56cd0ef3c in ?? () from /usr/lib/x86_64-linux-gnu/libmirserver.so.36
No symbol table info available.
#12 0x00007ff56cd0f87d in ?? () from /usr/lib/x86_64-linux-gnu/libmirserver.so.36
No symbol table info available.
#13 0x00007ff56cd0de31 in mir::DefaultServerConfiguration::the_display() () from /usr/lib/x86_64-linux-gnu/libmirserver.so.3 |
The mir egl platform fails to load on kvm with qxl enabled. As a result it falls back to trying x11 through xcb.
#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 |
|
2015-12-16 19:38:06 |
Andreas Pokorny |
summary |
eglInitialize crashes on kvm qxl with mir |
mir may use incompatible client platform to validate server display |
|
2015-12-16 20:04:08 |
Andreas Pokorny |
description |
The mir egl platform fails to load on kvm with qxl enabled. As a result it falls back to trying x11 through xcb.
#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 |
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. |
|
2015-12-17 09:51:51 |
Daniel van Vugt |
mir: importance |
Undecided |
High |
|
2015-12-17 09:51:55 |
Daniel van Vugt |
mir: status |
New |
Triaged |
|
2015-12-17 09:52:45 |
Daniel van Vugt |
mir: milestone |
|
0.19.0 |
|
2015-12-17 22:57:19 |
Andreas Pokorny |
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. |
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. |
|
2015-12-22 07:38:54 |
Daniel van Vugt |
branch linked |
|
lp:~vanvugt/mir/fix-1527449 |
|
2016-01-11 03:56:04 |
Daniel van Vugt |
mir: assignee |
|
Daniel van Vugt (vanvugt) |
|
2016-01-11 03:56:07 |
Daniel van Vugt |
mir: status |
Triaged |
In Progress |
|
2016-01-11 04:01:29 |
Daniel van Vugt |
summary |
mir may use incompatible client platform to validate server display |
Mir may use incompatible client platform to validate server display and crash in XGetXCBConnection() |
|
2016-01-19 16:08:01 |
Daniel van Vugt |
branch linked |
|
lp:~vanvugt/mir/fix-1527449-Plugin |
|
2016-01-19 16:08:15 |
Daniel van Vugt |
branch linked |
|
lp:~vanvugt/mir/fix-1527449-make_module_ptr |
|
2016-01-19 23:02:42 |
Brandon Schaefer |
mir: milestone |
0.19.0 |
0.20.0 |
|
2016-01-21 00:16:12 |
Daniel van Vugt |
branch linked |
|
lp:~vanvugt/mir/fix-1527449-make_module_ptr-2 |
|
2016-01-21 22:09:11 |
PS Jenkins bot |
mir: status |
In Progress |
Fix Committed |
|
2016-01-21 22:21:12 |
Daniel van Vugt |
bug task added |
|
mir (Ubuntu) |
|
2016-01-28 02:49:45 |
Daniel van Vugt |
mir: milestone |
0.20.0 |
0.19.0 |
|
2016-01-29 01:28:25 |
Launchpad Janitor |
mir (Ubuntu): status |
New |
Confirmed |
|
2016-01-29 01:29:18 |
Daniel van Vugt |
summary |
Mir may use incompatible client platform to validate server display and crash in XGetXCBConnection() |
Mir clients (including Unity8 itself) crash in XGetXCBConnection() if multiple versions of mir-client-platform-mesa are installed. |
|
2016-01-29 01:29:22 |
Daniel van Vugt |
mir (Ubuntu): importance |
Undecided |
High |
|
2016-01-29 01:29:26 |
Daniel van Vugt |
mir (Ubuntu): status |
Confirmed |
Triaged |
|
2016-01-29 11:48:08 |
Alan Griffiths |
branch linked |
|
lp:~alan-griffiths/mir/fix-1526658 |
|
2016-02-01 01:52:24 |
Daniel van Vugt |
mir: status |
Fix Committed |
Fix Released |
|
2016-02-01 01:52:30 |
Daniel van Vugt |
mir (Ubuntu): status |
Triaged |
Fix Released |
|
2016-02-01 09:20:19 |
Daniel van Vugt |
branch linked |
|
lp:~vanvugt/mir/kill-leaky-modules |
|
2016-02-02 13:17:09 |
PS Jenkins bot |
mir: status |
Fix Released |
Fix Committed |
|
2016-02-03 01:22:18 |
Daniel van Vugt |
mir: status |
Fix Committed |
Fix Released |
|
2016-02-03 06:28:14 |
Launchpad Janitor |
branch linked |
|
lp:mir/0.19 |
|
2016-02-03 06:38:16 |
Daniel van Vugt |
nominated for series |
|
mir/0.19 |
|
2016-02-03 06:38:16 |
Daniel van Vugt |
bug task added |
|
mir/0.19 |
|
2016-02-03 06:38:23 |
Daniel van Vugt |
mir/0.19: status |
New |
Fix Committed |
|
2016-02-03 06:38:26 |
Daniel van Vugt |
mir/0.19: milestone |
|
0.19.1 |
|
2016-02-03 06:38:32 |
Daniel van Vugt |
bug task deleted |
mir/0.19 |
|
|
2016-02-10 03:55:53 |
Daniel van Vugt |
branch unlinked |
lp:mir/0.19 |
|
|