Created attachment 14234 [details]
I wanted to change xserver backlight settings using xrandr on a text console. I did this:
DISPLAY=:0 xrandr --output LVDS --set BACKLIGHT_CONTROL native
This is a toshiba satellite laptop, amd64, intel 965GM with Debian unstable, 2.6.24, xserver 2:1.4.1~git20080131-1, intel driver git 20080203.
I know this is not a very common way to do it, but xserver crashed with this backtrace.
#0 XkbEnableDisableControls (xkbi=0x190, change=<value optimized out>,
newValues=<value optimized out>, changes=0x0, cause=0x7fff9c459890) at ../../xkb/xkbUtils.c:748
#1 0x0000000000540759 in XkbRemoveResourceClient (inDev=0x87ea10, id=<value optimized out>)
#2 0x000000000044735b in CloseDevice (dev=0x87ea10) at ../../dix/devices.c:604
#3 0x000000000044754f in CloseDownDevices () at ../../dix/devices.c:626
#4 0x000000000056a643 in AbortServer () at ../../os/log.c:405
#5 0x000000000056ac95 in FatalError (f=0x5738a8 "Caught signal %d. Server aborting\n")
#6 0x00000000004756d9 in xf86SigHandler (signo=11)
#7 <signal handler called>
#8 0x00002b370fb78deb in memcpy () from /lib/libc.so.6
#9 0x00000000004af303 in xf86_crtc_convert_cursor_to_argb (crtc=0x2b3712d44000,
src=0x955710 "?�������") at ../../../../hw/xfree86/modes/xf86Cursors.c:216
#10 0x00000000004afd67 in xf86_load_cursor_image (scrn=<value optimized out>,
src=0x955710 "?�������") at ../../../../hw/xfree86/modes/xf86Cursors.c:438
#11 0x00000000004af997 in xf86_reload_cursors (screen=0x8300f0)
#12 0x00002b37117c0ebc in i830_crtc_commit (crtc=0x8067a0) at ../../src/i830_display.c:928
#13 0x00000000004aeb2e in xf86CrtcSetMode (crtc=0x8067a0, mode=0x7fff9c45a280,
---Type <return> to continue, or q <return> to quit---
rotation=<value optimized out>, x=0, y=0) at ../../../../hw/xfree86/modes/xf86Crtc.c:312
#14 0x00000000004b298c in xf86RandR12CrtcSet (pScreen=<value optimized out>, randr_crtc=0x84d2d0,
randr_mode=0x8490d0, x=0, y=0, rotation=16384, num_randr_outputs=1, randr_outputs=0x84e870)
#15 0x000000000051a90f in RRCrtcSet (crtc=0x84d2d0, mode=0x8490d0, x=0, y=0, rotation=1,
numOutputs=1, outputs=0x84e870) at ../../randr/rrcrtc.c:300
#16 0x000000000051b012 in ProcRRSetCrtcConfig (client=0x15f1490) at ../../randr/rrcrtc.c:833
#17 0x000000000044e3b0 in Dispatch () at ../../dix/dispatch.c:502
#18 0x0000000000436b8d in main (argc=8, argv=0x7fff9c45aa58, envp=<value optimized out>)
I forgot to say I'm not using any framebuffer driver or mode for text consoles.
Created attachment 14242 [details] [review]
It seems to access cursor memory which is unbound in VT switch. Above is experimental patch.
Thanks for the patch!
It has worked! I issued the same command using the git patched drivers, and well, I had a screen mixing a garbled Xorg picture and text console, but then I changed to vt7 (where Xorg is running) and it looked fine, then changed to vt6(text console) and it looked fine as well.
So from my POV this is fixed.
(In reply to comment #3)
> So from my POV this is fixed.
please don't mark bugs as fixed until they're actually fixed in git, as opposed to having a patch in bugzilla. thanks.
I don't know if it's worth the noise, but I wanted to say sorry. Now I know.
yeah, I don't think we should do like this test patch, but inhibit such behavior much earlier, although currently I have no idea where to do this. But this should be a low priority thing any way.
Jesse, do you have idea?
Yeah, I agree with Zhenyu. We've had other problems occur when apps try to access X services while the server has been VT switched, this probably isn't the only one. Keith may have some ideas here...
Created attachment 14899 [details] [review]
Check for VT sema in RandR set property code
Raul, can you check that this works for you? It would be good to get this fixed for the 1.5 server release...
I think this is really a server bug...
Created attachment 14900 [details] [review]
Check for VT sema in RandR set property code
Oops, should have tried that last patch before posting it. I think this one will work...
Created attachment 14901 [details] [review]
YAVTSP (yet another vt sema patch)
Assuming it works, this is the one I'd actually like to push.
Raul, any chance you can test the last patch I attached to this bug the other day?
Jesse, sorry for the low responsivity. I took a look at your patch some days ago, but provided I need to do some settings to get a valid xserver build environment I lowed priority to this. To be completely honest, I'm living a vacation period away of any computer not inside my working office and hence I'd take some time to come back to "normal" activity.
I still read the e-mail from time to time, so if you still think that this issue is somewhat important for the project I may do some effort to test it. If so just comment.
Thanks Raul, maybe we can reproduce this in-house.
Nian, is this something you can reproduce? If so, can you try the patch in this bug to see if it fixes the problem?
Oops, accidentally reassigned.
The patch does not work for me on GM965. X still crashed.
Created attachment 15093 [details] [review]
Check for VT sema in randr crtc set function
Oops, I should have looked at the backtrace before posting that last one. Can you give this patch a try?
Good, the patch works for me. And the command works:
xrandr --output LVDS --set BACKLIGHT_CONTROL native
Fixed in commit bee2ddf35f75086cee951142098637f2c756b96b.