qt crashed when switching video out mode to external or internal only mode
| Affects | Status | Importance | Assigned to | Milestone | |
|---|---|---|---|---|---|
| | Checkbox GUI (Legacy) |
Medium
|
Unassigned | ||
| | OEM Priority Project |
Critical
|
Unassigned | ||
| | Trusty |
Critical
|
Unassigned | ||
| | Qt |
New
|
Undecided
|
Unassigned | |
| | qtbase-opensource-src (Ubuntu) |
Undecided
|
Unassigned | ||
Bug Description
checkbox-gui crashed with following console outputs:
pure virtual method called
terminate called without an active exception
Aborted (core dumped)
Steps to reproduce:
1. open checkbox-gui
2. connected external display
3. switch video output mode, usually by using the common video output switch hotkey.
Expected result:
checkbox-gui still running when switching back to extended desktop video out mode.
Actual result:
checkbox-gui crashed
| Changed in checkbox-gui: | |
| importance: | Undecided → High |
| importance: | High → Critical |
| Daniel Manrique (roadmr) wrote : | #2 |
| Zygmunt Krynicki (zyga) wrote : | #3 |
Pure virtual method call == C++ bugger. I'll investigate and see if I can reproduce it here. Looks like Qt bug to me though.
| Changed in checkbox-gui: | |
| assignee: | nobody → Zygmunt Krynicki (zkrynicki) |
| Zygmunt Krynicki (zyga) wrote : | #4 |
Looking at the crash file I see this:
Disassembly:
=> 0x7ffe67b06f79 <__GI_raise+57>: cmp $0xffffffffffff
0x7ffe67b06f7f <__GI_raise+63>: ja 0x7ffe67b06f9a <__GI_raise+90>
0x7ffe67b06f81 <__GI_raise+65>: repz retq
0x7ffe67b06f83 <__GI_raise+67>: nopl 0x0(%rax,%rax,1)
0x7ffe67b06f88 <__GI_raise+72>: test %eax,%eax
0x7ffe67b06f8a <__GI_raise+74>: jg 0x7ffe67b06f69 <__GI_raise+41>
0x7ffe67b06f8c <__GI_raise+76>: mov %eax,%ecx
0x7ffe67b06f8e <__GI_raise+78>: neg %ecx
0x7ffe67b06f90 <__GI_raise+80>: test $0x7fffffff,%eax
0x7ffe67b06f95 <__GI_raise+85>: cmove %esi,%ecx
0x7ffe67b06f98 <__GI_raise+88>: jmp 0x7ffe67b06f69 <__GI_raise+41>
0x7ffe67b06f9a <__GI_raise+90>: mov 0x387ec7(%rip),%rdx # 0x7ffe67e8ee68
0x7ffe67b06fa1 <__GI_raise+97>: neg %eax
0x7ffe67b06fa3 <__GI_raise+99>: mov %eax,%fs:(%rdx)
0x7ffe67b06fa6 <__GI_raise+102>: or $0xffffffffffff
0x7ffe67b06faa <__GI_raise+106>: retq
InstallationDate: Installed on 2014-05-19 (0 days ago)
InstallationMedia: Ubuntu 14.04 LTS "Trusty Tahr" - Release amd64 (20140417)
Package: checkbox-gui 0.17.9~
PackageArchitec
ProcVersionSign
Registers:
rax 0x0 0
rbx 0x18c3790 25966480
rcx 0xffffffffffffffff -1
rdx 0x6 6
rsi 0x2746 10054
rdi 0x2746 10054
rbp 0x384000005a0 0x384000005a0
rsp 0x7fff2933c568 0x7fff2933c568
r8 0x7ffe67e919d0 140730641750480
r9 0x7ffe6816b010 140730644738064
r10 0x8 8
r11 0x202 514
r12 0x4dbc610 81511952
r13 0x18c3790 25966480
r14 0x18 24
r15 0x383 899
rip 0x7ffe67b06f79 0x7ffe67b06f79 <__GI_raise+57>
eflags 0x202 [ IF ]
cs 0x33 51
ss 0x2b 43
ds 0x0 0
es 0x0 0
fs 0x0 0
gs 0x0 0
SourcePackage: checkbox-gui
Stacktrace:
#0 0x00007ffe67b06f79 in __GI_raise (sig=sig@entry=6) at ../nptl/
resultvar = 0
pid = 10054
selftid = 10054
#1 0x00007ffe67b0a388 in __GI_abort () at abort.c:89
save_stage = 2
act = {__sigaction_
sigs = {__val = {32, 0 <repeats 15 times>}}
#2 0x00007ffe6810c6b5 in __gnu_cxx:
No symbol table info available.
#3 0x00007ffe6810a836 in ?? () from /usr/lib/
No symbol table info available.
#4 0x00007ffe6810a863 in std::terminate() () from /usr/lib/
No symbol table info available.
#5 0x00007ffe6810b33f in __cxa_pure_
| Zygmunt Krynicki (zyga) wrote : | #5 |
Looks like the fault is around:
#6 0x00007ffe68b27aca in QPlatformScreen
| Zygmunt Krynicki (zyga) wrote : | #6 |
Unable to reproduce on dual-head 3rd gen (ivy bridge) intel graphics. What was the GPU combination on the box that you got this on? I don't know if it is relevant but just perhaps
| Zygmunt Krynicki (zyga) wrote : | #7 |
I just reproduced this on a box halfway around the world (with hybrid nvidia+intel graphics). Rebuilding Qt with all the debugging symbols to see variables and other details.
| Zygmunt Krynicki (zyga) wrote : | #8 |
Partial backtrace from the affectec box. Still waiting for full Qt build
pure virtual method called
terminate called without an active exception
Program received signal SIGABRT, Aborted.
0x00007ffff4fb0f79 in __GI_raise (sig=sig@entry=6)
at ../nptl/
56 ../nptl/
(gdb)
(gdb) bt
#0 0x00007ffff4fb0f79 in __GI_raise (sig=sig@entry=6)
at ../nptl/
#1 0x00007ffff4fb4388 in __GI_abort () at abort.c:89
#2 0x00007ffff55b66b5 in __gnu_cxx:
from /usr/lib/
#3 0x00007ffff55b4836 in ?? () from /usr/lib/
#4 0x00007ffff55b4863 in std::terminate() ()
from /usr/lib/
#5 0x00007ffff55b533f in __cxa_pure_virtual ()
from /usr/lib/
#6 0x00007ffff5fd1aca in QPlatformScreen
from /usr/lib/
#7 0x00007ffff6003c42 in QScreen:
from /usr/lib/
#8 0x00007ffff6003ce9 in QScreen:
from /usr/lib/
#9 0x00007ffff7839fd2 in ?? () from /usr/lib/
#10 0x00007ffff5ae92a6 in QMetaObject:
from /usr/lib/
#11 0x00007ffff5fe442f in QWindow:
from /usr/lib/
#12 0x00007ffff5fe6aa0 in QWindowPrivate:
from /usr/lib/
---Type <return> to continue, or q <return> to quit---
#13 0x00007ffff5fe6c22 in QWindow:
from /usr/lib/
#14 0x00007ffff5ae92a6 in QMetaObject:
from /usr/lib/
#15 0x00007ffff5ae986f in QObject:
from /usr/lib/
#16 0x00007ffff5af0853 in QObject::~QObject() ()
from /usr/lib/
#17 0x00007ffff62834b7 in QScreen::~QScreen() ()
from /usr/lib/
#18 0x00007ffff5fd1ca9 in QPlatformScreen
from /usr/lib/
#19 0x00007fffeda0b429 in ?? ()
from /usr/lib/
#20 0x00007fffeda000ab in ?? ()
from /usr/lib/
#21 0x00007fffeda00785 in ?? ()
from /usr/lib/
#22 0x00007fffeda0190b in ?? ()
from /usr/lib/
#23 0x00007ffff5aea22e in QObject:
from /usr/lib/
#24 0x00007ffff6906c8c in QApplicationPri
---Type <return> to continue, or q <return> to quit---
() from /usr/lib/
#25 0x00007ffff690be56 in QApplication:
from /usr/lib/x8...
| Zygmunt Krynicki (zyga) wrote : | #9 |
| Zygmunt Krynicki (zyga) wrote : | #11 |
There's a small chance that this is X driver related. The bug that this happening on has AMD Radeon HD 6290
00:01.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Wrestler [Radeon HD 6290]
| tags: | added: 201204-10857 |
| Zygmunt Krynicki (zyga) wrote : | #12 |
Comment that might be relevant. Apparently this is fixed on the cocoa backend: https:/
| Daniel Manrique (roadmr) wrote : | #13 |
An interesting observation while trying to reproduce this: it only happens if you "hot-plug" the second monitor on an already started system. It doesn't happen if the system had the external monitor connected when it booted. That is:
Scenario A
1- start a laptop with no external monitor connected
2- plug in the external monitor
3- start checkbox-gui
4- press the monitor switching key several times
5- BOOM CRASH
Scenario B
1- start a laptop with external monitor already connected
2- start checkbox-gui
4- press monitor switching key several times
5- no crash
| Daniel Manrique (roadmr) wrote : | #14 |
List of packages mentioned in the crash report, for which we'd need to install the debug symbol packages from ddebs.ubuntu.com as seen here:
https:/
ok, the list of packages:
http://
A diabolical command used to install the debug symbol files, pruning a few ones that seemed troublesome:
http://
| Timo Jyrinki (timo-jyrinki) wrote : | #15 |
Adding qtbase-
| Zygmunt Krynicki (zyga) wrote : | #16 |
I suspect it's not QTBUG-32973 as that seems to be about the X window not being re-mapped again. Here we crash on what appears to be a pure virtual method call.
| Launchpad Janitor (janitor) wrote : | #17 |
Status changed to 'Confirmed' because the bug affects multiple users.
| Changed in qtbase-opensource-src (Ubuntu): | |
| status: | New → Confirmed |
| Changed in checkbox-gui: | |
| importance: | Critical → Medium |
| tags: | removed: 14-04-blocker |
| Steve Magoun (smagoun) wrote : | #18 |
This affects all SDK apps - I can reproduce it with the clock, calendar, gallery, and music apps on the desktop.
On my system (Dell XPS 13 with external display) the video mode hotkey cycles in the following order:
extended mode -> mirror mode -> external display only -> internal display only -> extended mode
If I launch an SDK app while in extended mode, the app comes up on the laptop display. The SDK apps stay running after switching to mirror mode. Switching again to "external display only" mode reliably causes the SDK apps to crash.
| Changed in qtbase-opensource-src (Ubuntu): | |
| assignee: | nobody → Timo Jyrinki (timo-jyrinki) |
| Changed in oem-priority: | |
| importance: | Undecided → High |
| importance: | High → Critical |
| Timo Jyrinki (timo-jyrinki) wrote : | #19 |
We're planning on shipping Qt 5.3.0 soon in utopic. For triaging, could you check on utopic and 5.3.0 landing PPA (see the description for instructions on the page https:/
My utopic has broken unity-settings-
| Changed in qtbase-opensource-src (Ubuntu): | |
| status: | Confirmed → Incomplete |
| Maarten Lankhorst (mlankhorst) wrote : | #20 |
Not a xorg bug, I'll take a look at the qt changes..
| Maarten Lankhorst (mlankhorst) wrote : | #21 |
Not a regression either, trusty is affected in the same way.
| Maarten Lankhorst (mlankhorst) wrote : | #22 |
Easiest way for me to reproduce is simply starting a qt program, then taking offline the screen that had checkbox-gui running.
| Taihsiang Ho (taihsiangho) wrote : | #23 |
Following the comment #19,
5.3.0 could reproduce this bug.
Tested on utopic daily build (utopic-
Besides, 5.2.1 could reproduce this bug as well.
--- more information ---
checkbox-gui:
Installed: 0.17.9~
Candidate: 0.17.9~
Version table:
*** 0.17.9~
500 http://
100 /var/lib/
0.
500 http://
libqt5core5a:
Installed: 5.3.0+dfsg-
Candidate: 5.3.0+dfsg-
Version table:
*** 5.3.0+dfsg-
500 http://
100 /var/lib/
5.
500 http://
All of the ways,
'updating checkbox-gui',
'updating checkbox-gui and libqt5core5a',
'dist-upgrade',
are tested on this daily build utopic.
And all of cases could reproduce this issue.
| Timo Jyrinki (timo-jyrinki) wrote : | #24 |
Thanks for testing. Technically the PPA tested was not the most up-to-date (if you read the instructions on the front page of that PPA, it points to the landing silo PPA that has newer packaging), but it should be good enough for this testing.
I still couldn't reproduce the problem for some reason on my setup (intel sandy bridge, laptop screen + external monitor) with either Qt 5.2 or 5.3 on utopic, but the fact that it also seems to happen on Qt 5.3 indicates it's not something that's fixed upstream.
The best way forward would be to file a Qt upstream bug report at https:/
| Zygmunt Krynicki (zyga) wrote : Re: [Bug 1318584] Re: checkbox-gui crashed when switching video out mode to external only mode | #25 |
NOTE: I was equally unable to reproduce that in sandy bridge. I don't know
exactly how hardware related it seems to be but it's clear it is to some
degree. I think that we still have access to some hardware that can always
reproduce this in Canonical and there any Qt application is crashing
reliably all the time.
Thanks
ZK
On Mon, Jun 9, 2014 at 11:34 AM, Timo Jyrinki <email address hidden>
wrote:
> Thanks for testing. Technically the PPA tested was not the most up-to-
> date (if you read the instructions on the front page of that PPA, it
> points to the landing silo PPA that has newer packaging), but it should
> be good enough for this testing.
>
> I still couldn't reproduce the problem for some reason on my setup
> (intel sandy bridge, laptop screen + external monitor) with either Qt
> 5.2 or 5.3 on utopic, but the fact that it also seems to happen on Qt
> 5.3 indicates it's not something that's fixed upstream.
>
> The best way forward would be to file a Qt upstream bug report at
> https:/
> example, if it's any Qt app, just qmlscene test.qml or such would be
> enough for the app part, and then describing how the actual crash
> happens and maybe trying to get a backtrace out of it.
>
> --
> You received this bug notification because you are a bug assignee.
> https:/
>
> Title:
> checkbox-gui crashed when switching video out mode to external only
> mode
>
> To manage notifications about this bug go to:
> https:/
>
| Zygmunt Krynicki (zyga) wrote : Re: checkbox-gui crashed when switching video out mode to external only mode | #26 |
Switching qt bug back to confirmed since it still occurs with the PPA
| Changed in qtbase-opensource-src (Ubuntu): | |
| status: | Incomplete → Confirmed |
| Taihsiang Ho (taihsiangho) wrote : | #27 |
more on comment #23 and comment #24
the most up-to-date qt could reproduce this bug
--- more information ---
checkbox-gui:
Installed: 0.17.9~
Candidate: 0.17.9~
Version table:
0.
500 http://
*** 0.17.9~
100 /var/lib/
0.
500 http://
libqt5core5a:
Installed: 5.3.0+dfsg-2ubuntu1
Candidate: 5.3.0+dfsg-2ubuntu1
Version table:
*** 5.3.0+dfsg-2ubuntu1 0
500 http://
100 /var/lib/
5.
500 http://
5.
500 http://
Distributor ID: Ubuntu
Description: Ubuntu Utopic Unicorn (development branch)
Release: 14.10
Codename: utopic
3.15.0-5-generic
tested on CID 201402-14684
00:02.0 VGA compatible controller [0300]: Intel Corporation Haswell-ULT Integrated Graphics Controller [8086:0a16] (rev 09)
08:00.0 3D controller [0302]: NVIDIA Corporation GF117M [GeForce 610M/710M/820M / GT 620M/625M/
| Taihsiang Ho (taihsiangho) wrote : | #28 |
tested by 'qmlscene hellowolrd.qml' on the other machine 201401-14529 with 14.04
could reproduce this bug
-------------- more information ----------------
Distributor ID: Ubuntu
Description: Ubuntu 14.04 LTS
Release: 14.04
Codename: trusty
3.13.0-24-generic
libqt5core5a:
Installed: 5.2.1+dfsg-
Candidate: 5.2.1+dfsg-
Version table:
*** 5.2.1+dfsg-
500 http://
100 /var/lib/
qmlscene:
Installed: 5.2.1-3ubuntu15
Candidate: 5.2.1-3ubuntu15
Version table:
*** 5.2.1-3ubuntu15 0
500 http://
100 /var/lib/
00:02.0 VGA compatible controller [0300]: Intel Corporation Haswell-ULT Integrated Graphics Controller [8086:0a16] (rev 0b)
03:00.0 Display controller [0380]: Advanced Micro Devices, Inc. [AMD/ATI] Topaz XT [Radeon R7 M260] [1002:6900]
-------- helloworld.qml ---------
import QtQuick 2.0
Rectangle {
width: 200
height: 100
color: "red"
Text {
text: "Hello, World!"
}
}
------ message from 'export QML_IMPORT_TRACE=1' when applying 'qmlscene helloworld.qml' -----
QQmlImportDatab
QQmlImportDatab
QQmlImports(
QQmlImports(
QQmlImportDatab
QQmlImports(
QQmlImports(
| Taihsiang Ho (taihsiangho) wrote : | #29 |
Please note:
the comment #27: test were done on HDMI port, intel Haswell + nvidia
the comment #28: test were done on HDMI port, intel Haswell + ATI
with the same external monitor AOC E2460Sw
| Taihsiang Ho (taihsiangho) wrote : | #30 |
Reply to the comment #25,
this bug could be reproduced on a Sandy Bridge machine
by applying 'qmlscene helloworld.qml'
This test was done on the machine CID 201108-8941 with 14.04
----- more informaiton ----
Distributor ID: Ubuntu
Description: Ubuntu 14.04 LTS
Release: 14.04
Codename: trusty
3.13.0-24-generic
libqt5core5a:
Installed: 5.2.1+dfsg-
Candidate: 5.2.1+dfsg-
Version table:
*** 5.2.1+dfsg-
500 http://
100 /var/lib/
5.
500 http://
qmlscene:
Installed: 5.2.1-3ubuntu15.1
Candidate: 5.2.1-3ubuntu15.1
Version table:
*** 5.2.1-3ubuntu15.1 0
500 http://
100 /var/lib/
5.
500 http://
ubuntu-sdk:
Installed: 1.126
Candidate: 1.126
Version table:
*** 1.126 0
500 http://
100 /var/lib/
00:02.0 VGA compatible controller [0300]: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller [8086:0102] (rev 09)
---- helloworld.qml -------
import QtQuick 2.0
Rectangle {
width: 200
height: 100
color: "red"
Text {
text: "Hello, World!"
}
}
------ message from 'export QML_IMPORT_TRACE=1' when applying 'qmlscene helloworld.qml' -----
QQmlImportDatab
QQmlImportDatab
QQmlImports(
QQmlImports(
QQmlImportDatab
QQmlImports(
QQmlImports(
| Taihsiang Ho (taihsiangho) wrote : | #31 |
the comment #30 was tested with an external moniter ENZO EV2316W via a display port.
| Taihsiang Ho (taihsiangho) wrote : | #32 |
replying to the comment #13
I could reproduce this bug by not only hot-plugging but also cold-pluggin (Scenario B in the comment #13),
in the tests I have done above (the comment #27, #28 and #30)
| summary: |
- checkbox-gui crashed when switching video out mode to external only mode + qt crashed when switching video out mode to external or internal only + mode |
| Taihsiang Ho (taihsiangho) wrote : | #33 |
I noted this bug could be reproduced not only in the external-only mode but also internal-only mode.
Try this by 'System Settsings-
| Taihsiang Ho (taihsiangho) wrote : | #34 |
--- core dump of the comment #28 ---
ubuntu@
GNU gdb (Ubuntu 7.7-0ubuntu3) 7.7
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://
Find the GDB manual and other documentation resources online at:
<http://
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/lib/
done.
[New LWP 14911]
[New LWP 14903]
[New LWP 14904]
[New LWP 14905]
[New LWP 14906]
[New LWP 14910]
[New LWP 14902]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_
warning: the debug information found in "/usr/lib/
Core was generated by `/usr/lib/
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x00007f93e79c8f22 in QGLXContext:
335 qglxintegration
(gdb)
(gdb) thread apply all bt
Thread 7 (Thread 0x7f93f1620780 (LWP 14902)):
#0 pthread_
#1 0x00007f93ef4157fa in wait (time=184467440
#2 QWaitCondition:
#3 0x00007f93f0ff6140 in QSGThreadedRend
#4 0x00007f93f0ff737a in QSGThreadedRend
#5 0x00007f93efb0fb61 in QWindow::event (this=this@
#6 0x00007f93f101c553 in QQuickWindow::event (this=0x26b2ba0, e=0x7ffffc0b5c10) at items/qquickwin
#7 0x00007f93f01afc8c in QApplicationPri
#8 0x00007f93f01b4e56 in QApplication:
#9 0x00007f93ef5e9c2d in QCoreApplicatio
| Taihsiang Ho (taihsiangho) wrote : | #35 |
--- core dump of the comment #30 ---
ubuntu@
GNU gdb (Ubuntu 7.7-0ubuntu3) 7.7
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://
Find the GDB manual and other documentation resources online at:
<http://
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/lib/
done.
[New LWP 2632]
[New LWP 2624]
[New LWP 2626]
[New LWP 2627]
[New LWP 2631]
[New LWP 2625]
[New LWP 2623]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_
warning: the debug information found in "/usr/lib/
Core was generated by `/usr/lib/
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x00007f407c4ff282 in QGLXContext:
335 qglxintegration
(gdb) thread apply all bt
Thread 7 (Thread 0x7f408615b780 (LWP 2623)):
#0 pthread_
#1 0x00007f4083f4d7fa in wait (time=184467440
#2 QWaitCondition:
#3 0x00007f4085b2f3b1 in QSGThreadedRend
#4 0x00007f4085b2fee3 in QSGThreadedRend
#5 0x00007f4085b304c3 in QSGThreadedRend
#6 0x00007f4084647a29 in QWindow::event (this=this@
#7 0x00007f4085b55553 in QQuickWindow::event (this=0x158aa40, e=0x7fffbc2702d0) at items/qquickwin
#8 0x00007f4084ce7c8c in QApplicationPri
#9 0x00007f4084cece56 in QApplication:
#10 0x00007f4084121...
| Taihsiang Ho (taihsiangho) wrote : | #36 |
reported to upstream:
https:/
| Changed in oem-priority: | |
| status: | New → Confirmed |
| Timo Jyrinki (timo-jyrinki) wrote : | #37 |
I resurrected my 7 year old Dell and I was able to see the crash there.
I've pushed a build to PPA where I grabbed some potential patches from upstream git:
https:/
It's currently building, but it can be tested later. It requires Ubuntu 14.10, since we need to have a fix there first.
What I did was that I checked out http://
git log --decorate --stat ./src/plugins/
git log --decorate --stat ./src/gui/
git log --stat --decorate src/plugins/
git log --stat --decorate ./src/gui/
git log --stat --decorate ./src/gui/
If you can think of any other patches worth testing, please tell. I didn't find anything else that would sound like worth trying out.
Upstream has not yet reacted specifically to the newly filed bug report, but regarding Zygmunt's findings in other upstream bug reports:
https:/
- might be related
https:/
- should be fixed already in 5.2.0
https:/
- still open, but at least the specific comment regarding a new function being implemented in Cocoa, it's nowadays also in XCB
https:/
- might be related
| description: | updated |
| Timo Jyrinki (timo-jyrinki) wrote : | #38 |
Unfortunately the two patches I cherry-picked for qtbase do not seem to fix the problem for me on that Dell laptop where I'm able to reproduce the problem.
I also included updated libxcb since I saw http://
For now I'm out of ideas. An X.org expert would be welcome to investigate, since most probably the bug is either in libxcb itself or the Qt's xcb plugin.
| Changed in qtbase-opensource-src (Ubuntu): | |
| assignee: | Timo Jyrinki (timo-jyrinki) → nobody |
| Chris Halse Rogers (raof) wrote : | #39 |
Ok, I can reproduce the crash pretty easily here. Let's see what I can shake out with a full debug stack.
| Chris Halse Rogers (raof) wrote : | #40 |
So, the relevant madness appears to be:
…snip all the glib detritus…
==30400== Invalid read of size 8
==30400== at 0xE8587FB: QGLXContext:
==30400== by 0x6339772: QOpenGLContext:
==30400== by 0x4F9626A: ??? (in /usr/lib/
==30400== by 0x4F96F1D: ??? (in /usr/lib/
==30400== by 0x6301448: QWindow:
==30400== by 0x4FC0D72: QQuickWindow:
==30400== by 0x5B2E6DB: QApplicationPri
==30400== by 0x5B33455: QApplication:
==30400== by 0x6BDB9D4: QCoreApplicatio
==30400== by 0x62FABC5: QGuiApplication
==30400== by 0x62FB724: QGuiApplication
==30400== by 0x62E2427: QWindowSystemIn
==30400== Address 0xe1a8f90 is 16 bytes inside a block of size 192 free'd
==30400== at 0x4C2C2BC: operator delete(void*) (vg_replace_
==30400== by 0xE83611A: QXcbConnection:
==30400== by 0xE836814: QXcbConnection:
==30400== by 0xE837A0A: QXcbConnection:
==30400== by 0x6C0B5B5: QObject:
==30400== by 0x5B2E6DB: QApplicationPri
==30400== by 0x5B33455: QApplication:
==30400== by 0x6BDB9D4: QCoreApplicatio
==30400== by 0x6BDD826: QCoreApplicatio
==30400== by 0x6C33242: postEventSource
==30400== by 0x849FDE3: g_main_
==30400== by 0x84A0027: g_main_
==30400==
==30400== Invalid read of size 8
==30400== at 0xE858525: QGLXContext:
==30400== by 0x6339A71: QOpenGLContext:
==30400== by 0x4F96A8B: ??? (in /usr/lib/
==30400== by 0x4F96F1D: ??? (in /usr/lib/
==30400== by 0x6301448: QWindow:
==30400== by 0x4FC0D72: QQuickWindow:
| Chris Halse Rogers (raof) wrote : | #41 |
So, it looks like there's a race between the destruction of an QXcbScreen in response to a RANDR event in handleXcbEvent and (a) expose handling and (b) some timer. I'll forward this upstream and might let someone more familiar with Qt take over.
| Maarten Lankhorst (mlankhorst) wrote : | #42 |
On utopic when I disable the active screen I get the following backtrace:
pure virtual method called
terminate called without an active exception
Program received signal SIGABRT, Aborted.
0x00007ffff4e4c117 in __GI_raise (sig=sig@entry=6) at ../nptl/
56 ../nptl/
(gdb) bt
#0 0x00007ffff4e4c117 in __GI_raise (sig=sig@entry=6) at ../nptl/
#1 0x00007ffff4e4d808 in __GI_abort () at abort.c:89
#2 0x00007ffff5453285 in __gnu_cxx:
#3 0x00007ffff54510f6 in ?? () from /usr/lib/
#4 0x00007ffff5451141 in std::terminate() () from /usr/lib/
#5 0x00007ffff5451c8f in __cxa_pure_virtual () from /usr/lib/
#6 0x00007ffff5ef6efa in QPlatformScreen
#7 0x00007ffff5f30772 in QScreen:
#8 0x00007ffff5f30819 in QScreen:
#9 0x00007ffff78343d2 in QQuickScreenAtt
#10 0x00007ffff59f391e in QMetaObject:
#11 0x00007ffff59f3dd7 in QMetaObject:
#12 0x00007ffff5f0b78f in QWindow:
#13 0x00007ffff5f0e160 in QWindowPrivate:
#14 0x00007ffff5f0e2e2 in QWindow:
#15 0x00007ffff59f391e in QMetaObject:
#16 0x00007ffff59f3dd7 in QMetaObject:
#17 0x00007ffff59f3e6f in QObject::destroyed (this=this@
#18 0x00007ffff59fb308 in QObject::~QObject (this=0x6620c0, __in_chrg=
#19 0x00007ffff624faf7 in ~QScreen (this=0x6620c0, __in_chrg=
#20 QScreen::~QScreen (this=0x6620c0, __in_chrg=
#21 0x00007ffff5ef70aa in QPlatformScreen
| Timo Jyrinki (timo-jyrinki) wrote : | #43 |
For completeness sake, here's mine on Latitude D630 (Intel 965GM graphics), also inside qglxintegration.cpp but slightly different.
Program received signal SIGSEGV, Segmentation fault.
0x00007fffee0aa81c in QGLXContext:
surface=
(gdb) bt
#0 0x00007fffee0aa81c in QGLXContext:
surface=
#1 0x00007ffff641cd92 in QOpenGLContext:
surface=
#2 0x00007ffff7990a8c in QSGGuiThreadRen
this=
at scenegraph/
#3 0x00007ffff7990f1e in QSGGuiThreadRen
this=0xb44110, window=0x7943c0) at scenegraph/
#4 0x00007ffff63e4769 in QWindow::event (this=this@
ev=
#5 0x00007ffff79bad73 in QQuickWindow::event (this=0x7943c0, e=0x7fffffffd8a0)
at items/qquickwin
#6 0x00007ffff6b3a6dc in QApplicationPri
this=
e=e@
#7 0x00007ffff6b3f456 in QApplication:
receiver=
#8 0x00007ffff5e999d5 in QCoreApplicatio
0x7fffffffddc0, receiver=
event=
#9 0x00007ffff63ddee6 in sendSpontaneous
receiver=
at ../../include/
#10 QGuiApplication
at kernel/
#11 0x00007ffff63dea45 in QGuiApplication
e=e@
#12 0x00007ffff63c54d8 in QWindowSystemIn
flags=...) at kernel/
#13 0x00007fffee0ad000 in userEventSource
at eventdispatcher
#14 0x00007ffff4512de4 in g_main_
from /lib/x86_
#15 0x00007ffff4513028 in ?? () from /lib/x86_
#16 0x00007ffff45130cc in g_main_
from /lib/x86_
#17 0x00007ffff5ef06bc in QEventDispatche
flags=...) at kernel/
#18 0x00007ffff5e978eb in QEventLoop::exec (this=this@
flags=..., flags@entry=...) at kernel/
#19 0x00007ffff5e9ef46 in QCoreApplicatio
at kernel/
#20 0x00007ffff63d60cc in QGuiApplication
at kernel/
#21 0x00007ffff6b38e05 in QApplication::exec () at kernel/
#22 0x0000000000404301 in main (argc=2, argv=<optimized out>) at main.cpp:548
I also added one more patc...
| Maarten Lankhorst (mlankhorst) wrote : | #44 |
It seems display driver is not important, I always hit this bug it seems, on nvidia, nouveau, radeon and intel.
| Maarten Lankhorst (mlankhorst) wrote : | #45 |
I think it only depends on whether opengl acceleration is enabled whether you get the former or latter behavior.
| no longer affects: | libxcb (Ubuntu) |
| Timo Jyrinki (timo-jyrinki) wrote : | #46 |
I've now enough of Qt 5.3.1 (qtbase+
Maarten's upstream bug report: https:/
Did Chris also contact upstream?
| Timo Jyrinki (timo-jyrinki) wrote : | #47 |
(edit: yes he did, commented at https:/
| Ara Pulido (ara) wrote : | #48 |
Timo, Marteen, any updates on this bug?
| Chris Gregan (cgregan) wrote : | #49 |
@Marteen It seems the QT bug is stalled on their end. Is there some triage that's happening without updates to https:/
| Timo Jyrinki (timo-jyrinki) wrote : | #50 |
It seems it's not completely stalled, there's activity in another bug report linked from the first one, and a claimed partial fix.
I don't have a 14.04 machine to test on right now, so could someone else test:
sudo apt-add-repository ppa:canonical-
sudo apt update
sudo apt dist-upgrade
Notes:
- The patch needed changes especially for 14.04's Qt 5.2.1, I'm not sure if it's functional still or if I broke something in the process
- The qtbase for 14.10 (which I could have tested) failed one unit test with a crash, which could be caused by the patch since it has not happened before.
- We will eventually get the fix anyway with 5.3.2 to 14.10 or 15.04 since it was included in upstream's 5.3.2 branch, after which a backport to 14.04 LTS is feasible even if we wouldn't cherry pick it for current 5.3.0
- See the builds and patches for 5.3.0 and 5.2.1 respectively at https:/
| Changed in checkbox-gui: | |
| assignee: | Zygmunt Krynicki (zkrynicki) → nobody |
| Changed in oem-priority: | |
| status: | Confirmed → Won't Fix |
| Timo Jyrinki (timo-jyrinki) wrote : | #51 |
This should finally be fixed in Qt 5.4.2 that is now in wily (Ubuntu 15.10).
There are some indications though that the problem is complex and some of the crasher cases are only fully addressed in Qt 5.5.0. This is on route to wily too although it might take time. See https:/
| Changed in qtbase-opensource-src (Ubuntu): | |
| status: | Confirmed → Fix Released |
| Sylvain Pineau (sylvain-pineau) wrote : | #52 |
I'm setting this as WONTFIX since we're deprecating checkbox-gui.
| Changed in checkbox-gui: | |
| status: | Confirmed → Won't Fix |

I just had this happen to me, this is on a Lenovo T440p, I pressed the monitor switch key several times and at some point checkbox-gui just vanished. I'll upload a core dump in a moment.