eog crashed with SIGSEGV in gdk_x11_window_get_xid()
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
libgrip |
Fix Released
|
High
|
Stephen M. Webb | ||
libgrip (Ubuntu) |
Fix Released
|
High
|
Chase Douglas | ||
Oneiric |
Fix Released
|
High
|
Chase Douglas | ||
Precise |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
SRU Info:
=========
[Impact]
Currently, libgrip causes a segfault crash when multiple instances of eog are opened in quick succession. This does not occur under typical use cases, but there may be instances where a user might select multiple images and open them all at once. Or maybe a user double clicks on an image and opens it twice accidentally.
[Development Fix]
The change, found in the upstream merge request associated with the bug, ensures that only currently mapped top-level widgets are registered for gestures. Currently, when any top-level widget is mapped all pending gesture subscriptions are registered, and if one of them wasn't mapped yet libgrip crashes. Note that this fix has not been uploaded in P because the P archive is not open yet.
[Stable Fix]
Please see lp:libgrip/oneiric. The patch added to fix this issue can be found at http://
[Test Case]
run gdb eog in a window
in another window cd to a directory with images in subdirectories and run the following command:
while true; do eog "$(find . -type d|sort -R |head -1|cut -f 1)"; done
It opens a random subdir every iteration but crashes quite quickly. You can try adding a little sleep:
while true; do eog "$(find . -type d|sort -R |head -1|cut -f 1)"; sleep 1; done
[Regression Potential]
Medium. This change affects how libgrip registers for gesture events. There is the potential that gestures will no longer be subscribed correctly. However, gestures is a "value-add" feature. The loss of gestures will not affect the fundamental functionality of the software.
Original bug report:
=======
1) Description: Ubuntu oneiric (development branch)
Release: 11.10
2) eog:
Instalados: 3.1.5-0ubuntu1
Candidato: 3.1.5-0ubuntu1
Tabla de versión:
*** 3.1.5-0ubuntu1 0
500 http://
100 /var/lib/
3) See an animated gif
4) Crash
ProblemType: Crash
DistroRelease: Ubuntu 11.10
Package: eog 3.1.5-0ubuntu1
ProcVersionSign
Uname: Linux 3.0.0-7-generic x86_64
NonfreeKernelMo
Architecture: amd64
Date: Wed Aug 17 04:16:12 2011
ExecutablePath: /usr/bin/eog
InstallationMedia: Ubuntu 11.10 "Oneiric Ocelot" - Alpha amd64 (20110803.1)
ProcCmdline: eog /home/username/
ProcEnviron:
LANGUAGE=es_MX:es
PATH=(custom, no user)
LANG=es_MX.UTF-8
SHELL=/bin/bash
SegvAnalysis:
Segfault happened at: 0x7fa71692c5d2: cmp 0x80(%rdi),%rdi
PC (0x7fa71692c5d2) ok
source "0x80(%rdi)" (0x00000080) not located in a known VMA region (needed readable region)!
destination "%rdi" ok
SegvReason: reading NULL VMA
Signal: 11
SourcePackage: eog
StacktraceTop:
?? () from /usr/lib/
gdk_x11_
?? () from /usr/lib/
?? () from /usr/lib/
?? () from /usr/lib/
Title: eog crashed with SIGSEGV in gdk_x11_
UpgradeStatus: No upgrade log present (probably fresh install)
UserGroups: adm admin cdrom dialout lpadmin plugdev sambashare
Related branches
- Michael Terry (community): Approve
- Sebastien Bacher: Pending requested
- Stephen M. Webb: Pending requested
-
Diff: 114 lines (+33/-29)1 file modifiedsrc/gripgesturemanager.c (+33/-29)
visibility: | private → public |
Changed in eog (Ubuntu): | |
assignee: | nobody → Chase Douglas (chasedouglas) |
importance: | Medium → High |
affects: | eog (Ubuntu Oneiric) → libgrip (Ubuntu Oneiric) |
tags: | added: rls-mgr-o-tracking |
Changed in libgrip (Ubuntu Oneiric): | |
status: | Confirmed → In Progress |
assignee: | Chase Douglas (chasedouglas) → Stephen M. Webb (bregma) |
Changed in libgrip: | |
status: | New → In Progress |
assignee: | nobody → Stephen M. Webb (bregma) |
importance: | Undecided → High |
Changed in libgrip: | |
milestone: | none → 0.3.3 |
Changed in libgrip: | |
status: | In Progress → Fix Committed |
description: | updated |
Changed in libgrip (Ubuntu Oneiric): | |
milestone: | none → oneiric-updates |
assignee: | Stephen M. Webb (bregma) → Chase Douglas (chasedouglas) |
Changed in libgrip (Ubuntu Oneiric): | |
status: | In Progress → Fix Committed |
Changed in libgrip (Ubuntu Precise): | |
status: | New → Triaged |
Changed in libgrip: | |
status: | Fix Committed → Fix Released |
StacktraceTop: has_impl (window=0x0) at /build/ buildd/ gtk+3.0- 3.1.12/ ./gdk/gdkwindow .c:650 has_impl (window=0x0) at /build/ buildd/ gtk+3.0- 3.1.12/ ./gdk/gdkwindow .c:651 window_ get_xid (window=0x0) at /build/ buildd/ gtk+3.0- 3.1.12/ ./gdk/x11/ gdkwindow- x11.c:4753 usr/lib/ libgrip. so.0 usr/lib/ libgrip. so.0
gdk_window_
_gdk_window_
gdk_x11_
?? () from /tmp/tmpLVgucY/
?? () from /tmp/tmpLVgucY/