This bug was reported in Ubuntu https://bugs.launchpad.net/bugs/126820 After a fresh reboot (and with savage driver from git), I changed to a console, and back. It worked. Then again to a console and back and now it crashed.
Created attachment 10794 [details] my xorg.conf (BusType is PCI and BCIforXv is disabled)
Created attachment 10795 [details] my Xorg log
Created attachment 10796 [details] debug stacktrace I guess it crashed here (line 712 in xf86xv.c): pScreen = portPriv->pDraw->pScreen; since portPriv->pDraw is 0. (gdb) print *portPriv $2 = {pScrn = 0x8211430, pDraw = 0x0, type = 0 '\0', subWindowMode = 0, clipOrg = {x = 0, y = 0}, clientClip = 0x0, pCompositeClip = 0x2c, FreeCompositeClip = 0, AdaptorRec = 0x82583d0, isOn = XV_OFF, moved = 0, vid_x = 0, vid_y = 0, vid_w = 0, vid_h = 0, drw_x = 0, drw_y = 0, drw_w = 0, drw_h = 0, DevPriv = {ptr = 0x82584bc, val = 136676540, uval = 136676540, fptr = 0x82584bc}} I don't know if this is useful: Before xf86XVEnterVT calls WalkTree, it calls ScreenPriv->EnterVT which is CMapEnterVT: (gdb) print *(XF86XVScreenPtr) ((XvScreenPtr) pScreen->devPrivates[XF86XvScreenIndex].ptr)->devPriv.ptr $24 = {DestroyWindow = 0xb7ce4a00 <XvDestroyWindow>, ClipNotify = 0xb7c73a60 <DRIClipNotify>, WindowExposures = 0xb7c72a30 <DRIWindowExposures>, AdjustFrame = 0xb7c73200 <DRIAdjustFrame>, EnterVT = 0x80d08d0 <CMapEnterVT>, LeaveVT = 0xaf99b480 <XAALeaveVT>, videoGC = 0x0}
To see if it was a regression in the new savage driver, I went back to 2.1.2-5 (git from some months ago) but I could still reproduce. I also disabled DRI but no change. After logging in, it seems that I can switch back and forth without problem for a while. But if I start Rhythmbox and start playing, the album cover is displayed - which I guess uses xv - and then X will crash if I switch to a console and back.
I am not able to reproduce any longer, using xserver-xorg-core 2:1.3.0.0.dfsg-12ubuntu2 and xserver-xorg-video-savage 1:2.1.2-6, no options in xorg.conf.
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.