#700813 dot abort()s on valid input where neato, fdp, circo, twopi don't

Package:
graphviz
Source:
graphviz
Description:
rich set of graph drawing tools
Submitter:
Jonas Kölker
Date:
2026-07-13 22:05:02 UTC
Severity:
important
#700813#5
Date:
2013-02-17 19:18:29 UTC
From:
To:
Hi.  Here's a graph which makes dot fail with

[1]    32214 abort      dot /tmp/crash.dot

Here it is:

// dot crash.dot # crashes
digraph g {
	rankdir="LR" // RL is bad too, but TB/BT are fine
	// A      // insert this line...

	B -> C // ... and swap this
	C -> B // with this: then the crash goes away
	B -> E
	E -> F // but only if A -> E below, not if A -> C
	A -> D

	subgraph {rank="same"; B; C}
	subgraph {rank="same"; A -> C} // or A -> E
	subgraph {rank="same"; F -> D}
}

It doesn't make neato, fdp, circo or twopi fail.

If you run `dot -v9001', the last line of output is

'network simplex: 11 nodes 12 edges 2 iter 0.00 sec'

As I understand it, `network simplex' is part of the dot-specific graph layout
algorithm, so it makes sense that it crashes *there*, and not e.g. after
'loadimage' (see http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=698066)

Possibly related bugs, beyond that one, might be

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=292385
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=383261
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=505436

In revision 9118:7dac23a1c3a9 from http://hg.research.att.com/graphviz the
problem doesn't exist.

Cheerio,

JK

PS.  Let me know if I have more information I can usefully add to this.

#700813#10
Date:
2026-07-13 22:02:45 UTC
From:
To:
A bisect with Address Sanitizer enabled indicates this was (silently?)
fixed upstream in commit 908a139753380160563a9d3dbf17fe3d3e4d6fdc,
https://gitlab.com/graphviz/graphviz/-/commit/908a139753380160563a9d3dbf17fe3d3e4d6fdc.
This landed in Graphviz 2.40.0.