Looks like Xorg crashes on exit after 463dd87 To reproduce: export DISPLAY=:1 ; X :1 & sleep 2 ; dwm & sleep 1 ; xrandr --output DVI-0 --off ; xrandr --output HDMI-0 --auto --rotate left ; xrandr --output DVI-0 --auto --left-of HDMI-0 ; sleep 3 ; kill %1 (gdb) bt full #0 DamageUnregister (pDrawable=0x0, pDamage=0x22da320) at ../../../miext/damage/damage.c:1923 pScreen = <value optimized out> pScrPriv = 0x0 #1 0x00000000004b04cb in xf86RotateDestroy (crtc=0x2036890) at ../../../../hw/xfree86/modes/xf86Rotate.c:308 pScrn = <value optimized out> pScreen = 0x2040c80 xf86_config = 0x2036700 c = <value optimized out> #2 0x00000000004b05d5 in xf86RotateCloseScreen (screen=<value optimized out>) at ../../../../hw/xfree86/modes/xf86Rotate.c:344 scrn = <value optimized out> xf86_config = 0x2036700 c = <value optimized out> #3 0x00000000004a2182 in xf86CrtcCloseScreen (index=0, screen=0x2040c80) at ../../../../hw/xfree86/modes/xf86Crtc.c:745 scrn = <value optimized out> config = 0x2036700 o = <value optimized out> c = <value optimized out> #4 0x00000000004c07fb in CursorCloseScreen (index=0, pScreen=0x2040c80) at ../../xfixes/cursor.c:207 ret = <value optimized out> close_proc = <value optimized out> display_proc = <value optimized out> constrain_proc = <value optimized out> #5 0x00000000004f498c in AnimCurCloseScreen (index=<value optimized out>, pScreen=<value optimized out>) at ../../render/animcur.c:106 as = 0x2070d60 ret = <value optimized out> #6 0x000000000042719f in main (argc=2, argv=<value optimized out>, envp=<value optimized out>) at ../../dix/main.c:327 i = 0 alwaysCheckForInput = {0, 1}
http://cgit.freedesktop.org/xorg/xserver/commit/?id=463dd87062edaa974cb8c7163328a53197f237e1 We should fix this or revert before beta1.
Created attachment 52211 [details] [review] workaround: destroy rotation damage only when screen has a drawable
Michal, please send your patch to xorg-devel for review
Have you sent this for review yet?
I have your reviewed-by but it was not included in the X server afaik.
It's in my tree and will be in my next [PULL] request.
The patch has been included in Xorg, but now the xserver segfaults during initialization. Backtrace: 0: /usr/bin/Xorg (xorg_backtrace+0x38) [0x81dc174] 1: /usr/bin/Xorg (0x8048000+0x1986b3) [0x81e06b3] 2: (vdso) (__kernel_rt_sigreturn+0x0) [0xb76ef40c] 3: /usr/bin/Xorg (xf86RotateDestroy+0x34) [0x8106ae0] 4: /usr/bin/Xorg (xf86CrtcRotate+0x117) [0x8106f10] 5: /usr/lib/xorg/modules/drivers/intel_drv.so (0xb6e36000+0xcda7) [0xb6e42da7] 6: /usr/lib/xorg/modules/drivers/intel_drv.so (0xb6e36000+0xd136) [0xb6e43136] 7: /usr/bin/Xorg (xf86CrtcSetModeTransform+0x1c3) [0x80f63e0] 8: /usr/bin/Xorg (xf86SetDesiredModes+0x252) [0x80fb2ea] 9: /usr/lib/xorg/modules/drivers/intel_drv.so (0xb6e36000+0x11ad3) [0xb6e47ad3] 10: /usr/lib/xorg/modules/drivers/intel_drv.so (0xb6e36000+0x1195a) [0xb6e4795a] 11: /usr/bin/Xorg (AddScreen+0x248) [0x807aec0] 12: /usr/bin/Xorg (InitOutput+0xf83) [0x80c4382] 13: /usr/bin/Xorg (0x8048000+0x1e05b) [0x806605b] 14: /lib/libc.so.6 (__libc_start_main+0xf3) [0xb70b3003] 15: /usr/bin/Xorg (0x8048000+0x1dd81) [0x8065d81] cu, Knut
This change simply add the need to check pScreen for null or make sure it isnt so. And if this is called during ScreenInit() we don't have pScrn->pScreen yet. This is already done in xf86CrtcRotate and should be done in xf86RotateDestroy now too.
Created attachment 59639 [details] [review] Make sure pScreen isn't NULL
fixed in fa6dddc6ce51c1b7a43fb379fb2a19550f6c8683 and ed33772a0d3ace5844e157ae78885ded000819ea
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.