DisplayWindow::makeCurrent crash with xmir apps
| Affects | Status | Importance | Assigned to | Milestone | |
|---|---|---|---|---|---|
| | Mir |
Invalid
|
Undecided
|
Unassigned | |
| | qtmir (Ubuntu) |
High
|
Gerry Boland | ||
| | unity8 (Ubuntu) |
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.
ProcVersionSign
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
ExecutableTimes
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_
LANG=en_US.UTF-8
SHELL=/bin/bash
SegvAnalysis:
Segfault happened at: 0x7fb06a6fc357 <_ZN13DisplayWi
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:
MirOpenGLConte
QOpenGLContext
?? () from /usr/lib/
?? () from /usr/lib/
Title: unity8 crashed with SIGSEGV in DisplayWindow:
UpgradeStatus: Upgraded to vivid on 2014-10-20 (85 days ago)
UserGroups: adm autopilot cdrom dip lpadmin plugdev sambashare sudo vboxusers
| Christopher Townsend (townsend) wrote : | #1 |
| information type: | Private → Public |
| Apport retracing service (apport) wrote : | #2 |
| 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 |
| Changed in unity8 (Ubuntu): | |
| assignee: | nobody → Gerry Boland (gerboland) |
| Gerry Boland (gerboland) wrote : Re: unity8 crashed with SIGSEGV in QHash<int, QWindowSystemInterface::TouchPoint>::remove() | #6 |
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:
(gdb) bt
#0 0x00007fb73bf9c463 in DisplayWindow:
#1 0x00007fb73bf9ec07 in MirOpenGLContex
#2 0x00007fb7456555c2 in QOpenGLContext:
#3 0x00007fb744abfb12 in QSGRenderThread
#4 0x00007fb744abfe98 in QSGRenderThread
#5 0x00007fb744ac07d8 in QSGRenderThread
#6 0x00007fb743b3dd2e in QThreadPrivate:
#7 0x00007fb7423690a5 in start_thread (arg=0x7fb6d705
#8 0x00007fb7432b190d in clone () at ../sysdeps/
and the unity8 log shows me:
QtCompositor:
DisplayWindow:
QtCompositor:
DisplayWindow:
So appears as if Qt is trying to render with the display off - which will crash.
| 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 |
| Gerry Boland (gerboland) wrote : | #7 |
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.
| Daniel van Vugt (vanvugt) wrote : | #8 |
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.
| tags: | added: desktop |
| Christopher Townsend (townsend) wrote : | #9 |
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 |
| Changed in qtmir (Ubuntu): | |
| assignee: | nobody → Gerry Boland (gerboland) |
| importance: | Undecided → High |
| no longer affects: | qtmir |


StacktraceTop: terface: :TouchPoint> ::remove (this=0x7fb00d4 5bcd0, akey=<optimized out>) at /usr/include/ x86_64- linux-gnu/ qt5/QtCore/ qhash.h: 826 ::makeCurrent (this=0x7fb00d4 5bd00, surface= 0x7fb06a6feafb <SessionAuthori zer::connection _is_allowed( mir::frontend: :SessionCredent ials const&)+683>) at kernel/ qopenglcontext. cpp:813 d::sync (this=0x1df55d0) at scenegraph/ qsgthreadedrend erloop. cpp:537
QHash<int, QWindowSystemIn
?? ()
?? ()
QOpenGLContext
QSGRenderThrea