#716851 xorg: Segfault in kicad/pcbnew (when manipulating copper fill zone outlines)

Package:
xserver-xorg-core
Source:
xorg-server
Description:
Xorg X server - core server
Submitter:
Boris Barbour
Date:
2013-08-24 23:15:04 UTC
Severity:
important
#716851#5
Date:
2013-07-13 16:04:48 UTC
From:
To:
I am using the kicad EDA suite, in particular the pcbnew layout editor. When I try to manipulate
the outlines of copper fill zones (moving or deleting), the X server crashes following a segfault.
It is quite reproducible and happens on at least two computers (both with intel graphics).

Below I've pasted in a backtrace obtained following wiki instructions.


Program received signal SIGSEGV, Segmentation fault.
0x00007fec8c6e88fe in fbBresSolid (pDrawable=pDrawable@entry=0x7fec95207240, pGC=pGC@entry=0x7fec95268310,
    dashOffset=<optimized out>, signdx=signdx@entry=-1, signdy=signdy@entry=-1, axis=axis@entry=0,
    x1=<optimized out>, y1=4, e=<optimized out>, e1=e1@entry=10, e3=e3@entry=-14, len=0, len@entry=7)
    at ../../fb/fbseg.c:78
78	../../fb/fbseg.c: No such file or directory.
#0  0x00007fec8c6e88fe in fbBresSolid (pDrawable=pDrawable@entry=0x7fec95207240, pGC=pGC@entry=0x7fec95268310,
    dashOffset=<optimized out>, signdx=signdx@entry=-1, signdy=signdy@entry=-1, axis=axis@entry=0,
    x1=<optimized out>, y1=4, e=<optimized out>, e1=e1@entry=10, e3=e3@entry=-14, len=0, len@entry=7)
    at ../../fb/fbseg.c:78
        dst = 0x7fec8a627ffc
        dstStride = <optimized out>
        dstBpp = 32
        dstXoff = <optimized out>
        dstYoff = <optimized out>
        pPriv = 0x7fec8a627ffc
        and = 4284481535
        xor = 10485760
        mask = 4294967295
        mask0 = 4294967295
        bits = <optimized out>
#1  0x00007fec8c6e9cbf in fbSegment (pDrawable=pDrawable@entry=0x7fec95207240, pGC=pGC@entry=0x7fec95268310, x1=6,
    y1=4, x2=-1, y2=-1, drawLast=drawLast@entry=0, dashOffset=dashOffset@entry=0x7fff8ef7558c)
    at ../../fb/fbseg.c:620
        new_x1 = 6
        new_y2 = 0
        clip1 = 0
        clipdx = <optimized out>
        err = <optimized out>
        new_y1 = 4
        new_x2 = 0
        clip2 = 10
        clipdy = <optimized out>
        bres = 0x7fec8c6e8730 <fbBresSolid>
        pClip = <optimized out>
        pBox = 0x7fec952686b8
        nBox = 7
        adx = 7
        ady = 5
        signdx = -1
        signdy = -1
        e = -8
        e1 = 10
        e2 = <optimized out>
        e3 = -14
        len = 7
        axis = 0
        octant = 6
        dashoff = 0
        doff = <optimized out>
        bias = 216
        oc1 = <optimized out>
        oc2 = <optimized out>
#2  0x00007fec8c6de33c in fbPolySegment32 (pDrawable=0x7fec95207240, pGC=0x7fec95268310, nseg=<optimized out>,
    pseg=<optimized out>) at ../../fb/fbbits.h:760
        pts = 0x7fec95265890
        xoff = 0
        yoff = 0
        bias = 216
        dst = 0x7fec8a628000
        dstStride = 384
        dstXoff = 0
        dstYoff = 0
        bits = <optimized out>
        bitsBase = 0x7fec8a628000
        bitsStride = 384
        xorBits = 10485760
        andBits = 4284481535
        xor = 10485760
        and = 4284481535
        dashoffset = 7
        ul = 0
        lr = 9044317
        pt1 = <optimized out>
        pt2 = <optimized out>
        e = <optimized out>
        e1 = <optimized out>
        e3 = <optimized out>
        len = <optimized out>
        stepmajor = <optimized out>
        stepminor = <optimized out>
        octant = <optimized out>
        capNotLast = 1
#3  0x00007fec8cbd6c85 in uxa_check_poly_segment (pDrawable=0x7fec95207240, pGC=0x7fec95268310, nsegInit=1,
    pSegInit=0x7fec95265888) at ../../uxa/uxa-unaccel.c:246
        screen = <optimized out>
        __FUNCTION__ = "uxa_check_poly_segment"
#4  0x00007fec90fbde2e in damagePolySegment (pDrawable=0x7fec95207240, pGC=0x7fec95268310, nSeg=1,
    pSeg=<optimized out>) at ../../../miext/damage/damage.c:1052
        pGCPriv = 0x7fec952683d8
        oldFuncs = 0x7fec9129c540 <damageGCFuncs>
#5  0x00007fec90efa43d in ProcPolySegment (client=0x7fec951d5ab0) at ../../dix/dispatch.c:1745
        nsegs = <optimized out>
        pGC = 0x7fec95268310
        pDraw = 0x7fec95207240
        stuff = 0x7fec9526587c
#6  0x00007fec90efde61 in Dispatch () at ../../dix/dispatch.c:428
        clientReady = 0x7fec94ca17c0
        result = <optimized out>
        client = 0x7fec951d5ab0
        nready = 0
        icheck = 0x7fec912a60f0 <checkForInput>
        start_tick = 180
#7  0x00007fec90eecec5 in main (argc=8, argv=0x7fff8ef75858, envp=<optimized out>) at ../../dix/main.c:288
        i = <optimized out>
        alwaysCheckForInput = {0, 1}

#716851#16
Date:
2013-08-24 22:56:30 UTC
From:
To:
There is a very similar backtrace attached to a bug report on the Ubuntu
Launchpad:

https://bugs.launchpad.net/kicad/+bug/911963
in particular comment #5 and
https://bugs.launchpad.net/kicad/+bug/911963/+attachment/2671141/+files/Xorg.gdblog.4975

For what it's worth, that reporter also uses intel drivers.