FS#33419 - [xf86-video-sisimedia] cannot run with the latest xorg-server

Attached to Project: Arch Linux
Opened by Iru Dog (mytbk) - Wednesday, 16 January 2013, 15:39 GMT
Last edited by Jan de Groot (JGC) - Monday, 18 February 2013, 15:25 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To Jan de Groot (JGC)
Andreas Radke (AndyRTR)
Architecture x86_64
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 1
Private No

Details

Description:

I'm using a video card which requires sisimedia driver on my laptop. I updated my system today. When I started X, X will exit after a window opened. And I saw in Xorg.0.log that a segfault occurs with sisimedia. When I removed sisimedia and installed vesa, it's ok.

PS: the PKGBUILD cannot use to build it, I modified the configure.ac file and it can be build, but the problem is still here.

Additional info:
* package version(s)
* config and/or log files etc.


[ 62.885] (EE)
[ 62.885] (EE) Backtrace:
[ 62.907] (EE) 0: /usr/bin/X (xorg_backtrace+0x36) [0x58a426]
[ 62.907] (EE) 1: /usr/bin/X (0x400000+0x18e279) [0x58e279]
[ 62.907] (EE) 2: /usr/lib/libpthread.so.0 (0x7f3a675da000+0xf1e0) [0x7f3a675e91e0]
[ 62.907] (EE) 3: /usr/lib/xorg/modules/drivers/sisimedia_drv.so (0x7f3a64e5c000+0x4783d) [0x7f3a64ea383d]
[ 62.907] (EE) 4: /usr/lib/xorg/modules/drivers/sisimedia_drv.so (0x7f3a64e5c000+0x2a0c4) [0x7f3a64e860c4]
[ 62.907] (EE) 5: /usr/lib/xorg/modules/libexa.so (0x7f3a64818000+0x5e0b) [0x7f3a6481de0b]
[ 62.907] (EE) 6: /usr/lib/xorg/modules/libexa.so (0x7f3a64818000+0x648b) [0x7f3a6481e48b]
[ 62.907] (EE) 7: /usr/lib/xorg/modules/libexa.so (0x7f3a64818000+0x6d2c) [0x7f3a6481ed2c]
[ 62.907] (EE) 8: /usr/lib/xorg/modules/libexa.so (0x7f3a64818000+0xac1f) [0x7f3a64822c1f]
[ 62.907] (EE) 9: /usr/lib/xorg/modules/libexa.so (0x7f3a64818000+0xb62b) [0x7f3a6482362b]
[ 62.907] (EE) 10: /usr/bin/X (0x400000+0x11573d) [0x51573d]
[ 62.907] (EE) 11: /usr/bin/X (miPaintWindow+0x220) [0x56c3e0]
[ 62.908] (EE) 12: /usr/bin/X (miHandleValidateExposures+0x41) [0x5828a1]
[ 62.908] (EE) 13: /usr/bin/X (MapWindow+0x27f) [0x463c0f]
[ 62.908] (EE) 14: /usr/bin/X (0x400000+0x326a0) [0x4326a0]
[ 62.908] (EE) 15: /usr/bin/X (0x400000+0x37e61) [0x437e61]
[ 62.908] (EE) 16: /usr/bin/X (0x400000+0x2696a) [0x42696a]
[ 62.908] (EE) 17: /usr/lib/libc.so.6 (__libc_start_main+0xf5) [0x7f3a6625ea15]
[ 62.908] (EE) 18: /usr/bin/X (0x400000+0x26cad) [0x426cad]
[ 62.908] (EE)
[ 62.908] (EE) Segmentation fault at address 0x0

Steps to reproduce:
edit .xinitrc and replace the last lines with
twm &
exec urxvt
This task depends upon

Closed by  Jan de Groot (JGC)
Monday, 18 February 2013, 15:25 GMT
Reason for closing:  Fixed
Comment by Alexander (ArchAlex) - Sunday, 27 January 2013, 10:15 GMT
I have problems with latest xf86-video-intel 2.20.19-1 after upgrading xorg and xf86-video-intel. I am running LXDE and after some time into login in, the graphics justs starts behaving strangely, the fonts in different programs start to change, text disappearing here and there, programs start showing blank black screens up to a point where the system is unusable. The Xorg log shows that the system is asking for some buffer and not getting it, yours just crashes. I wonder if your problem is similar to mine as it has to do with latest Xorg and video drivers. Downgrading my xf86-video-intel to 2.20.17-1 solved the issue. There at least several other people with same problem out there. I wonder if i have to make a bug report for that.
Comment by Iru Dog (mytbk) - Monday, 28 January 2013, 01:16 GMT
I don't think it's the same problem. I'm using a video card which has few support in Linux, and the driver is not maintained in upstream for quite a long time.
Comment by Iru Dog (mytbk) - Wednesday, 06 February 2013, 03:28 GMT
I got a gdb log from the following methods:
1. use ssh to connect to the machine as user root
2. use screen to make two windows
3. in a window, execute "gdb X"
4. in gdb, "run :10"
5. in another window, run the following
export DISPLAY=:10
leafpad
6. then X crashes, and I got the gdb log

#0 0x00007f8e4e5eef65 in __memcpy_ssse3 () from /usr/lib/libc.so.6
#1 0x00007f8e4cf08dc1 in SiS_libc_memcpy (dst=0x7f8e41099bfc "",
src=0x4b2c <Address 0x4b2c out of bounds>, size=2400) at sis_memcpy.c:357
#2 0x00007f8e4cf0798b in SiSMemCopyFromVideoRam (pSiS=0x1dc5b10,
to=0x7f8e41099bfc "", from=0x4b2c <Address 0x4b2c out of bounds>,
size=2400) at sis_driver.c:11012
#3 0x00007f8e4ced7a88 in SiSDownloadFromScreen (pSrc=0x7f8e41095010, x=11,
y=8, w=5, h=8, dst=0x7f8e41099bfc "", dst_pitch=2400)
at sis310_accel.c:1560
#4 0x00007f8e4c85be0b in ?? () from /usr/lib/xorg/modules/libexa.so
#5 0x00007f8e4c85c1e8 in ?? () from /usr/lib/xorg/modules/libexa.so
#6 0x00007f8e4c85cdb4 in ?? () from /usr/lib/xorg/modules/libexa.so
#7 0x00007f8e4c85ceb4 in ?? () from /usr/lib/xorg/modules/libexa.so
#8 0x00007f8e4c8688fe in ?? () from /usr/lib/xorg/modules/libexa.so
#9 0x00007f8e4c86523c in ?? () from /usr/lib/xorg/modules/libexa.so
#10 0x00000000005141f9 in ?? ()
#11 0x0000000000502ef3 in miGlyphs ()
#12 0x00007f8e4c868d97 in ?? () from /usr/lib/xorg/modules/libexa.so
#13 0x0000000000514481 in ?? ()
#14 0x000000000050d686 in ?? ()
#15 0x0000000000437e51 in ?? ()
#16 0x000000000042695a in ?? ()
#17 0x00007f8e4e4e3a15 in __libc_start_main () from /usr/lib/libc.so.6
#18 0x0000000000426c9d in _start ()
Comment by Jan de Groot (JGC) - Wednesday, 06 February 2013, 09:56 GMT
Thanks for debugging. I know where the crash is coming from, we've seen this in quite some drivers. The SiSDownloadFromScreen / SiSUploadToScreen functions touch a pointer that is no longer initialized in xorg-server 1.13, which causes crashes. The workaround for this has been to disable these hooks in the driver. So far it looks like the hook is disabled in the sisimedia driver, but guess there's still a hook assignment in place here.
Comment by Jan de Groot (JGC) - Wednesday, 06 February 2013, 17:37 GMT
Here comes the tricky part: after unpacking source and applying all the patches that I put in the PKGBUILD, the SiSDownloadFromScreen function pointer is never assigned so it should not be executed anymore. Did you skip a patch when debugging?
Comment by Jan de Groot (JGC) - Wednesday, 06 February 2013, 18:27 GMT
OK, my fault. I committed a fix for this to trunk, but never released an updated package for this. An update is on its way now.
Comment by Iru Dog (mytbk) - Friday, 08 February 2013, 05:12 GMT
It's ok now after updating.
Thanks.

Loading...