DisplayWindow::makeCurrent crash with xmir apps

Bug #1410457 reported by Christopher Townsend
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mir
Invalid
Undecided
Unassigned
qtmir (Ubuntu)
Invalid
High
Gerry Boland
unity8 (Ubuntu)
Invalid
Medium
Gerry Boland

Bug Description

This crash occurs when opening an Xmir window and leaving it idle for ~5-10 minutes.

If you need steps to reproduce, please ping me.

ProblemType: Crash
DistroRelease: Ubuntu 15.04
Package: unity8 8.02+15.04.20150109.2-0ubuntu1
ProcVersionSignature: Ubuntu 3.18.0-8.9-generic 3.18.1
Uname: Linux 3.18.0-8-generic x86_64
ApportVersion: 2.15.1-0ubuntu2
Architecture: amd64
CrashCounter: 1
Date: Tue Jan 13 11:57:45 2015
ExecutablePath: /usr/bin/unity8
ExecutableTimestamp: 1420800924
InstallationDate: Installed on 2013-03-18 (666 days ago)
InstallationMedia: Ubuntu 12.10 "Quantal Quetzal" - Release amd64 (20121017.5)
ProcCmdline: unity8
ProcCwd: /home/townsend
ProcEnviron:
 LANGUAGE=en_US
 PATH=(custom, no user)
 XDG_RUNTIME_DIR=<set>
 LANG=en_US.UTF-8
 SHELL=/bin/bash
SegvAnalysis:
 Segfault happened at: 0x7fb06a6fc357 <_ZN13DisplayWindow11makeCurrentEv+27>: mov (%rax),%rax
 PC (0x7fb06a6fc357) ok
 source "(%rax)" (0x00000030) not located in a known VMA region (needed readable region)!
 destination "%rax" ok
 Stack memory exhausted (SP below stack segment)
SegvReason: reading NULL VMA
Signal: 11
SourcePackage: unity8
StacktraceTop:
 DisplayWindow::makeCurrent() () from /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqpa-mirserver.so
 MirOpenGLContext::makeCurrent(QPlatformSurface*) () from /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqpa-mirserver.so
 QOpenGLContext::makeCurrent(QSurface*) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
 ?? () from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
 ?? () from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
Title: unity8 crashed with SIGSEGV in DisplayWindow::makeCurrent()
UpgradeStatus: Upgraded to vivid on 2014-10-20 (85 days ago)
UserGroups: adm autopilot cdrom dip lpadmin plugdev sambashare sudo vboxusers

Revision history for this message
Christopher Townsend (townsend) wrote :
information type: Private → Public
Revision history for this message
Apport retracing service (apport) wrote :

StacktraceTop:
 QHash<int, QWindowSystemInterface::TouchPoint>::remove (this=0x7fb00d45bcd0, akey=<optimized out>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qhash.h:826
 ?? ()
 ?? ()
 QOpenGLContext::makeCurrent (this=0x7fb00d45bd00, surface=0x7fb06a6feafb <SessionAuthorizer::connection_is_allowed(mir::frontend::SessionCredentials const&)+683>) at kernel/qopenglcontext.cpp:813
 QSGRenderThread::sync (this=0x1df55d0) at scenegraph/qsgthreadedrenderloop.cpp:537

Revision history for this message
Apport retracing service (apport) wrote : Stacktrace.txt
Revision history for this message
Apport retracing service (apport) wrote : StacktraceSource.txt
Revision history for this message
Apport retracing service (apport) wrote : ThreadStacktrace.txt
Changed in unity8 (Ubuntu):
importance: Undecided → Medium
summary: - unity8 crashed with SIGSEGV in DisplayWindow::makeCurrent()
+ unity8 crashed with SIGSEGV in QHash<int,
+ QWindowSystemInterface::TouchPoint>::remove()
tags: removed: need-amd64-retrace
Gerry Boland (gerboland)
Changed in unity8 (Ubuntu):
assignee: nobody → Gerry Boland (gerboland)
Revision history for this message
Gerry Boland (gerboland) wrote : Re: unity8 crashed with SIGSEGV in QHash<int, QWindowSystemInterface::TouchPoint>::remove()

Top frame of LP's backtrace rubbish. I got the following:

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fb6d7051700 (LWP 3053)]
0x00007fb73bf9c463 in DisplayWindow::makeCurrent() () from /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqpa-mirserver.so
(gdb) bt
#0 0x00007fb73bf9c463 in DisplayWindow::makeCurrent() () from /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqpa-mirserver.so
#1 0x00007fb73bf9ec07 in MirOpenGLContext::makeCurrent(QPlatformSurface*) () from /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqpa-mirserver.so
#2 0x00007fb7456555c2 in QOpenGLContext::makeCurrent (this=0x10a92a0, surface=0xce9960) at kernel/qopenglcontext.cpp:813
#3 0x00007fb744abfb12 in QSGRenderThread::sync (this=0x131bc90) at scenegraph/qsgthreadedrenderloop.cpp:537
#4 0x00007fb744abfe98 in QSGRenderThread::syncAndRender (this=0x131bc90) at scenegraph/qsgthreadedrenderloop.cpp:587
#5 0x00007fb744ac07d8 in QSGRenderThread::run (this=0x131bc90) at scenegraph/qsgthreadedrenderloop.cpp:704
#6 0x00007fb743b3dd2e in QThreadPrivate::start (arg=0x131bc90) at thread/qthread_unix.cpp:345
#7 0x00007fb7423690a5 in start_thread (arg=0x7fb6d7051700) at pthread_create.c:309
#8 0x00007fb7432b190d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

and the unity8 log shows me:

QtCompositor::setAllWindowsExposed false
DisplayWindow::event got QEvent::Hide
QtCompositor::setAllWindowsExposed true
DisplayWindow::event got QEvent::Show

So appears as if Qt is trying to render with the display off - which will crash.

Gerry Boland (gerboland)
Changed in qtmir:
status: New → Confirmed
importance: Undecided → High
assignee: nobody → Gerry Boland (gerboland)
summary: - unity8 crashed with SIGSEGV in QHash<int,
- QWindowSystemInterface::TouchPoint>::remove()
+ DisplayWindow::makeCurrent crash with xmir apps
Revision history for this message
Gerry Boland (gerboland) wrote :

A little more digging: bringing up mir_proving_server and xeyes manually:
1. sudo stop lightdm
2. sudo mir_proving_server
3. sudo chown $USER /tmp/mir_socket
4. sudo chmod 777 /tmp/mir_socket
5. Xmir :1 -mirSocket /tmp/mir_socket
6. in separate shell, do:
DISPLAY=:1 xeyes

I can tell X to blank the display with
DISPLAY=:1 xset dpms force off
and Mir deals with it ok - no crash.

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

The stack traces are a little confused as always by the fact that QtMir names some of its things "Mir*" while not being a part of Mir. There doesn't seem to be any Mir code in the stack traces.

That and the same bug doesn't exist in the mir_proving_server.

kevin gunn (kgunn72)
tags: added: desktop
Revision history for this message
Christopher Townsend (townsend) wrote :

This doesn't seem to occur anymore. Not sure what fixed it, so I'm just going to close Invalid.

Changed in mir:
status: New → Invalid
Changed in qtmir:
status: Confirmed → Invalid
Changed in qtmir (Ubuntu):
status: New → Invalid
Changed in unity8 (Ubuntu):
status: New → Invalid
Michał Sawicz (saviq)
Changed in qtmir (Ubuntu):
assignee: nobody → Gerry Boland (gerboland)
importance: Undecided → High
no longer affects: qtmir
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

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