#781393 xserver-xorg-video-intel: double free or corruption (!prev) during xrandr from mobile to docked (Configure crtc 0 failed)

Package:
xserver-xorg-video-intel
Source:
xserver-xorg-video-intel
Description:
X.Org X server -- Intel i8xx, i9xx display driver
Submitter:
David Sheets
Date:
2015-03-28 17:27:05 UTC
Severity:
important
#781393#5
Date:
2015-03-28 14:07:56 UTC
From:
To:
Dear Maintainer,

On a ThinkPad T430, when performing a mobile suspend with all but LVDS1
disconnected and resuming in a dual-head dock, executing

['xrandr', '--output', 'LVDS1', '--off', '--output', 'HDMI2', '--gamma',
'1.0:1.0:1.0', '--mode', '1920x1200', '--pos', '0x0', '--rate', '59.95',
'--reflect', 'normal', '--rotate', 'left', '--transform',
'1,0,0,0,1,0,0,0,1']

results in

"xrandr: Configure crtc 0 failed"

printed to stderr and exit code 1. On VT 8, the message

*** Error in `/usr/bin/X': double free or corruption (!prev): 0x00007f65b0f02340 ***

is printed. When using
xserver-xorg-video-intel_2.99.917-1~exp1_amd64.deb, the problem does not
occur.

After first occurrence, X seems to still be stable (ha!). At second
occurrence (with a duplicated VT 8 message), X does not come back on any
displays but machine appears stable, console is usable, and ACPI
shutdown fine. (I think this is true but I haven't ruthlessly checked the failure
mode.) I have an (maybe unrelated) issue with the external displays
appearing disconnected but still with resolutions and an odd trailing
resolution record when using xrandr -q after dock -> mobile. I've not
yet checked whether this influences the failure mode.

Please let me know if you need more info, would like me to do debugging,
or need package version bisection (if you can point me to some info
about how to build and test this stuff... I'm semi-competent but not familiar
with this subsystem).

Thank you,

David Sheets

#781393#10
Date:
2015-03-28 17:25:06 UTC
From:
To:
mapped/in use displays and then redocked. I occasionally also see:

X Error of failed request:  BadMatch (invalid parameter attributes)
  Major opcode of failed request:  140 (RANDR)
  Minor opcode of failed request:  7 (RRSetScreenSize)
  Serial number of failed request:  43
  Current serial number in output stream:  45

in the logs and one of the docked monitors fails to get mapped.
Running xrandr to map the truant display once the system is awake
appears to always work, though.

Sometimes other, potentially related things are also printed to the
error console:

^@^@^@

and

usb 2-1.5.3: set resolution quirk: cval->res = 384

I don't know how relevant these messages are and I can't seem to
reproduce the issue 100% of the time any more. :-( Maybe the severity
should be 'normal'?

I'll keep this issue updated with other potentially relevant info.

Thank you!