[Pkg-phototools-devel] Bug#804297: graphviz: dot on mips and mipsel fails with emit.c:3873: bezier_bb: Assertion `bz.size > 0' failed

Andreas Metzler ametzler at bebt.de
Sun Apr 3 13:23:48 UTC 2016


Source: graphviz
Version: 2.38.0-12
Followup-For: Bug #804297

Hello,

this also hits enblend-enfuse 4.2. Just in case it helps I am attaching
a full gdb log and the input file to reproduce the crash.

cu Andreas
-------------- next part --------------
#line 3 "../../doc/uml-dot.m4"


#line 11





#line 17




#line 25


#line 32



#line 36




#line 46


#line 54



#line 58







#line 70

#line 75



#line 79

 # RGB: 0xffff99, "pale yellow"




#line 91

#line 97



#line 101




#line 111




#line 116




#line 127


#line 1 "../../doc/external-mask-workflow.dot"
digraph ExternalMaskWorkflow
{
    graph [fontname = Helvetica,
#line 3
           fontsize = 10,
#line 3
           forcelabels = true,
#line 3
           splines = ortho]

    node [fontname = Helvetica,
#line 5
           fontsize = 9,
#line 5
           penwidth = 0.5,
#line 5
           shape = box,
#line 5
           style = rounded]
    _start [fillcolor = black,
#line 6
           fixedsize = shape,
#line 6
           label = "",
#line 6
           shape = circle,
#line 6
           style = filled,
#line 6
           width = 0.125]
    generate [label = "Generate Masks"]
    modify [label = "Modify Masks"]
    use [label = "Blend or Fuse\nUsing Masks"]
    _finish [fillcolor = black,
#line 10
           fixedsize = shape,
#line 10
           label = "",
#line 10
           shape = doublecircle,
#line 10
           style = filled,
#line 10
           width = 0.125]

    node [fillcolor = "0.167,0.4,1.0",
#line 12
           fontname = Helvetica,
#line 12
           fontsize = 9,
#line 12
           penwidth = 0.35,
#line 12
           shape = note,
#line 12
           style = filled]
    generate_note [label = "Enblend, Enfuse --save-masks"]
    modify_note [label = "Any image editor"]
    use_note [label = "Enblend, Enfuse --load-masks"]

    {rank = same; generate; generate_note}
    {rank = same; modify; modify_note}
    {rank = same; use; use_note}

    edge [arrowsize = 0.667,
#line 21
           fontname = Helvetica,
#line 21
           fontsize = 8,
#line 21
           penwidth = 0.5]
    _start -> generate
    generate -> modify
    modify -> use
    use -> _finish

    edge [dir = none,
#line 27
           fontname = Helvetica,
#line 27
           fontsize = 8,
#line 27
           penwidth = 0.35,
#line 27
           style = dashed]
    generate -> generate_note
    modify -> modify_note
    use -> use_note
}
-------------- next part --------------
(sid_mips-dchroot)ametzler at minkus:~/ENFUSE/enblend-enfuse-4.2/build-def/doc$ LD_LIBRARY_PATH=/home/ametzler/ENFUSE/graphviz-2.38.0/lib/gvc/.libs gdb /home/ametzler/ENFUSE/graphviz-2.38.0/cmd/dot/.libs/dot 2>&1 | tee gdb.log
GNU gdb (Debian 7.10-1+b1) 7.10
Copyright (C) 2015 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "mips-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /home/ametzler/ENFUSE/graphviz-2.38.0/cmd/dot/.libs/dot...done.
(gdb) set pagination 0
(gdb) run -Teps -Gsize=4.75,8.5 -oexternal-mask-workflow.eps < debug.input-for-d 
ot
Starting program: /home/ametzler/ENFUSE/graphviz-2.38.0/cmd/dot/.libs/dot -Teps -Gsize=4.75,8.5 -oexternal-mask-workflow.eps < debug.input-for-dot
warning: GDB can't find the start of the function at 0x77fc6b74.

    GDB is unable to find the start of the function at 0x77fc6b74
and thus can't determine the size of that function's stack frame.
This means that GDB may be unable to access that stack frame, or
the frames below it.
    This problem is most likely caused by an invalid program counter or
stack pointer.
    However, if you think GDB should simply search farther back
from 0x77fc6b74 for code which looks like the beginning of a
function, you can increase the range of the search using the `set
heuristic-fence-post' command.
warning: GDB can't find the start of the function at 0x77fc7bd0.
warning: GDB can't find the start of the function at 0x77fca180.
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/mips-linux-gnu/libthread_db.so.1".
warning: GDB can't find the start of the function at 0x77fdb020.
warning: GDB can't find the start of the function at 0x77fca180.
warning: GDB can't find the start of the function at 0x77fdb020.
warning: GDB can't find the start of the function at 0x77fca180.
warning: GDB can't find the start of the function at 0x77fdb020.

Program received signal SIGSEGV, Segmentation fault.
bezier_bb (bz=...) at emit.c:3875
3875	    bb.LL = bb.UR = bz.list[0];
(gdb) bt full
#0  bezier_bb (bz=...) at emit.c:3875
        i = <optimized out>
        p = <optimized out>
        p1 = <optimized out>
        p2 = <optimized out>
        bb = <optimized out>
#1  0x77f8bd04 in init_splines_bb (spl=0x462ab8) at emit.c:3901
        i = <optimized out>
        bz = {list = 0x462ae8, size = 4, sflag = 0, eflag = 1, sp = {x = <optimized out>, y = <optimized out>}, ep = {x = <optimized out>, y = <optimized out>}}
        bb = <optimized out>
        b = <optimized out>
#2  init_bb_edge (e=0x42ce58) at emit.c:3926
        spl = 0x462ab8
#3  init_bb_node (n=0x429b08, g=0x4292c8) at emit.c:3943
        e = 0x42ce58
#4  init_bb (g=0x4292c8) at emit.c:3959
        n = 0x429b08
#5  gvRenderJobs (gvc=0x413458, g=0x4292c8) at emit.c:4013
        prevjob = 0x0
        job = <optimized out>
        firstjob = <optimized out>
#6  0x00400ee4 in main (argc=<optimized out>, argv=<optimized out>) at dot.c:192
        prev = <optimized out>
        r = <optimized out>
        rc = 0
(gdb) x/16i $pc
=> 0x77f827bc <bezier_bb+80>:	ldc1	$f10,8(a2)
   0x77f827c0 <bezier_bb+84>:	ldc1	$f12,0(a2)
   0x77f827c4 <bezier_bb+88>:	beq	a3,v0,0x77f82884 <bezier_bb+280>
   0x77f827c8 <bezier_bb+92>:	mov.d	$f14,$f10
   0x77f827cc <bezier_bb+96>:	lw	v1,-32724(gp)
   0x77f827d0 <bezier_bb+100>:	addiu	a2,a2,16
   0x77f827d4 <bezier_bb+104>:	mov.d	$f16,$f12
   0x77f827d8 <bezier_bb+108>:	li	v0,1
   0x77f827dc <bezier_bb+112>:	ldc1	$f18,1400(v1)
   0x77f827e0 <bezier_bb+116>:	addiu	a2,a2,48
   0x77f827e4 <bezier_bb+120>:	ldc1	$f4,-48(a2)
   0x77f827e8 <bezier_bb+124>:	addiu	v0,v0,3
   0x77f827ec <bezier_bb+128>:	slt	v1,v0,a3
   0x77f827f0 <bezier_bb+132>:	ldc1	$f6,-32(a2)
   0x77f827f4 <bezier_bb+136>:	ldc1	$f0,-24(a2)
   0x77f827f8 <bezier_bb+140>:	ldc1	$f2,-40(a2)
(gdb) thread apply all backtrace

Thread 1 (Thread 0x77c22000 (LWP 30475)):
#0  bezier_bb (bz=...) at emit.c:3875
#1  0x77f8bd04 in init_splines_bb (spl=0x462ab8) at emit.c:3901
#2  init_bb_edge (e=0x42ce58) at emit.c:3926
#3  init_bb_node (n=0x429b08, g=0x4292c8) at emit.c:3943
#4  init_bb (g=0x4292c8) at emit.c:3959
#5  gvRenderJobs (gvc=0x413458, g=0x4292c8) at emit.c:4013
#6  0x00400ee4 in main (argc=<optimized out>, argv=<optimized out>) at dot.c:192
(gdb) quit
A debugging session is active.

	Inferior 1 [process 30475] will be killed.

Quit anyway? (y or n) y


More information about the Pkg-phototools-devel mailing list