Graphviz Issue Tracker
Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0002287graphvizOtherpublic2013-06-01 21:282013-06-01 23:59
Assigned To 
PlatformLinuxOSCentOSOS Version6.4
Summary0002287: dot crashes producing png on large file
DescriptionI have large file (18000 lines) which causes crash of dot when the graph is attempted to be produced. I could reproduce it on Gentoo ~amd64 (stacktrace attached from it), CentOS 6.3 and 6.4. I couldn't reproduce with ps backend.
Additional Information[New LWP 18980]
warning: Could not load shared library symbols for
Do you need "set solib-search-path" or "set sysroot"?
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/".
Core was generated by `dot -Tpng -o FluxReconstruction2DRowKer'.
Program terminated with signal 11, Segmentation fault.
#0 cairo_set_dash (cr=0x0, dashes=0x7f8d512d7400 <dashed>, num_dashes=0, offset=0) at cairo.c:1073
1073 cairo.c: No such file or directory.

Thread 1 (Thread 0x7f8d52c4b700 (LWP 18980)):
#0 cairo_set_dash (cr=0x0, dashes=0x7f8d512d7400 <dashed>, num_dashes=0, offset=0) at cairo.c:1073
        status = <optimized out>
0000001 0x00007f8d510d3656 in cairogen_set_penstyle (cr=0x0, job=<optimized out>) at gvrender_pango.c:250
        obj = 0x5688c30
0000002 0x00007f8d510d386c in cairogen_polygon (job=<optimized out>, A=0x7fffe6c321a0, n=4, filled=1) at gvrender_pango.c:296
        obj = 0x5688c30
        cr = 0x0
        i = <optimized out>
0000003 0x00007f8d52806ef3 in gvrender_box (job=<optimized out>, B=..., filled=<optimized out>) at gvrender.c:581
        A = {{x = -4, y = -5}, {x = -4, y = 34801.853086139185}, {x = 56588.528021094549, y = 34801.853086139185}, {x = 56588.528021094549, y = -5}}
0000004 0x00007f8d5283bd98 in emit_background (g=0x11a0840, job=0x119be00) at emit.c:1037
        xd = <optimized out>
        str = <optimized out>
        dfltColor = <optimized out>
0000005 emit_page (g=0x11a0840, job=0x119be00) at emit.c:2949
        obj = 0x5688c30
        nump = <optimized out>
        flags = 13056
        lab = <optimized out>
        p = <optimized out>
0000006 emit_graph (job=0x119be00, g=0x11a0840) at emit.c:3009
        n = <optimized out>
        s = <optimized out>
        flags = <optimized out>
0000007 0x00007f8d5283d46c in gvRenderJobs (gvc=0x11778e0, g=0x11a0840) at emit.c:3603
        prevjob = 0x0
        job = 0x119be00
        firstjob = <optimized out>
0000008 0x000000000040109f in main (argc=<optimized out>, argv=<optimized out>) at dot.c:220
        prev = 0x0
        r = <optimized out>
        rc = 0
From To Syms Read Shared Object Library
0x00007f8d52806020 0x00007f8d528465c8 Yes /usr/lib64/
0x00007f8d525da910 0x00007f8d525e0fd8 Yes /usr/lib64/
0x00007f8d5224e5a0 0x00007f8d523799f0 Yes /lib64/
0x00007f8d52026080 0x00007f8d52029d48 Yes /usr/lib64/
0x00007f8d51e1e060 0x00007f8d51e23178 Yes /usr/lib64/
0x00007f8d51c15a10 0x00007f8d51c19b88 Yes /usr/lib64/
0x00007f8d519ed360 0x00007f8d51a05ecc Yes /usr/lib64/
0x00007f8d517d5810 0x00007f8d517e1d40 Yes /lib64/
0x00007f8d514e36f0 0x00007f8d51543cf8 Yes /lib64/
0x00007f8d52a6bb60 0x00007f8d52a8505a Yes /lib64/
0x00007f8d512da090 0x00007f8d512dab30 Yes /lib64/
0x00007f8d510d3000 0x00007f8d510d5548 Yes /usr/lib64/graphviz/
0x00007f8d50ec6120 0x00007f8d50eca8d8 Yes /usr/lib64/
0x00007f8d50bc91f0 0x00007f8d50c81888 Yes /usr/lib64/
0x00007f8d509a7840 0x00007f8d509aedb0 Yes /usr/lib64/
0x00007f8d50762d50 0x00007f8d50781068 Yes /usr/lib64/
0x00007f8d50510830 0x00007f8d5053d698 Yes /usr/lib64/
0x00007f8d501f2d40 0x00007f8d5028b3cc Yes /usr/lib64/
0x00007f8d4ff44290 0x00007f8d4ffab008 Yes /usr/lib64/
0x00007f8d4fd03650 0x00007f8d4fd1e550 Yes /usr/lib64/
0x00007f8d4fae5750 0x00007f8d4faf0f64 Yes /lib64/
0x00007f8d4f852370 0x00007f8d4f8c8b1c Yes /usr/lib64/
0x00007f8d4f62f210 0x00007f8d4f63e51c Yes /usr/lib64/
0x00007f8d4f3f8ca0 0x00007f8d4f41ac5c Yes /usr/lib64/
0x00007f8d4f1efc90 0x00007f8d4f1f0354 Yes /usr/lib64/
0x00007f8d4efed670 0x00007f8d4efed77c Yes /usr/lib64/
0x00007f8d4ede6ed0 0x00007f8d4ede9990 Yes /usr/lib64/
0x00007f8d4ebce9d0 0x00007f8d4ebda128 Yes /usr/lib64/
0x00007f8d4e8a63c0 0x00007f8d4e9287fc Yes /usr/lib64/
0x00007f8d4e63f780 0x00007f8d4e6710d4 Yes /usr/lib64/
0x00007f8d4e4208a0 0x00007f8d4e42369c Yes /lib64/
0x00007f8d4e192f90 0x00007f8d4e1e4f2c Yes /usr/lib64/
0x00007f8d4df86390 0x00007f8d4df87258 Yes /usr/lib64/
0x00007f8d4dd7ebd0 0x00007f8d4dd83154 Yes /usr/lib64/
0x00007f8d4db6e990 0x00007f8d4db7a5a0 Yes /lib64/
0x00007f8d4d969d10 0x00007f8d4d96aa28 Yes /usr/lib64/
0x00007f8d4d763b60 0x00007f8d4d765390 Yes /usr/lib64/
0x00007f8d4d55cce0 0x00007f8d4d55e128 Yes /usr/lib64/
0x00007f8d4d34cdb0 0x00007f8d4d3554d0 Yes /usr/lib64/
0x00007f8d4d140d00 0x00007f8d4d145ab4 Yes /usr/lib64/
0x00007f8d4cf3a050 0x00007f8d4cf3ac6c Yes /usr/lib64/
0x00007f8d4cd346b0 0x00007f8d4cd35f48 Yes /usr/lib64/
0x00007f8d4cb15ee0 0x00007f8d4cb1e810 Yes /usr/lib64/
0x00007f8d4c8fe160 0x00007f8d4c9076b0 Yes /usr/lib64/
0x00007f8d4c6f7d60 0x00007f8d4c6f867c Yes /usr/lib64/
0x00007f8d4c4f2940 0x00007f8d4c4f4b88 Yes /usr/lib64/
0x00007f8d4c2e3fa0 0x00007f8d4c2e9eb8 Yes /usr/lib64/
0x00007f8d4c0d31d0 0x00007f8d4c0d5988 Yes /usr/lib64/
0x00007f8d4beb6cf0 0x00007f8d4bec9498 Yes /usr/lib64/
0x00007f8d4bc816c0 0x00007f8d4bc97c64 Yes /usr/lib64/
0x00007f8d4b948560 0x00007f8d4b9f9a44 Yes /usr/lib64/
0x00007f8d4b64c3b0 0x00007f8d4b6af53a Yes /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0/
0x00007f8d4b3ddac0 0x00007f8d4b3ecee8 Yes /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0/
0x00007f8d49c915e0 0x00007f8d49c916c0 Yes (*) /usr/lib64/
0x00007f8d49a6f600 0x00007f8d49a84798 Yes /usr/lib64/graphviz/
0x00007f8d49868a00 0x00007f8d4986940c Yes /usr/lib64/pango/1.8.0/modules/
(*): Shared library is missing debugging information.
$1 = 0x0
$2 = 0x0
rax 0x3 3
rbx 0x5688c30 90737712
rcx 0x1 1
rdx 0x0 0
rsi 0x7f8d512d7400 140244929049600
rdi 0x0 0
rbp 0x0 0x0
rsp 0x7fffe6c32130 0x7fffe6c32130
r8 0x3 3
r9 0x0 0
r10 0x7fffe6c31f00 140737064935168
r11 0x7f8d50bd8360 140244921713504
r12 0x0 0
r13 0x5688c30 90737712
r14 0x1 1
r15 0x1 1
rip 0x7f8d50bd8361 0x7f8d50bd8361 <cairo_set_dash+1>
eflags 0x10202 [ IF RF ]
cs 0x33 51
ss 0x2b 43
ds 0x0 0
es 0x0 0
fs 0x0 0
gs 0x0 0
Dump of assembler code for function cairo_set_dash:
   0x00007f8d50bd8360 <+0>: push %rbx
=> 0x00007f8d50bd8361 <+1>: mov 0x4(%rdi),%r9d
   0x00007f8d50bd8365 <+5>: mov %rdi,%rbx
   0x00007f8d50bd8368 <+8>: test %r9d,%r9d
   0x00007f8d50bd836b <+11>: jne 0x7f8d50bd8378 <cairo_set_dash+24>
   0x00007f8d50bd836d <+13>: mov 0x20(%rdi),%rax
   0x00007f8d50bd8371 <+17>: callq *0x68(%rax)
   0x00007f8d50bd8374 <+20>: test %eax,%eax
   0x00007f8d50bd8376 <+22>: jne 0x7f8d50bd837a <cairo_set_dash+26>
   0x00007f8d50bd8378 <+24>: pop %rbx
   0x00007f8d50bd8379 <+25>: retq
   0x00007f8d50bd837a <+26>: mov %rbx,%rdi
   0x00007f8d50bd837d <+29>: mov %eax,%esi
   0x00007f8d50bd837f <+31>: pop %rbx
   0x00007f8d50bd8380 <+32>: jmpq 0x7f8d50bd7dc0 <_cairo_set_error>
End of assembler dump.
TagsNo tags attached.
Attached Filesdot file icon [^] (1,787,429 bytes) 2013-06-01 21:28

- Relationships

-  Notes
User avatar (0000355)
north (administrator)
2013-06-01 23:59

Generally, crashes when rendering a large graph as an image (pixel not path based) are because the underlying rendering library runs out of memory. The situation is regrettable -- our code checks for this situation but apparently libraries like cairo/pango don't bother. There's not much we can do about it, other than developing heuristics to guess when the image is too large, or we could catch the signal and generate a message of some type reporting that the renderer failed. Sorry for the problems though.

- Issue History
Date Modified Username Field Change
2013-06-01 21:28 mpiechotka New Issue
2013-06-01 21:28 mpiechotka File Added:
2013-06-01 23:59 north Note Added: 0000355

MantisBT 1.2.5[^]
Copyright © 2000 - 2011 MantisBT Group
Powered by Mantis Bugtracker