qt crashed when switching video out mode to external or internal only mode

Bug #1318584 reported by Yung Shen
32
This bug affects 4 people
Affects Status Importance Assigned to Milestone
Checkbox GUI (Legacy)
Won't Fix
Medium
Unassigned
OEM Priority Project
Won't Fix
Critical
Unassigned
Trusty
Won't Fix
Critical
Unassigned
Qt
Invalid
Undecided
Unassigned
qtbase-opensource-src (Ubuntu)
Fix Released
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

---
https://bugreports.qt-project.org/browse/QTBUG-39663

Changed in checkbox-gui:
importance: Undecided → High
importance: High → Critical
Revision history for this message
Daniel Manrique (roadmr) wrote :

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.

Changed in checkbox-gui:
status: New → Confirmed
Revision history for this message
Daniel Manrique (roadmr) wrote :
Revision history for this message
Zygmunt Krynicki (zyga) wrote :

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)
Revision history for this message
Zygmunt Krynicki (zyga) wrote :
Download full text (23.5 KiB)

Looking at the crash file I see this:

Disassembly:
 => 0x7ffe67b06f79 <__GI_raise+57>: cmp $0xfffffffffffff000,%rax
    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 $0xffffffffffffffff,%rax
    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~dev+bzr3011+pkg2~ubuntu14.04.1 [origin: LP-PPA-checkbox-dev]
PackageArchitecture: amd64
ProcVersionSignature: Ubuntu 3.13.0-24.46-generic 3.13.9
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/sysdeps/unix/sysv/linux/raise.c:56
         resultvar = 0
         pid = 10054
         selftid = 10054
 #1 0x00007ffe67b0a388 in __GI_abort () at abort.c:89
         save_stage = 2
         act = {__sigaction_handler = {sa_handler = 0x18, sa_sigaction = 0x18}, sa_mask = {__val = {899, 3865470567840, 140730686502231, 140728898420741, 0, 45, 140730637839656, 25966480, 3865470567840, 81511952, 140730686530837, 0, 18446744073709551408, 0, 140730644738048, 0}}, sa_flags = 1743329744, sa_restorer = 0x7ffe6816b010}
         sigs = {__val = {32, 0 <repeats 15 times>}}
 #2 0x00007ffe6810c6b5 in __gnu_cxx::__verbose_terminate_handler() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
 No symbol table info available.
 #3 0x00007ffe6810a836 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
 No symbol table info available.
 #4 0x00007ffe6810a863 in std::terminate() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
 No symbol table info available.
 #5 0x00007ffe6810b33f in __cxa_pure_virtua...

Revision history for this message
Zygmunt Krynicki (zyga) wrote :

Looks like the fault is around:

   #6 0x00007ffe68b27aca in QPlatformScreen::physicalSize() const () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5

Revision history for this message
Zygmunt Krynicki (zyga) wrote :

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

Revision history for this message
Zygmunt Krynicki (zyga) wrote :

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.

Revision history for this message
Zygmunt Krynicki (zyga) wrote :
Download full text (4.5 KiB)

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/sysdeps/unix/sysv/linux/raise.c:56
56 ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb)
(gdb) bt
#0 0x00007ffff4fb0f79 in __GI_raise (sig=sig@entry=6)
    at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1 0x00007ffff4fb4388 in __GI_abort () at abort.c:89
#2 0x00007ffff55b66b5 in __gnu_cxx::__verbose_terminate_handler() ()
   from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#3 0x00007ffff55b4836 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4 0x00007ffff55b4863 in std::terminate() ()
   from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#5 0x00007ffff55b533f in __cxa_pure_virtual ()
   from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#6 0x00007ffff5fd1aca in QPlatformScreen::physicalSize() const ()
   from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#7 0x00007ffff6003c42 in QScreen::physicalSize() const ()
   from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#8 0x00007ffff6003ce9 in QScreen::physicalDotsPerInch() const ()
   from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#9 0x00007ffff7839fd2 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
#10 0x00007ffff5ae92a6 in QMetaObject::activate(QObject*, int, int, void**) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#11 0x00007ffff5fe442f in QWindow::screenChanged(QScreen*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#12 0x00007ffff5fe6aa0 in QWindowPrivate::setScreen(QScreen*, bool) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
---Type <return> to continue, or q <return> to quit---
#13 0x00007ffff5fe6c22 in QWindow::screenDestroyed(QObject*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#14 0x00007ffff5ae92a6 in QMetaObject::activate(QObject*, int, int, void**) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#15 0x00007ffff5ae986f in QObject::destroyed(QObject*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#16 0x00007ffff5af0853 in QObject::~QObject() ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#17 0x00007ffff62834b7 in QScreen::~QScreen() ()
   from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#18 0x00007ffff5fd1ca9 in QPlatformScreen::~QPlatformScreen() ()
   from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#19 0x00007fffeda0b429 in ?? ()
   from /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqxcb.so
#20 0x00007fffeda000ab in ?? ()
   from /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqxcb.so
#21 0x00007fffeda00785 in ?? ()
   from /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqxcb.so
#22 0x00007fffeda0190b in ?? ()
   from /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqxcb.so
#23 0x00007ffff5aea22e in QObject::event(QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#24 0x00007ffff6906c8c in QApplicationPrivate::notify_helper(QObject*, QEvent*)
---Type <return> to continue, or q <return> to quit---
    () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#25 0x00007ffff690be56 in QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/x8...

Read more...

Revision history for this message
Zygmunt Krynicki (zyga) wrote :
Revision history for this message
Taihsiang Ho (tai271828) wrote :

201305-13636 could reproduce this.

tags: added: 201305-13636
Revision history for this message
Zygmunt Krynicki (zyga) wrote :

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
Revision history for this message
Zygmunt Krynicki (zyga) wrote :
Revision history for this message
Daniel Manrique (roadmr) wrote :

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

Revision history for this message
Daniel Manrique (roadmr) wrote :

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://wiki.ubuntu.com/DebuggingProgramCrash#Debug_Symbol_Packages

ok, the list of packages:

http://paste.ubuntu.com/7506664

A diabolical command used to install the debug symbol files, pruning a few ones that seemed troublesome:
http://paste.ubuntu.com/7506698

Revision history for this message
Timo Jyrinki (timo-jyrinki) wrote :

Adding qtbase-opensource-src as an affected component based on the upstream QTBUG-32973 report.

Revision history for this message
Zygmunt Krynicki (zyga) wrote :

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.

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in qtbase-opensource-src (Ubuntu):
status: New → Confirmed
Daniel Manrique (roadmr)
Changed in checkbox-gui:
importance: Critical → Medium
tags: removed: 14-04-blocker
Revision history for this message
Steve Magoun (smagoun) wrote :

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)
Steve Magoun (smagoun)
Changed in oem-priority:
importance: Undecided → High
importance: High → Critical
Revision history for this message
Timo Jyrinki (timo-jyrinki) wrote :

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://launchpad.net/~canonical-qt5-edgers/+archive/qt5-beta2) if you're still experiencing this?

My utopic has broken unity-settings-daemon today and I fail to have the normal external monitor functionality working. Manually switching between displays / mirror modes with xrandr however I can't seem to be able to trigger this problem. If you could confirm this, we could start looking at https://qt.gitorious.org/qt/qtbase/ commits between 5.2.1 and 5.3.0 for possible patches to backport to trusty.

Changed in qtbase-opensource-src (Ubuntu):
status: Confirmed → Incomplete
Revision history for this message
Maarten Lankhorst (mlankhorst) wrote :

Not a xorg bug, I'll take a look at the qt changes..

Revision history for this message
Maarten Lankhorst (mlankhorst) wrote :

Not a regression either, trusty is affected in the same way.

Revision history for this message
Maarten Lankhorst (mlankhorst) wrote :

Easiest way for me to reproduce is simply starting a qt program, then taking offline the screen that had checkbox-gui running.

Revision history for this message
Taihsiang Ho (tai271828) wrote :

Following the comment #19,
5.3.0 could reproduce this bug.
Tested on utopic daily build (utopic-desktop-amd64.iso 20-May-2014 07:53)

Besides, 5.2.1 could reproduce this bug as well.

--- more information ---

checkbox-gui:
  Installed: 0.17.9~dev+bzr3053+pkg2~ubuntu14.10.1
  Candidate: 0.17.9~dev+bzr3053+pkg2~ubuntu14.10.1
  Version table:
 *** 0.17.9~dev+bzr3053+pkg2~ubuntu14.10.1 0
        500 http://ppa.launchpad.net/checkbox-dev/ppa/ubuntu/ utopic/main amd64 Packages
        100 /var/lib/dpkg/status
     0.17.6-0ubuntu6 0
        500 http://tw.archive.ubuntu.com/ubuntu/ utopic/main amd64 Packages
libqt5core5a:
  Installed: 5.3.0+dfsg-2ubuntu1~utopic1~test2
  Candidate: 5.3.0+dfsg-2ubuntu1~utopic1~test2
  Version table:
 *** 5.3.0+dfsg-2ubuntu1~utopic1~test2 0
        500 http://ppa.launchpad.net/canonical-qt5-edgers/qt5-beta2/ubuntu/ utopic/main amd64 Packages
        100 /var/lib/dpkg/status
     5.2.1+dfsg-1ubuntu17 0
        500 http://tw.archive.ubuntu.com/ubuntu/ utopic/main amd64 Packages

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.

Revision history for this message
Timo Jyrinki (timo-jyrinki) 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://bugreports.qt-project.org/ with a minimal test scenario. For 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.

Revision history for this message
Zygmunt Krynicki (zyga) wrote : Re: [Bug 1318584] Re: checkbox-gui crashed when switching video out mode to external only mode

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://bugreports.qt-project.org/ with a minimal test scenario. For
> 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://bugs.launchpad.net/bugs/1318584
>
> Title:
> checkbox-gui crashed when switching video out mode to external only
> mode
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/checkbox-gui/+bug/1318584/+subscriptions
>

Revision history for this message
Zygmunt Krynicki (zyga) wrote : Re: checkbox-gui crashed when switching video out mode to external only mode

Switching qt bug back to confirmed since it still occurs with the PPA

Changed in qtbase-opensource-src (Ubuntu):
status: Incomplete → Confirmed
Revision history for this message
Taihsiang Ho (tai271828) wrote :

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~dev+bzr3053+pkg2~ubuntu14.10.1
  Candidate: 0.17.9~dev+bzr3063+pkg2~ubuntu14.10.1
  Version table:
     0.17.9~dev+bzr3063+pkg2~ubuntu14.10.1 0
        500 http://ppa.launchpad.net/checkbox-dev/ppa/ubuntu/ utopic/main amd64 Packages
 *** 0.17.9~dev+bzr3053+pkg2~ubuntu14.10.1 0
        100 /var/lib/dpkg/status
     0.17.6-0ubuntu6 0
        500 http://tw.archive.ubuntu.com/ubuntu/ utopic/main amd64 Packages

libqt5core5a:
  Installed: 5.3.0+dfsg-2ubuntu1
  Candidate: 5.3.0+dfsg-2ubuntu1
  Version table:
 *** 5.3.0+dfsg-2ubuntu1 0
        500 http://ppa.launchpad.net/ci-train-ppa-service/landing-005/ubuntu/ utopic/main amd64 Packages
        100 /var/lib/dpkg/status
     5.3.0+dfsg-2ubuntu1~utopic1~test2 0
        500 http://ppa.launchpad.net/canonical-qt5-edgers/qt5-beta2/ubuntu/ utopic/main amd64 Packages
     5.2.1+dfsg-1ubuntu17 0
        500 http://tw.archive.ubuntu.com/ubuntu/ utopic/main amd64 Packages

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/630M/720M] [10de:1140] (rev a1)

Revision history for this message
Taihsiang Ho (tai271828) wrote :

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-1ubuntu14
  Candidate: 5.2.1+dfsg-1ubuntu14
  Version table:
 *** 5.2.1+dfsg-1ubuntu14 0
        500 http://archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages
        100 /var/lib/dpkg/status
qmlscene:
  Installed: 5.2.1-3ubuntu15
  Candidate: 5.2.1-3ubuntu15
  Version table:
 *** 5.2.1-3ubuntu15 0
        500 http://archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages
        100 /var/lib/dpkg/status

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 {
        anchors.centerIn: parent
        text: "Hello, World!"
    }
}

------ message from 'export QML_IMPORT_TRACE=1' when applying 'qmlscene helloworld.qml' -----

QQmlImportDatabase::addImportPath: "/usr/lib/x86_64-linux-gnu/qt5/qml"
QQmlImportDatabase::addImportPath: "/usr/lib/x86_64-linux-gnu/qt5/bin"
QQmlImports(file:///home/ubuntu/lp1318584-qt/helloworld.qml)::addLibraryImport: "QtQuick" 2.0 as ""
QQmlImports(file:///home/ubuntu/lp1318584-qt/helloworld.qml)::importExtension: loaded "/usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick.2/qmldir"
QQmlImportDatabase::importPluginInstance: "QtQuick" from "/usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick.2"
QQmlImports(file:///home/ubuntu/lp1318584-qt/helloworld.qml)::resolveType: "Rectangle" => "QQuickRectangle" TYPE
QQmlImports(file:///home/ubuntu/lp1318584-qt/helloworld.qml)::resolveType: "Text" => "QQuickText" TYPE

Revision history for this message
Taihsiang Ho (tai271828) wrote :

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

Revision history for this message
Taihsiang Ho (tai271828) wrote :

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-1ubuntu14.2
  Candidate: 5.2.1+dfsg-1ubuntu14.2
  Version table:
 *** 5.2.1+dfsg-1ubuntu14.2 0
        500 http://tw.archive.ubuntu.com/ubuntu/ trusty-updates/main amd64 Packages
        100 /var/lib/dpkg/status
     5.2.1+dfsg-1ubuntu14 0
        500 http://tw.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages
qmlscene:
  Installed: 5.2.1-3ubuntu15.1
  Candidate: 5.2.1-3ubuntu15.1
  Version table:
 *** 5.2.1-3ubuntu15.1 0
        500 http://tw.archive.ubuntu.com/ubuntu/ trusty-updates/main amd64 Packages
        100 /var/lib/dpkg/status
     5.2.1-3ubuntu15 0
        500 http://tw.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages
ubuntu-sdk:
  Installed: 1.126
  Candidate: 1.126
  Version table:
 *** 1.126 0
        500 http://tw.archive.ubuntu.com/ubuntu/ trusty/universe amd64 Packages
        100 /var/lib/dpkg/status

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 {
        anchors.centerIn: parent
        text: "Hello, World!"
    }
}

------ message from 'export QML_IMPORT_TRACE=1' when applying 'qmlscene helloworld.qml' -----

QQmlImportDatabase::addImportPath: "/usr/lib/x86_64-linux-gnu/qt5/qml"
QQmlImportDatabase::addImportPath: "/usr/lib/x86_64-linux-gnu/qt5/bin"
QQmlImports(file:///home/ubuntu/lp1318584-qt/helloworld.qml)::addLibraryImport: "QtQuick" 2.0 as ""
QQmlImports(file:///home/ubuntu/lp1318584-qt/helloworld.qml)::importExtension: loaded "/usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick.2/qmldir"
QQmlImportDatabase::importPluginInstance: "QtQuick" from "/usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick.2"
QQmlImports(file:///home/ubuntu/lp1318584-qt/helloworld.qml)::resolveType: "Rectangle" => "QQuickRectangle" TYPE
QQmlImports(file:///home/ubuntu/lp1318584-qt/helloworld.qml)::resolveType: "Text" => "QQuickText" TYPE

Revision history for this message
Taihsiang Ho (tai271828) wrote :

the comment #30 was tested with an external moniter ENZO EV2316W via a display port.

Revision history for this message
Taihsiang Ho (tai271828) wrote :

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
Revision history for this message
Taihsiang Ho (tai271828) wrote :

I noted this bug could be reproduced not only in the external-only mode but also internal-only mode.

Try this by 'System Settsings-->Display" to switch the mode from any status to external-only or internal-only mode.

Revision history for this message
Taihsiang Ho (tai271828) wrote :
Download full text (11.7 KiB)

--- core dump of the comment #28 ---

ubuntu@201401-14529:~/lp1318584-qt$ gdb /usr/lib/x86_64-linux-gnu/qt5/bin/qmlscene --core=core
GNU gdb (Ubuntu 7.7-0ubuntu3) 7.7
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
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://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/lib/x86_64-linux-gnu/qt5/bin/qmlscene...Reading symbols from /usr/lib/debug/.build-id/5d/4471e44e258195b8860b8205330baa1def8312.debug...done.
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_64-linux-gnu/libthread_db.so.1".

warning: the debug information found in "/usr/lib/x86_64-linux-gnu/dri/r200_dri.so" does not match "/usr/lib/x86_64-linux-gnu/dri/i965_dri.so" (CRC mismatch).

Core was generated by `/usr/lib/x86_64-linux-gnu/qt5/bin/qmlscene helloworld.qml'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x00007f93e79c8f22 in QGLXContext::makeCurrent (this=0x2532d90, surface=0x2680e70) at qglxintegration.cpp:335
335 qglxintegration.cpp: No such file or directory.
(gdb)
(gdb) thread apply all bt

Thread 7 (Thread 0x7f93f1620780 (LWP 14902)):
#0 pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1 0x00007f93ef4157fa in wait (time=18446744073709551615, this=0x265a7b0) at thread/qwaitcondition_unix.cpp:136
#2 QWaitCondition::wait (this=<optimized out>, mutex=0x26a61a0, time=time@entry=18446744073709551615) at thread/qwaitcondition_unix.cpp:208
#3 0x00007f93f0ff6140 in QSGThreadedRenderLoop::releaseResources (this=<optimized out>, window=<optimized out>, inDestructor=<optimized out>) at scenegraph/qsgthreadedrenderloop.cpp:1061
#4 0x00007f93f0ff737a in QSGThreadedRenderLoop::hide (this=0x26aca20, window=0x26b2ba0) at scenegraph/qsgthreadedrenderloop.cpp:840
#5 0x00007f93efb0fb61 in QWindow::event (this=this@entry=0x26b2ba0, ev=ev@entry=0x7ffffc0b5c10) at kernel/qwindow.cpp:1929
#6 0x00007f93f101c553 in QQuickWindow::event (this=0x26b2ba0, e=0x7ffffc0b5c10) at items/qquickwindow.cpp:1292
#7 0x00007f93f01afc8c in QApplicationPrivate::notify_helper (this=this@entry=0x23a26a0, receiver=receiver@entry=0x26b2ba0, e=e@entry=0x7ffffc0b5c10) at kernel/qapplication.cpp:3486
#8 0x00007f93f01b4e56 in QApplication::notify (this=0x7ffffc0b6a40, receiver=0x26b2ba0, e=0x7ffffc0b5c10) at kernel/qapplication.cpp:3236
#9 0x00007f93ef5e9c2d in QCoreApplication::notifyInternal (this=0x7ffffc0b6a40, receiver=receiver@entry=0x26b2ba0, event=event@entry=0x7ffffc0...

Revision history for this message
Taihsiang Ho (tai271828) wrote :
Download full text (9.0 KiB)

--- core dump of the comment #30 ---

ubuntu@201108-8941:~/lp1318584-qt$ gdb /usr/lib/x86_64-linux-gnu/qt5/bin/qmlscene --core=core
GNU gdb (Ubuntu 7.7-0ubuntu3) 7.7
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
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://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/lib/x86_64-linux-gnu/qt5/bin/qmlscene...Reading symbols from /usr/lib/debug/.build-id/5d/4471e44e258195b8860b8205330baa1def8312.debug...done.
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_64-linux-gnu/libthread_db.so.1".

warning: the debug information found in "/usr/lib/x86_64-linux-gnu/dri/r200_dri.so" does not match "/usr/lib/x86_64-linux-gnu/dri/i965_dri.so" (CRC mismatch).

Core was generated by `/usr/lib/x86_64-linux-gnu/qt5/bin/qmlscene helloworld.qml'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x00007f407c4ff282 in QGLXContext::makeCurrent (this=0x14112d0, surface=0x1535270) at qglxintegration.cpp:335
335 qglxintegration.cpp: No such file or directory.
(gdb) thread apply all bt

Thread 7 (Thread 0x7f408615b780 (LWP 2623)):
#0 pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1 0x00007f4083f4d7fa in wait (time=18446744073709551615, this=0x158d5f0) at thread/qwaitcondition_unix.cpp:136
#2 QWaitCondition::wait (this=<optimized out>, mutex=0x15538c0, time=time@entry=18446744073709551615) at thread/qwaitcondition_unix.cpp:208
#3 0x00007f4085b2f3b1 in QSGThreadedRenderLoop::polishAndSync (this=this@entry=0x1589810, w=w@entry=0x12f0810) at scenegraph/qsgthreadedrenderloop.cpp:1112
#4 0x00007f4085b2fee3 in QSGThreadedRenderLoop::handleExposure (this=this@entry=0x1589810, w=w@entry=0x12f0810) at scenegraph/qsgthreadedrenderloop.cpp:944
#5 0x00007f4085b304c3 in QSGThreadedRenderLoop::exposureChanged (this=0x1589810, window=0x158aa40) at scenegraph/qsgthreadedrenderloop.cpp:881
#6 0x00007f4084647a29 in QWindow::event (this=this@entry=0x158aa40, ev=ev@entry=0x7fffbc2702d0) at kernel/qwindow.cpp:1921
#7 0x00007f4085b55553 in QQuickWindow::event (this=0x158aa40, e=0x7fffbc2702d0) at items/qquickwindow.cpp:1292
#8 0x00007f4084ce7c8c in QApplicationPrivate::notify_helper (this=this@entry=0x12936a0, receiver=receiver@entry=0x158aa40, e=e@entry=0x7fffbc2702d0) at kernel/qapplication.cpp:3486
#9 0x00007f4084cece56 in QApplication::notify (this=0x7fffbc2707f0, receiver=0x158aa40, e=0x7fffbc2702d0) at kernel/qapplication.cpp:3236
#10 0x00007f4084121...

Read more...

Revision history for this message
Taihsiang Ho (tai271828) wrote :
Ara Pulido (ara)
Changed in oem-priority:
status: New → Confirmed
Revision history for this message
Timo Jyrinki (timo-jyrinki) wrote :

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://launchpad.net/~canonical-qt5-edgers/+archive/qt5-beta1

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://qt.gitorious.org/qt/qtbase , and searched around in both 5.3.1 and dev branches in files mentioned in the various backtraces:
git log --decorate --stat ./src/plugins/platforms/xcb/qglxintegration.cpp
git log --decorate --stat ./src/gui/kernel/qplatformscreen.cpp
git log --stat --decorate src/plugins/platforms/xcb/qxcbwindow.cpp
git log --stat --decorate ./src/gui/painting/qbackingstore.cpp
git log --stat --decorate ./src/gui/kernel/qscreen.cpp

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://bugreports.qt-project.org/browse/QTBUG-37327
- might be related
https://bugreports.qt-project.org/browse/QTBUG-32681
- should be fixed already in 5.2.0
https://bugreports.qt-project.org/browse/QTBUG-32973
- still open, but at least the specific comment regarding a new function being implemented in Cocoa, it's nowadays also in XCB
https://bugreports.qt-project.org/browse/QTBUG-38326
- might be related

description: updated
Revision history for this message
Timo Jyrinki (timo-jyrinki) wrote :

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://cgit.freedesktop.org/xcb/libxcb/commit/?id=be0fe56c3bcad5124dcc6c47a2fad01acd16f71a mentioned in a bug report and the bug might be something fixable there too.

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
Revision history for this message
Chris Halse Rogers (raof) wrote :

Ok, I can reproduce the crash pretty easily here. Let's see what I can shake out with a full debug stack.

Revision history for this message
Chris Halse Rogers (raof) wrote :
Download full text (9.9 KiB)

So, the relevant madness appears to be:

…snip all the glib detritus…
==30400== Invalid read of size 8
==30400== at 0xE8587FB: QGLXContext::makeCurrent(QPlatformSurface*) (qglxintegration.cpp:333)
==30400== by 0x6339772: QOpenGLContext::makeCurrent(QSurface*) (qopenglcontext.cpp:812)
==30400== by 0x4F9626A: ??? (in /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5.3.0)
==30400== by 0x4F96F1D: ??? (in /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5.3.0)
==30400== by 0x6301448: QWindow::event(QEvent*) (qwindow.cpp:1956)
==30400== by 0x4FC0D72: QQuickWindow::event(QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5.3.0)
==30400== by 0x5B2E6DB: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:3504)
==30400== by 0x5B33455: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:3287)
==30400== by 0x6BDB9D4: QCoreApplication::notifyInternal(QObject*, QEvent*) (qcoreapplication.cpp:935)
==30400== by 0x62FABC5: QGuiApplicationPrivate::processExposeEvent(QWindowSystemInterfacePrivate::ExposeEvent*) (qcoreapplication.h:240)
==30400== by 0x62FB724: QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) (qguiapplication.cpp:1566)
==30400== by 0x62E2427: QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qwindowsysteminterface.cpp:579)
==30400== Address 0xe1a8f90 is 16 bytes inside a block of size 192 free'd
==30400== at 0x4C2C2BC: operator delete(void*) (vg_replace_malloc.c:503)
==30400== by 0xE83611A: QXcbConnection::updateScreens() (qxcbconnection.cpp:258)
==30400== by 0xE836814: QXcbConnection::handleXcbEvent(xcb_generic_event_t*) (qxcbconnection.cpp:928)
==30400== by 0xE837A0A: QXcbConnection::processXcbEvents() (qxcbconnection.cpp:1232)
==30400== by 0x6C0B5B5: QObject::event(QEvent*) (qobject.cpp:1241)
==30400== by 0x5B2E6DB: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:3504)
==30400== by 0x5B33455: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:3287)
==30400== by 0x6BDB9D4: QCoreApplication::notifyInternal(QObject*, QEvent*) (qcoreapplication.cpp:935)
==30400== by 0x6BDD826: QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (qcoreapplication.h:237)
==30400== by 0x6C33242: postEventSourceDispatch(_GSource*, int (*)(void*), void*) (qeventdispatcher_glib.cpp:279)
==30400== by 0x849FDE3: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4101.0)
==30400== by 0x84A0027: g_main_context_iterate.isra.24 (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4101.0)
==30400==
==30400== Invalid read of size 8
==30400== at 0xE858525: QGLXContext::swapBuffers(QPlatformSurface*) (qglxintegration.cpp:392)
==30400== by 0x6339A71: QOpenGLContext::swapBuffers(QSurface*) (qopenglcontext.cpp:906)
==30400== by 0x4F96A8B: ??? (in /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5.3.0)
==30400== by 0x4F96F1D: ??? (in /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5.3.0)
==30400== by 0x6301448: QWindow::event(QEvent*) (qwindow.cpp:1956)
==30400== by 0x4FC0D72: QQuickWindow::event(QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5.3...

Revision history for this message
Chris Halse Rogers (raof) wrote :

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.

Revision history for this message
Maarten Lankhorst (mlankhorst) wrote :
Download full text (6.0 KiB)

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/sysdeps/unix/sysv/linux/raise.c:56
56 ../nptl/sysdeps/unix/sysv/linux/raise.c: Bestand of map bestaat niet.
(gdb) bt
#0 0x00007ffff4e4c117 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1 0x00007ffff4e4d808 in __GI_abort () at abort.c:89
#2 0x00007ffff5453285 in __gnu_cxx::__verbose_terminate_handler() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#3 0x00007ffff54510f6 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4 0x00007ffff5451141 in std::terminate() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#5 0x00007ffff5451c8f in __cxa_pure_virtual () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#6 0x00007ffff5ef6efa in QPlatformScreen::physicalSize (this=<optimized out>) at kernel/qplatformscreen.cpp:139
#7 0x00007ffff5f30772 in QScreen::physicalSize (this=this@entry=0x6620c0) at kernel/qscreen.cpp:243
#8 0x00007ffff5f30819 in QScreen::physicalDotsPerInch (this=this@entry=0x6620c0) at kernel/qscreen.cpp:166
#9 0x00007ffff78343d2 in QQuickScreenAttached::screenChanged (this=0x2e16f20, screen=0x6621b0) at items/qquickscreen.cpp:315
#10 0x00007ffff59f391e in QMetaObject::activate (sender=sender@entry=0x7fffffffe7b0, signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fffffffd9a0) at kernel/qobject.cpp:3680
#11 0x00007ffff59f3dd7 in QMetaObject::activate (sender=sender@entry=0x7fffffffe7b0, m=m@entry=0x7ffff65125c0 <QWindow::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fffffffd9a0) at kernel/qobject.cpp:3546
#12 0x00007ffff5f0b78f in QWindow::screenChanged (this=this@entry=0x7fffffffe7b0, _t1=_t1@entry=0x6621b0) at .moc/moc_qwindow.cpp:623
#13 0x00007ffff5f0e160 in QWindowPrivate::setScreen (this=0x8aa3a0, newScreen=0x6621b0, recreate=<optimized out>) at kernel/qwindow.cpp:372
#14 0x00007ffff5f0e2e2 in QWindow::screenDestroyed (this=0x7fffffffe7b0, object=<optimized out>) at kernel/qwindow.cpp:1637
#15 0x00007ffff59f391e in QMetaObject::activate (sender=sender@entry=0x6620c0, signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fffffffdb60) at kernel/qobject.cpp:3680
#16 0x00007ffff59f3dd7 in QMetaObject::activate (sender=sender@entry=0x6620c0, m=m@entry=0x7ffff5e1bf20 <QObject::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fffffffdb60) at kernel/qobject.cpp:3546
#17 0x00007ffff59f3e6f in QObject::destroyed (this=this@entry=0x6620c0, _t1=_t1@entry=0x6620c0) at .moc/moc_qobject.cpp:202
#18 0x00007ffff59fb308 in QObject::~QObject (this=0x6620c0, __in_chrg=<optimized out>) at kernel/qobject.cpp:901
#19 0x00007ffff624faf7 in ~QScreen (this=0x6620c0, __in_chrg=<optimized out>) at .moc/../kernel/qscreen.h:64
#20 QScreen::~QScreen (this=0x6620c0, __in_chrg=<optimized out>) at .moc/../kernel/qscreen.h:64
#21 0x00007ffff5ef70aa in QPlatformScreen::~QPlatformScreen (this=0x65b8e0, __in_ch...

Read more...

Revision history for this message
Timo Jyrinki (timo-jyrinki) wrote :
Download full text (3.5 KiB)

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::swapBuffers (this=0x81d790,
    surface=0x638450) at qglxintegration.cpp:392
(gdb) bt
#0 0x00007fffee0aa81c in QGLXContext::swapBuffers (this=0x81d790,
    surface=0x638450) at qglxintegration.cpp:392
#1 0x00007ffff641cd92 in QOpenGLContext::swapBuffers (this=0x6c6b60,
    surface=<optimized out>) at kernel/qopenglcontext.cpp:906
#2 0x00007ffff7990a8c in QSGGuiThreadRenderLoop::renderWindow (
    this=this@entry=0xb44110, window=0x7943c0)
    at scenegraph/qsgrenderloop.cpp:381
#3 0x00007ffff7990f1e in QSGGuiThreadRenderLoop::exposureChanged (
    this=0xb44110, window=0x7943c0) at scenegraph/qsgrenderloop.cpp:414
#4 0x00007ffff63e4769 in QWindow::event (this=this@entry=0x7943c0,
    ev=ev@entry=0x7fffffffd8a0) at kernel/qwindow.cpp:1956
#5 0x00007ffff79bad73 in QQuickWindow::event (this=0x7943c0, e=0x7fffffffd8a0)
    at items/qquickwindow.cpp:1339
#6 0x00007ffff6b3a6dc in QApplicationPrivate::notify_helper (
    this=this@entry=0x616560, receiver=receiver@entry=0x7943c0,
    e=e@entry=0x7fffffffd8a0) at kernel/qapplication.cpp:3504
#7 0x00007ffff6b3f456 in QApplication::notify (this=0x7fffffffddc0,
    receiver=0x7943c0, e=0x7fffffffd8a0) at kernel/qapplication.cpp:3287
#8 0x00007ffff5e999d5 in QCoreApplication::notifyInternal (this=
    0x7fffffffddc0, receiver=receiver@entry=0x7943c0,
    event=event@entry=0x7fffffffd8a0) at kernel/qcoreapplication.cpp:935
#9 0x00007ffff63ddee6 in sendSpontaneousEvent (event=0x7fffffffd8a0,
    receiver=0x7943c0)
    at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:240
#10 QGuiApplicationPrivate::processExposeEvent (e=0x62f080)
    at kernel/qguiapplication.cpp:2528
#11 0x00007ffff63dea45 in QGuiApplicationPrivate::processWindowSystemEvent (
    e=e@entry=0x62f080) at kernel/qguiapplication.cpp:1566
#12 0x00007ffff63c54d8 in QWindowSystemInterface::sendWindowSystemEvents (
    flags=...) at kernel/qwindowsysteminterface.cpp:579
#13 0x00007fffee0ad000 in userEventSourceDispatch (source=<optimized out>)
    at eventdispatchers/qeventdispatcher_glib.cpp:78
#14 0x00007ffff4512de4 in g_main_context_dispatch ()
   from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#15 0x00007ffff4513028 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#16 0x00007ffff45130cc in g_main_context_iteration ()
   from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#17 0x00007ffff5ef06bc in QEventDispatcherGlib::processEvents (this=0x6ece20,
    flags=...) at kernel/qeventdispatcher_glib.cpp:426
#18 0x00007ffff5e978eb in QEventLoop::exec (this=this@entry=0x7fffffffdb60,
    flags=..., flags@entry=...) at kernel/qeventloop.cpp:212
#19 0x00007ffff5e9ef46 in QCoreApplication::exec ()
    at kernel/qcoreapplication.cpp:1188
#20 0x00007ffff63d60cc in QGuiApplication::exec ()
    at kernel/qguiapplication.cpp:1436
#21 0x00007ffff6b38e05 in QApplication::exec () at kernel/qapplication.cpp:2749
#22 0x0000000000404301 in main (argc=2, argv=<optimized out>) at main.cpp:548

I also added one more patc...

Read more...

Revision history for this message
Maarten Lankhorst (mlankhorst) wrote :

It seems display driver is not important, I always hit this bug it seems, on nvidia, nouveau, radeon and intel.

Revision history for this message
Maarten Lankhorst (mlankhorst) wrote :

I think it only depends on whether opengl acceleration is enabled whether you get the former or latter behavior.

no longer affects: libxcb (Ubuntu)
Revision history for this message
Timo Jyrinki (timo-jyrinki) wrote :

I've now enough of Qt 5.3.1 (qtbase+qtxmlpatterns+qtdeclarative in qt5-beta-proper ppa) to test also with a system-wide Qt installation: no difference in this crash compared to 5.3.0.

Maarten's upstream bug report: https://bugreports.qt-project.org/browse/QTBUG-40174
Did Chris also contact upstream?

Revision history for this message
Timo Jyrinki (timo-jyrinki) wrote :
Revision history for this message
Ara Pulido (ara) wrote :

Timo, Marteen, any updates on this bug?

Revision history for this message
Chris Gregan (cgregan) wrote :

@Marteen It seems the QT bug is stalled on their end. Is there some triage that's happening without updates to https://bugreports.qt-project.org/browse/QTBUG-40174 ?

Revision history for this message
Timo Jyrinki (timo-jyrinki) wrote :

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-qt5-edgers/qt5-proper
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://launchpad.net/~canonical-qt5-edgers/+archive/ubuntu/qt5-proper/+packages - feel free to get the original upstream patch (https://codereview.qt-project.org/#/c/93402/) and try backporting yourself in case some of my choices were erronous

Zygmunt Krynicki (zyga)
Changed in checkbox-gui:
assignee: Zygmunt Krynicki (zkrynicki) → nobody
Ara Pulido (ara)
Changed in oem-priority:
status: Confirmed → Won't Fix
Revision history for this message
Timo Jyrinki (timo-jyrinki) wrote :

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://wiki.ubuntu.com/Touch/QtTesting on how to test Qt 5.5 if you still experience this problem on current wily's Qt 5.4.2.

Changed in qtbase-opensource-src (Ubuntu):
status: Confirmed → Fix Released
Revision history for this message
Sylvain Pineau (sylvain-pineau) wrote :

I'm setting this as WONTFIX since we're deprecating checkbox-gui.

Changed in checkbox-gui:
status: Confirmed → Won't Fix
Changed in qt:
status: New → Invalid
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.