eog logs me out when I try to turn right or left an image
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
xf86-video-intel |
Fix Released
|
High
|
|||
xserver-xorg-video-intel (Ubuntu) |
Fix Released
|
High
|
Bryce Harrington | ||
Oneiric |
Fix Released
|
High
|
Unassigned | ||
Precise |
Fix Released
|
High
|
Bryce Harrington |
Bug Description
[Impact]
X server crash which can occur when loading or interacting with large pixmap images.
[Development Fix]
Upstream fixed the issue in the upstream git tree for the -intel driver. It reworks the code that calculates pixmap size limits and ensures properly sized fallback mappings for source, destination, and masking pixmaps. Backporting the patches to the version of -intel we currently have in Precise was straightforward, and have been verified to fix the issue.
[Stable Fix]
The same patch applied to Precise's -intel applies without modification to Oneiric. A visual inspection of the code shows the surrounding code hasn't really changed so it's expected this patch will work as well in Oneiric as in Precise.
[Text Case]
0. watch dmesg and /var/log/Xorg.0.log
1. Obtain a large jpg file, such as a photo scaled up in gimp to >16M in file size.
2. Load the photo using eog
3. If eog successfully loads it, try rotating the image several times
Broken Behavior: Errors will emit to dmesg and X logs, then GPU will lockup and/or the X server will crash
Fixed Behavior: The image will load and rotate without crashes or lockups.
[Regression Potential]
Things to watch for include X crashes or odd behaviors relating to large image rotation or interaction. Indeed, upstream thinks there might be some secondary issues (haven't seen any so far myself), but presumably less severe than crashing.
Since the patch is the same for both oneiric and precise, I think we'll get an ample amount of testing just from folks running Precise. And the chance of there being regressions from this patch affecting oneiric, that don't affect precise, should be very low.
[Original Report]
When I turn left or right an image, system logs out and I have to log again on my count
(gdb) backtrace full
#0 __memcpy_ssse3_rep () at ../sysdeps/
No locals.
#1 0xb739788c in intel_uxa_
src_
dst = 0xa41ee000 <Address 0xa41ee000 out of bounds>
row_length = 32000
num_rows = 8
priv = 0x9ba3298
stride = 32256
cpp = <optimized out>
ret = 0
#2 0xb739968c in intel_uxa_put_image (pixmap=0x9ba3250, x=0, y=0, w=8000, h=8, src=0x9c6e420 "",
src_
priv = 0x9ba3298
#3 0xb73b0553 in uxa_do_put_image (src_stride=32000, bits=0x9c6e420 "", format=2, h=8, w=8000, y=0,
x=0, pGC=0x9c399d0, pDrawable=
y1 = 0
x2 = 159692224
ok = <optimized out>
x1 = <optimized out>
y2 = <optimized out>
src = 0x9c6e420 ""
yoff = 0
uxa_screen = 0x0
pPix = 0x9ba3250
pClip = <optimized out>
pbox = 0x9c1c590
nbox = <optimized out>
xoff = 0
bpp = <optimized out>
#4 uxa_put_image (pDrawable=
format=2, bits=0x9c6e420 "") at ../../uxa/
No locals.
From dmesg:
[ 41787.607] (EE) intel(0): Couldn't create pixmap for fbcon
...
[ 52602.993] (EE) intel(0): Couldn't create pixmap for fbcon
...
[ 88171.985] (EE) intel(0): Couldn't create pixmap for fbcon
...
[ 88172.435] (WW) intel(0): I830DRI2GetMSC:1297 get vblank counter failed: Invalid argument
[ 88172.438] (WW) intel(0): I830DRI2Schedul
[ 88172.440] (WW) intel(0): I830DRI2GetMSC:1297 get vblank counter failed: Invalid argument
[ 88172.440] (WW) intel(0): first get vblank counter failed: Invalid argument
[ 88172.903] (WW) intel(0): I830DRI2GetMSC:1297 get vblank counter failed: Invalid argument
[ 88172.905] (WW) intel(0): I830DRI2Schedul
[ 88172.959] (WW) intel(0): I830DRI2GetMSC:1297 get vblank counter failed: Invalid argument
[ 88172.970] (WW) intel(0): I830DRI2Schedul
[ 88173.143] (WW) intel(0): I830DRI2GetMSC:1297 get vblank counter failed: Invalid argument
[ 88173.177] (WW) intel(0): I830DRI2Schedul
[ 88173.363] (WW) intel(0): I830DRI2Schedul
[ 88174.698] (WW) intel(0): first get vblank counter failed: Invalid argument
[ 88175.457] (WW) intel(0): first get vblank counter failed: Invalid argument
<repeats for a while>
[100285.751] (WW) intel(0): first get vblank counter failed: Invalid argument
[100314.429]
Backtrace:
[100314.770] 0: /usr/bin/X (xorg_backtrace
[100314.770] 1: /usr/bin/X (0x8048000+0x62b3a) [0x80aab3a]
[100314.770] 2: (vdso) (__kernel_
[100314.770] 3: /lib/i386-
[100314.770] 4: /usr/lib/
[100314.770] 5: /usr/lib/
[100314.770] 6: /usr/lib/
[100314.770] 7: /usr/bin/X (0x8048000+0xe643a) [0x812e43a]
[100314.771] 8: /usr/bin/X (0x8048000+0x26997) [0x806e997]
[100314.771] 9: /usr/bin/X (0x8048000+0x2a117) [0x8072117]
[100314.771] 10: /usr/bin/X (0x8048000+0x1c70c) [0x806470c]
[100314.771] 11: /lib/i386-
[100314.771] 12: /usr/bin/X (0x8048000+0x1ca21) [0x8064a21]
[100314.771] Bus error at address 0xa38ba008
[100314.800]
Caught signal 7 (Bus error). Server aborting
ProblemType: Bug
DistroRelease: Ubuntu 11.10
Package: eog 3.2.1-0ubuntu1
ProcVersionSign
Uname: Linux 3.0.0-12-generic i686
NonfreeKernelMo
ApportVersion: 1.23-0ubuntu4
Architecture: i386
Date: Fri Nov 11 12:42:15 2011
ExecutablePath: /usr/bin/eog
InstallationMedia: Ubuntu 11.10 "Oneiric" - Build i386 LIVE Binary 20111013-11:02
ProcEnviron:
PATH=(custom, no user)
LANG=fr_FR.UTF-8
SHELL=/bin/bash
SourcePackage: eog
UpgradeStatus: Upgraded to oneiric on 2011-11-05 (6 days ago)
Changed in xserver-xorg-video-intel (Ubuntu): | |
status: | Incomplete → Confirmed |
description: | updated |
description: | updated |
Changed in xserver-xorg-video-intel (Ubuntu): | |
status: | Incomplete → New |
Changed in xserver-xorg-video-intel (Ubuntu Oneiric): | |
importance: | Undecided → High |
Changed in xserver-xorg-video-intel: | |
importance: | Unknown → High |
status: | Unknown → Confirmed |
Changed in xserver-xorg-video-intel (Ubuntu Precise): | |
status: | Triaged → Fix Released |
assignee: | nobody → Bryce Harrington (bryce) |
description: | updated |
description: | updated |
Changed in xserver-xorg-video-intel: | |
status: | Confirmed → Fix Released |
tags: |
added: verification-done removed: verification-needed |
Thank you for your bug report, could you add your /var/log/ Xorg.0. log.old to the bug after getting the issue? Does it happen every time? Is that specific to one image?