Re: X-Server segfault

2003-03-28 Thread Gerd Knorr
I believe this can only happen if your font render is broken.
 These are fixed fonts.  It should be impossible that there is no
 data in those pointers. 
 
Is this recent source code?

Yes.  static server build from yesterdays cvsup.

 There have been bugs of this sort
 fixed in the font renderers not long before 4.3.  Though maybe
 more exist.  If this is easily reproducible I suspect you'll
 find that it only happens with the freetype or xtt renders.

It likely is the bitmap renderer, but I'll try without freetype.
Is there some way to turn off freetype in a static server (other
that recompiling the whole thing with freetype disabled)?

  Gerd

-- 
/join #zonenkinder
___
Devel mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/devel


Re: X-Server segfault

2003-03-28 Thread Gerd Knorr
  There have been bugs of this sort
  fixed in the font renderers not long before 4.3.  Though maybe
  more exist.  If this is easily reproducible I suspect you'll
  find that it only happens with the freetype or xtt renders.
 
 It likely is the bitmap renderer, but I'll try without freetype.

Font data comes from the fontserver.  More gdb debugging:

(gdb) down
#2  0x0823e611 in XAAGlyphBltTEColorExpansion (pScrn=0x881e8e0, xInit=1, 
yInit=142837096, font=0x0, fg=0, bg=-1, rop=3, planemask=4294967295, 
cclip=0x89434ac, nglyph=1, gBase=0x0, ppci=0x883899c) at xaaTEText.c:281
   ^
Note gBase is NULL, that will result in the NULL pointer dereference
later on.

(gdb) up
#3  0x0823e297 in XAAPolyText16TEColorExpansion (pDraw=0x8943480, 
pGC=0x893c9f0, x=0, y=20, count=1, chars=0x8939723) at xaaTEText.c:97
(gdb) print *pGC
$16 = {pScreen = 0x8820f88, depth = 16 '\020', alu = 3 '\003', lineWidth = 0, 
  dashOffset = 0, numInDashList = 2, dash = 0x879a868 \004\004, 
  lineStyle = 0, capStyle = 1, joinStyle = 0, fillStyle = 0, fillRule = 0, 
  arcMode = 1, subWindowMode = 0, graphicsExposures = 1, clientClipType = 0, 
  miTranslate = 1, tileIsPixel = 1, fExpose = 1, freeCompClip = 0, unused = 0, 
  planemask = 4294967295, fgPixel = 0, bgPixel = 1, tile = {pixmap = 0x0, 
pixel = 0}, stipple = 0x88626c8, patOrg = {x = 0, y = 0}, 
  font = 0x893caa8, clipOrg = {x = 0, y = 0}, lastWinOrg = {x = 1, y = 91}, 
  clientClip = 0x0, stateChanges = 0, serialNumber = 1782, funcs = 0x879e460, 
  ops = 0x895a2f0, devPrivates = 0x893ca48, pRotatedPixmap = 0x0, 
  pCompositeClip = 0x89434ac}
(gdb) print *(pGC-font)
$18 = {refcnt = 2, info = {firstCol = 0, lastCol = 255, firstRow = 0, 
lastRow = 239, defaultCh = 0, noOverlap = 1, terminalFont = 1, 
constantMetrics = 1, constantWidth = 1, inkInside = 1, inkMetrics = 0, 
allExist = 0, drawDirection = 0, cachable = 1, anamorphic = 0, 
maxOverlap = 0, pad = 0, maxbounds = {leftSideBearing = 0, 
  rightSideBearing = 12, characterWidth = 12, ascent = 20, descent = 0, 
  attributes = 0}, minbounds = {leftSideBearing = 0, 
  rightSideBearing = 12, characterWidth = 12, ascent = 20, descent = 0, 
  attributes = 0}, ink_maxbounds = {leftSideBearing = 10, 
  rightSideBearing = 12, characterWidth = 12, ascent = 20, descent = 0, 
  attributes = 0}, ink_minbounds = {leftSideBearing = 0, 
  rightSideBearing = 0, characterWidth = 12, ascent = 0, descent = -18, 
  attributes = 0}, fontAscent = 20, fontDescent = 0, nprops = 22, 
props = 0x893cb38, 
isStringProp = 0x893cbe8 \001\001\001\001\001\001\001}, bit = 0 '\0', 
  byte = 0 '\0', glyph = 4 '\004', scan = 1 '\001', format = 512, 
  get_glyphs = 0x867cf80 _fs_get_glyphs, 
  get_metrics = 0x867d3f0 _fs_get_metrics, 
  unload_font = 0x867d650 _fs_unload_font, unload_glyphs = 0, 
  fpe = 0x8869960, svrPrivate = 0x0, fontPrivate = 0x893bc70, 
  fpePrivate = 0x893bc80, maxPrivate = 1, devPrivates = 0x893cb2c}


xaaTEText.c, line 91 looks like this:

if(n) XAAGlyphBltTEColorExpansion(
infoRec-pScrn, x + pDraw-x, y + pDraw-y,
pGC-font, pGC-fgPixel, -1, pGC-alu, pGC-planemask, 
pGC-pCompositeClip, n, FONTGLYPHS(pGC-font), infoRec-CharInfo);


grepping for the FONTGLYPHS macro finds this:

bogomips root /work/xfree86/xc# find -name \*.h | xargs grep FONTGLYPHS
./programs/Xserver/include/dixfontstr.h:#define FONTGLYPHS(font)  0


Huh?  How can this ever work?  And why it isn't triggered more frequently?

  Gerd

-- 
/join #zonenkinder
___
Devel mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/devel


Re: X-Server segfault

2003-03-28 Thread Gerd Knorr
On Fri, Mar 28, 2003 at 11:12:33AM +0100, Gerd Knorr wrote:
  It likely is the bitmap renderer, but I'll try without freetype.
 
 Font data comes from the fontserver.  More gdb debugging:

When I disable the font server and let XFree86 render the fonts instead
it works just fine.

  Gerd

-- 
/join #zonenkinder
___
Devel mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/devel


Re: X-Server segfault

2003-03-28 Thread Mark Vojkovich
On Fri, 28 Mar 2003, Gerd Knorr wrote:

 On Fri, Mar 28, 2003 at 11:12:33AM +0100, Gerd Knorr wrote:
   It likely is the bitmap renderer, but I'll try without freetype.
  
  Font data comes from the fontserver.  More gdb debugging:
 
 When I disable the font server and let XFree86 render the fonts instead
 it works just fine.
 
 
   
   One of the reasons I never use a font server.  I got repeatedly
burned by font server bugs about 4 years ago and haven't used them 
since.  Subsequently, I seem to have alot fewer font problems then 
other people.


Mark.

___
Devel mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/devel


Re: X-Server segfault

2003-03-27 Thread Mark Vojkovich
   I believe this can only happen if your font render is broken.
These are fixed fonts.  It should be impossible that there is no
data in those pointers. 

   Is this recent source code?  There have been bugs of this sort
fixed in the font renderers not long before 4.3.  Though maybe
more exist.  If this is easily reproducible I suspect you'll
find that it only happens with the freetype or xtt renders.


Mark.

On Thu, 27 Mar 2003, Gerd Knorr wrote:

   Hi,
 
 The X-Server crashes with a segfault due to a NULL pointer dereference,
 perfectly reproducable with a certain X client (mtt -- motif teletext
 decoder).  Stacktrace below.  Setting Option no_accel workarounds
 this.  Hardware is a i386 machine with a Matrox G200.  Anyone has a
 quick idea what this might be?
 
 cu,
 
   Gerd
 
 ==[ cut here ]==
 (gdb) c
 Continuing.
 
 Program received signal SIGSEGV, Segmentation fault.
 0x0825de38 in DrawTETextScanlineWidth12 (base=0x4098, glyphp=0x883aab0,
 line=0, width=12, glyphwidth=12) at xaaTEGlyph.c:868
 868 bits |= SHIFT_L(glyphp[1][line],12);
 (gdb) bt
 #0  0x0825de38 in DrawTETextScanlineWidth12 (base=0x4098,
 glyphp=0x883aab0, line=0, width=12, glyphwidth=12) at xaaTEGlyph.c:868
 #1  0x0825cfa3 in XAATEGlyphRendererScanlineLSBFirst (pScrn=0x881e8e0, x=1,
 y=91, w=12, h=19, skipleft=0, startline=1, glyphs=0x883aab0,
 glyphWidth=12, fg=0, bg=0, rop=12, planemask=0) at xaaTEGlyph.c:402
 #2  0x0823e611 in XAAGlyphBltTEColorExpansion (pScrn=0x881e8e0, xInit=1,
 yInit=142837096, font=0x0, fg=0, bg=-1, rop=3, planemask=4294967295,
 cclip=0x8945c7c, nglyph=1, gBase=0x0, ppci=0x883899c) at xaaTEText.c:281
 #3  0x0823e297 in XAAPolyText16TEColorExpansion (pDraw=0x8945c50,
 pGC=0x893f238, x=0, y=20, count=1, chars=0x893bf5b) at xaaTEText.c:97
 #4  0x0842fe9e in miSpritePolyText16 (pDrawable=0x8945c50, pGC=0x893f238, x=0,
 y=20, count=1, chars=0x893bf5b) at misprite.c:1848
 #5  0x08352206 in doPolyText (client=0x88ad5a0, c=0xbfffed00)
 at dixfonts.c:1392
 #6  0x083524ed in PolyText (client=0x88ad5a0, pDraw=0x0, pGC=0x0, pElt=0x0,
 endReq=0x0, xorg=0, yorg=0, reqType=142846640, did=0) at dixfonts.c:1473
 #7  0x0833548c in ProcPolyText (client=0x88ad5a0) at dispatch.c:2356
 #8  0x083314ca in Dispatch () at dispatch.c:450
 #9  0x08343271 in main (argc=2, argv=0xb244, envp=0xb250) at main.c:435
 #10 0x4005e8ae in __libc_start_main () from /lib/libc.so.6
 (gdb) print line
 $1 = 0
 (gdb) print glyph
 No symbol glyph in current context.
 (gdb) print glyphp
 $2 = (unsigned int **) 0x883aab0
 (gdb) print glyphp[0]
 $3 = (unsigned int *) 0x0
 (gdb) print glyphp[1]
 $4 = (unsigned int *) 0x0
 (gdb)
 ___
 Devel mailing list
 [EMAIL PROTECTED]
 http://XFree86.Org/mailman/listinfo/devel
 

___
Devel mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/devel