Number: 1890
Title: Segfault in dot_concentrate using large input on OS X 10.6
Submitter: Shalev NessAiver
Date: Mon Feb 22 15:47:24 2010
Subsys: Dot
Version: 2.26.3
System: x86-OSX-10.6.2
Severity: major
Problem:
dot -v big-new.gv -Tdot -oresult.gv

The problem occurs with every output type (svg, png, etc.) I was able to test.

The bug disappears when shrinking the file down to about ~950 nodes.

Session:


(gdb) run -v test.gv -Tsvg -oresult.svg
Starting program: /usr/local/bin/dot -v test.gv -Tsvg -oresult.svg
Reading symbols for shared libraries .++++++++ done
Reading symbols for shared libraries ............................................................................................... done
dot - graphviz version 2.26.3 (20100126.1600)
Activated plugin library: libgvplugin_pango.6.dylib
Using textlayout: textlayout:cairo
Reading symbols for shared libraries . done
Activated plugin library: libgvplugin_dot_layout.6.dylib
Using layout: dot:dot_layout
Reading symbols for shared libraries . done
Activated plugin library: libgvplugin_core.6.dylib
Using render: svg:core
Using device: svg:svg:core
The plugin configuration file:
	/usr/local/lib/graphviz/config6
		was successfully loaded.
    render	:  cairo dot fig gd map ps quartz svg tk vml vrml xdot
    layout	:  circo dot fdp neato nop nop1 nop2 osage patchwork sfdp twopi
    textlayout	:  textlayout
    device	:  bmp canon cgimage cmap cmapx cmapx_np dot eps exr fig gd gd2 gif gv imap imap_np ismap jp2 jpe jpeg jpg pct pdf pict plain plain-ext png ps ps2 psd sgi svg svgz tga tif tiff tk vml vmlz vrml wbmp x11 xdot xlib
    loadimage	:  (lib) bmp eps gd gd2 gif jpe jpeg jpg pdf png ps svg
fontname: "Times-Roman" resolved to: (ps:pango  Times) (PangoCairoFcFont) "Times 14"
network simplex:  1150 nodes 6464 edges maxiter=2147483647 balance=1
network simplex: 1150 nodes 6464 edges 53 iter 0.05 sec
network simplex:  1 nodes 0 edges maxiter=2147483647 balance=1
network simplex: 1 nodes 0 edges 0 iter 0.00 sec
network simplex:  1 nodes 0 edges maxiter=2147483647 balance=1
network simplex: 1 nodes 0 edges 0 iter 0.00 sec
network simplex:  1 nodes 0 edges maxiter=2147483647 balance=1
network simplex: 1 nodes 0 edges 0 iter 0.00 sec
network simplex:  1 nodes 0 edges maxiter=2147483647 balance=1
network simplex: 1 nodes 0 edges 0 iter 0.00 sec
network simplex:  1 nodes 0 edges maxiter=2147483647 balance=1
network simplex: 1 nodes 0 edges 0 iter 0.00 sec
network simplex:  1 nodes 0 edges maxiter=2147483647 balance=1
network simplex: 1 nodes 0 edges 0 iter 0.00 sec
network simplex:  1 nodes 0 edges maxiter=2147483647 balance=1
network simplex: 1 nodes 0 edges 0 iter 0.00 sec
network simplex:  1 nodes 0 edges maxiter=2147483647 balance=1
network simplex: 1 nodes 0 edges 0 iter 0.00 sec
network simplex:  1 nodes 0 edges maxiter=2147483647 balance=1
network simplex: 1 nodes 0 edges 0 iter 0.00 sec
network simplex:  1 nodes 0 edges maxiter=2147483647 balance=1
network simplex: 1 nodes 0 edges 0 iter 0.00 sec
network simplex:  1 nodes 0 edges maxiter=2147483647 balance=1
network simplex: 1 nodes 0 edges 0 iter 0.00 sec
network simplex:  1 nodes 0 edges maxiter=2147483647 balance=1
network simplex: 1 nodes 0 edges 0 iter 0.00 sec
network simplex:  1 nodes 0 edges maxiter=2147483647 balance=1
network simplex: 1 nodes 0 edges 0 iter 0.00 sec
network simplex:  1 nodes 0 edges maxiter=2147483647 balance=1
network simplex: 1 nodes 0 edges 0 iter 0.00 sec
network simplex:  1 nodes 0 edges maxiter=2147483647 balance=1
network simplex: 1 nodes 0 edges 0 iter 0.00 sec
network simplex:  1 nodes 0 edges maxiter=2147483647 balance=1
network simplex: 1 nodes 0 edges 0 iter 0.00 sec
network simplex:  1 nodes 0 edges maxiter=2147483647 balance=1
network simplex: 1 nodes 0 edges 0 iter 0.00 sec
network simplex:  1 nodes 0 edges maxiter=2147483647 balance=1
network simplex: 1 nodes 0 edges 0 iter 0.00 sec
network simplex:  1 nodes 0 edges maxiter=2147483647 balance=1
network simplex: 1 nodes 0 edges 0 iter 0.00 sec
network simplex:  1 nodes 0 edges maxiter=2147483647 balance=1
network simplex: 1 nodes 0 edges 0 iter 0.00 sec
network simplex:  1 nodes 0 edges maxiter=2147483647 balance=1
network simplex: 1 nodes 0 edges 0 iter 0.00 sec
network simplex:  1 nodes 0 edges maxiter=2147483647 balance=1
network simplex: 1 nodes 0 edges 0 iter 0.00 sec
network simplex:  1 nodes 0 edges maxiter=2147483647 balance=1
network simplex: 1 nodes 0 edges 0 iter 0.00 sec
network simplex:  1 nodes 0 edges maxiter=2147483647 balance=1
network simplex: 1 nodes 0 edges 0 iter 0.00 sec
network simplex:  1 nodes 0 edges maxiter=2147483647 balance=1
network simplex: 1 nodes 0 edges 0 iter 0.00 sec
network simplex:  1 nodes 0 edges maxiter=2147483647 balance=1
network simplex: 1 nodes 0 edges 0 iter 0.00 sec

Program received signal EXC_BAD_ACCESS, Could not access memory. Reason: KERN_PROTECTION_FAILURE at address: 0x00007fff5f3fffe8 0x00000001000c86c1 in dot_concentrate ()


Input file: b1890.dot
Comments:
[north] Probably better to turn off concentrators. Sorry!

[shalev] The documentation says that they're off by default, and even explicitly turning them off:

digraph G { graph [concentrate = 0];

Still yields the same error in dot_concentrate...

[erg] With the addition of dummy nodes, there are 1353931 nodes. He's blowing the stack in the recursive dfs in decompose().
Owner: *
Status: *