Bug 27436 - Crash during login in FontFileAddFontFile()
Summary: Crash during login in FontFileAddFontFile()
Status: RESOLVED NOTOURBUG
Alias: None
Product: xorg
Classification: Unclassified
Component: Server/General (show other bugs)
Version: 7.4 (2008.09)
Hardware: All Linux (All)
: medium normal
Assignee: Xorg Project Team
QA Contact: Xorg Project Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-04-03 02:29 UTC by Bryce Harrington
Modified: 2010-04-03 06:37 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments

Description Bryce Harrington 2010-04-03 02:29:43 UTC
Forwarding this issue from Ubuntu reporter Arun S L:
https://bugs.edge.launchpad.net/ubuntu/+source/xorg-server/+bug/542357

[Problem]
A crash is encountered in the routine FontFileAddFontFile()

[Original Report]
xorg crashes with 9.10 and ubuntu-bug and uing ppa is also not working. Says network fault in the only shell available. But apt-get is working.

Backtrace:
0: /usr/bin/X (xorg_backtrace+0x3b) [0x80e880b]
1: /usr/bin/X (0x8048000+0x61aed) [0x80a9aed]
2: (vdso) (__kernel_rt_sigreturn+0x0) [0x730410]
3: /usr/lib/libXfont.so.1 (FontFileAddFontFile+0xff) [0x5616ff]
4: /usr/lib/libXfont.so.1 (FontFileReadDirectory+0x2ef) [0x55fe2f]
5: /usr/lib/libXfont.so.1 (FontFileInitFPE+0x2f) [0x56327f]
6: /usr/bin/X (0x8048000+0x2ca23) [0x8074a23]
7: /usr/bin/X (SetDefaultFontPath+0x100) [0x8074cb0]
8: /usr/bin/X (0x8048000+0x1ec2e) [0x8066c2e]
9: /lib/tls/i686/cmov/libc.so.6 (__libc_start_main+0xe6) [0x7e0bd6]
10: /usr/bin/X (0x8048000+0x1e921) [0x8066921]
Illegal instruction at address 0x8d9419

Caught signal 4 (Illegal instruction). Server aborting

00:00.0 Host bridge [0600]: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge [8086:7190] (rev 01)
        Subsystem: VMware Device [15ad:1976]
00:0f.0 VGA compatible controller [0300]: VMware SVGA II Adapter [15ad:0405]
        Subsystem: VMware SVGA II Adapter [15ad:0405]



some more debug info about the instruction causing fault: its palignr!!!

(gdb) display/i $pc-5
6: x/i $pc-5
   0x279414: and %ah,0xf(%esi)
(gdb) display/i $pc-4
7: x/i $pc-4
   0x279415: movdqa %xmm3,%xmm4
(gdb) display/i $pc-3
8: x/i $pc-3
   0x279416: movq %mm3,%mm4
(gdb) display/i $pc-2
9: x/i $pc-2
   0x279417: outsl %ds:(%esi),(%dx)
(gdb) display/i $pc-1
10: x/i $pc-1
   0x279418: jecxz 0x279480
(gdb) display/i $pc
11: x/i $pc
=> 0x279419: palignr $0x4,%xmm2,%xmm3
(gdb) display/i $pc+1
12: x/i $pc+1
   0x27941a: palignr $0x4,%mm2,%mm3
(gdb) display/i $pc+2
13: x/i $pc+2
   0x27941b: cmp (%edi),%cl
(gdb) display/i $pc+3
14: x/i $pc+3
   0x27941c: pminub (%esi,%eiz,2),%mm0
(gdb) display/i $pc+4
15: x/i $pc+4
   0x27941d: fiaddl (%esi,%eiz,2)
(gdb) display/i $pc+5
16: x/i $pc+5
   0x27941e: add $0x66,%al



bt with source details...

Program received signal SIGILL, Illegal instruction.
0x003ae419 in ?? () from /lib/tls/i686/cmov/libc.so.6
(gdb) bt
#0 0x003ae419 in ?? () from /lib/tls/i686/cmov/libc.so.6
#1 0xbfffee8c in ?? ()
#2 0x001696ff in FontFileAddFontFile (dir=0x8245788,
    fontName=0xbfffee8c "-misc-fixed-medium-r-normal--20-200-75-75-c-100-iso8859-1", fileName=0xbffff28c "10x20-ISO8859-1.pcf.gz")
    at ../../../src/fontfile/fontdir.c:691
#3 0x00167e2f in FontFileReadDirectory (
    directory=0x8242ed0 "/usr/share/fonts/X11/misc", pdir=0xbffff6cc)
    at ../../../src/fontfile/dirfile.c:138
#4 0x0016b27f in FontFileInitFPE (fpe=0x8245608)
    at ../../../src/fontfile/fontfile.c:99
#5 0x080723c3 in SetFontPathElements (npaths=<value optimized out>,
    paths=<value optimized out>, bad=0xbffff79c, persist=1)
    at ../../dix/dixfonts.c:1753
#6 0x08072680 in SetDefaultFontPath (
    path=0x8215bb0 "/usr/share/fonts/X11/misc,/usr/share/fonts/X11/100dpi/:unscaled,/usr/share/fonts/X11/75dpi/:unscaled,/usr/share/fonts/X11/Type1,/usr/share/fonts/X11/100dpi,/usr/share/fonts/X11/75dpi,/var/lib/defoma/x"...)
    at ../../dix/dixfonts.c:1866
#7 0x08066c2e in main (argc=1, argv=0xbffff8b4, envp=0xbffff8bc)
    at ../../dix/main.c:225
(gdb)






some more insight after painfully compiling the libc source also, took more than 3GB of downloading and compilation. somehow managed..

#0 __memcpy_ssse3 () at ../sysdeps/i386/i686/multiarch/memcpy-ssse3.S:532
#1 0xbfffee8c in ?? ()
#2 0x001696ff in FontFileAddFontFile (dir=0x8245788,
    fontName=0xbfffee8c "-misc-fixed-medium-r-normal--20-200-75-75-c-100-iso8859-1", fileName=0xbffff28c "10x20-ISO8859-1.pcf.gz")
    at ../../../src/fontfile/fontdir.c:691
#3 0x00167e2f in FontFileReadDirectory (
    directory=0x8242ed0 "/usr/share/fonts/X11/misc", pdir=0xbffff6cc)
    at ../../../src/fontfile/dirfile.c:138
#4 0x0016b27f in FontFileInitFPE (fpe=0x8245608)
    at ../../../src/fontfile/fontfile.c:99
#5 0x080723c3 in SetFontPathElements (npaths=<value optimized out>,
    paths=<value optimized out>, bad=0xbffff79c, persist=1)
    at ../../dix/dixfonts.c:1753
#6 0x08072680 in SetDefaultFontPath (
    path=0x8215bb0 "/usr/share/fonts/X11/misc,/usr/share/fonts/X11/100dpi/:unscaled,/usr/share/fonts/X11/75dpi/:unscaled,/usr/share/fonts/X11/Type1,/usr/share/fonts/X11/100dpi,/usr/share/fonts/X11/75dpi,/var/lib/defoma/x"...)
    at ../../dix/dixfonts.c:1866
#7 0x08066c2e in main (argc=1, argv=0xbffff8b4, envp=0xbffff8bc)
    at ../../dix/main.c:225
(gdb)

portion of code from the file sysdeps/i386/i686/multiarch/memcpy-ssse3.S arround line 532

L(shl_4_loop):

        movdqa 16(%eax, %edi), %xmm2
        sub $32, %ecx
        movdqa 32(%eax, %edi), %xmm3
        movdqa %xmm3, %xmm4
        palignr $4, %xmm2, %xmm3
        palignr $4, %xmm1, %xmm2
        lea 32(%edi), %edi
        movdqa %xmm2, -32(%edx, %edi)
        movdqa %xmm3, -16(%edx, %edi)

        jl L(shl_4_end)

        movdqa 16(%eax, %edi), %xmm2
        sub $32, %ecx
        movdqa 32(%eax, %edi), %xmm3
        movdqa %xmm3, %xmm1

Can anyone help me from here?




finally did one tweek to get it working...

:-)

moved /lib/tls/i686/cmov/libc.so.6 out

ldd picked /lib/libc.so.6 and bingo... everything is working fine now...

Please let me know if there is a factual solution down the line.
Comment 2 Julien Cristau 2010-04-03 06:36:52 UTC
sigill in memcpy sounds like a libc bug to me. closing as not our bug.


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.