Graphviz Issue Tracker - graphviz
View Issue Details
0002437graphvizNeatopublic2014-03-25 05:322014-03-29 13:58
0002437: neato 2.37.20140325 assertion failure
neato from graphviz-2.37.20140325.msi displays an assert in a window:

** ERROR **: file .\cdt.c: line 974: should not be reached
Windows's cmd.exe shell:

--- snip ---
type _data.gv.txt | neato -Tjpg -n > 1.jpg
--- snip ---

(file "_data.gv.txt" is attached)
No tags attached.
txt _data.gv.txt (668) 2014-03-25 05:32
Issue History
2014-03-25 05:32vdm113New Issue
2014-03-25 05:32vdm113File Added: _data.gv.txt
2014-03-25 13:43ergNote Added: 0000717
2014-03-25 13:43ergStatusnew => confirmed
2014-03-25 16:16vdm113Note Added: 0000718
2014-03-25 16:39vdm113Note Added: 0000719
2014-03-25 17:20ergNote Added: 0000720
2014-03-25 17:39vdm113Note Added: 0000721
2014-03-25 17:49vdm113Note Added: 0000722
2014-03-25 17:52vdm113Note Edited: 0000722bug_revision_view_page.php?bugnote_id=722#r214
2014-03-27 13:21vdm113Note Added: 0000723
2014-03-27 13:21vdm113Note Edited: 0000723bug_revision_view_page.php?bugnote_id=723#r216
2014-03-29 13:58ergNote Added: 0000724

2014-03-25 13:43   
The two small nodes can be commented out. Just the single port n0:out1 is sufficient to cause the crash. It apparently happens when the edge map from splineEdges is closed, specifically when free is called in freeitem().
2014-03-25 16:16   
regarding "The two small nodes can be commented out." you mean "n_a" and "n_b"? My SW is generating these two (invisible) nodes to maintain proper image size, i.e. "n_a" is top-left dummy node and "n_b" is rightmost-bottom dummy for right-bottom node.

Though IMO these are redundant, it is there for historical reasons and IMO I can freely get them out of/remove from my SW generation of script. I will try to avoid then and post the results here.
2014-03-25 16:39   
Yes, I can confirm w/o nodes "n_a" and "n_b" it will not crash. But this is only a workaround to neato tool. Though I don't need such nodes any more, they were there ONLY for historical purposes when my graph X/Y coordinates of nodes had negative values.

Though, this should be fixed, IMNSHO.
2014-03-25 17:20   
I thought I could do away with both n_a and n_b, for purposes of simplifying the bug search, but I see that one can remove one but not both.

I heartily agree that this should work. Unfortunately, everything is fine on linux and macs, and the visual studio debugger makes it difficult for me to ask the questions I want to ask.
2014-03-25 17:39   
offtopic question: I live in EU, namely Slovak Republic, is there any chance to display for me my local time, i.e. GMT+0100 ?

IMO that crash SHOULD be fixed, no matter whether user generates *VALID* neato script (as in my case) and it will crash or insane values in the script.

PS: my visual sound programming SW crash of neato sub-process spawned caused crash of my VST plugin to Cubase. Thank you very much for this bug in neato, so I can adjust my code to not crash in case sub-process spawned crashes! I am NOT ironic, I'm just grateful, so I can debug my SW in case something will gone wrong with neato sub-process.
2014-03-25 17:49   
(edited on: 2014-03-25 17:52)
Regarding my last post: In Slovakia we have saying which could be translated to English like: "Everything bad makes promising something good" or moree precisely "Everything bad is good for something else".

If neato sub-process crashed, my SW crashed too.

So thank you very much for crashing neato, since it discovered sub-sequential crash of my SW.

But as I said, this bug in neato *SHOULD* be fixed. Good luck!

TIA in advance and good luck!

PS: thank you very much for this valuable SW! (whole Grraphviz package, since I am not using only neato from Graphviz package...)

2014-03-27 13:21   
When can I expect new development snapshot *.msi which will fix this assert?

I.e. version > graphviz-2.37.20140325.msi


2014-03-29 13:58   
The problem occurs within the GTS library when it fails to to find a way to triangulate a polygon. I am still not sure what the root cause is. We use the same version of the GTS library on macs and linux, and it works fine there. The numbers involved are reasonable enough that it shouldn't be a floating point problem.