-
Notifications
You must be signed in to change notification settings - Fork 253
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Dot] segfault in cluster.c #919
Comments
Unclear if related but I have a file which It's a big dot file but I'll see if I can get a minimal failing file. |
Hmm it might have something to do with having |
Please provide a minimal example causing the problem. Thanks. |
@emden yeah I was trying in the afternoon. I have a largeish file which segfaults about 50% of the time I try to run it which I can share privately. |
Whatever works. You also might be able to anonymize the data. |
OK apologies for the size of the dot file. I may try to find a smaller failing example later if I have the time, but in the meantime... As can be seen, the segfault is non-deterministic so retrying a few times evokes the behaviour:
This just in a My anonymiser isn't perfect so there are a few artefacts of the original node names but it still triggers the segfault and is obscured enough for my own needs. Fortunately, in my case, re-running it a few times eventually gives me a useful file so this isn't getting in my way too much at the moment. I'm on OS X El Capitan, running 2.38.0 installed with Homebrew. Let me know if I can provide any more information. |
Whoops, missed the link to the |
Possibly worth noting that this file was generated automatically by rails-erd and then I added |
Hi,
When I call dot -Tsvg <TEST>, I have a segfault |
Graphviz 2.38 is dated April 2014. We may still have a bug, but this example works with graphviz 2.41 on MacOSX.
It would be nice to someday rewrite the troublesome aspects of graphviz/lib/dotgen, as soon as the funding arrives :-)
… On Jan 5, 2017, at 5:36 AM, jdascenzio ***@***.***> wrote:
Hi,
I have a similar problem on my debian 8 (dot - graphviz version 2.38.0)
I have a file 'TEST' with:
digraph G { node [style=filled shape=record fillcolor=red] rankdir=LR block_01FF0005:out0 -> block_06FF0100:in0 block_F00001FF:out0 -> block_06FF0100:in1 block_06FF000C:out0 -> block_06FF0100:in2 block_06FF0100 [label="{{<in0>value|<in1>period|<in2>trigger}|TEST}" fillcolor="bisque"] block_01FF0005:out0 -> block_06FF0012:in0 block_06FF0011:out0 -> block_06FF0012:in1 block_06FF0012:out2 -> block_06FF000C:in0 block_01FF0005:out0 -> block_06FF0100:in0 }
When I call dot -Tsvg , I have a segfault
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub <#919 (comment)>, or mute the thread <https://github.com/notifications/unsubscribe-auth/ACtWz5vs7Qn9V4s9ZhoFXBfiXn-Qwlrgks5rPMetgaJpZM4JErHC>.
|
The input jdascenzio does crash in 2.38, but the problem was fixed before graphviz-2.39.20150710.2019. As for the input provided by bjeanes, I cannot replicate the problem even with 2.38:
What version of Graphviz are you using? Also can you run fdp with -v and post the trace for a failing run? Thanks. |
I use the graphviz version of debian 8 (dot - graphviz version 2.38.0 (20140413.2041))
|
I'm a little confused now. First, you indicated you were getting the crashes with fdp, but the trace above is from the dot layout. Second, the trace you generated must be using your original graph, since the graph you posted has no node block_01FF0005 or port out0. Please use the anonymized graph to get a seg fault and post that grace. Thanks. Actually, there has been a lot of cleanup since 2.38, and if we have to fix the problem, the fix will only appear in a new working release. It may be quicker for you to install 2.40 and see if the problem is still there. |
I have post a graph different from bjeanes! |
Sorry. I should have noticed who was posting. My final comment is definitely valid in your case. The bug you reported was in 2.38 and has been fixed, so you need to move to a new version. |
I can't reproduce this segfault problem with the latest stable release, graphviz-2.40.1
BTW, I get the following warnings from your graph:
Warning: node block_01FF0005, port out0 unrecognized
Warning: node block_01FF0005, port out0 unrecognized
Warning: node block_01FF0005, port out0 unrecognized
Warning: node block_06FF0012, port in0 unrecognized
Warning: node block_F00001FF, port out0 unrecognized
Warning: node block_06FF000C, port out0 unrecognized
Warning: node block_06FF0012, port out2 unrecognized
Warning: node block_06FF000C, port in0 unrecognized
Warning: node block_06FF0011, port out0 unrecognized
Warning: node block_06FF0012, port in1 unrecognized
Generated SVG attached
John
… On January 5, 2017 at 5:36 AM jdascenzio ***@***.***> wrote:
Hi,
I have a similar problem on my debian 8 (dot - graphviz version 2.38.0)
I have a file 'TEST' with:
digraph G { node [style=filled shape=record fillcolor=red] rankdir=LR block_01FF0005:out0 -> block_06FF0100:in0 block_F00001FF:out0 -> block_06FF0100:in1 block_06FF000C:out0 -> block_06FF0100:in2 block_06FF0100 [label="{{<in0>value|<in1>period|<in2>trigger}|TEST}" fillcolor="bisque"] block_01FF0005:out0 -> block_06FF0012:in0 block_06FF0011:out0 -> block_06FF0012:in1 block_06FF0012:out2 -> block_06FF000C:in0 block_01FF0005:out0 -> block_06FF0100:in0 }
When I call dot -Tsvg , I have a segfault
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub #919 (comment) , or mute the thread https://github.com/notifications/unsubscribe-auth/ABcTPY7urEd5wDOiwwYLl0mQhw-kO9viks5rPMetgaJpZM4JErHC .
|
@emden as mentioned in my comment it looks like I was using 2.38.0. I still have that same version installed so tried again (I haven't used Graphviz much since this issue) and I can still evoke the error. Here are two traces with Clean:
Segfault:
|
I compile the version 2.40.1 (20161225.0304) on my debian and now it's work! |
2.40.1 (latest installable with homebrew today) still causes the same memory address boundary error with that same file above. Here is the output with
As can be seen, the segfault seems to happen at different places at different times, which could also explain why it succeeds sometimes. Let me know if you'd like any other info. Here is some linking version info in case it's some combination of versions of dependent software:
|
I need to try this on the mac. It seems to work okay on linux. Stephen says it is crashing in late_int, so that sounds like it might be an uninitialized variable or bad pointer(?). |
Should I try tonight? I miss valgrind on latest macOS but it's supposedly coming.
…Sent from my iPad
On Jan 9, 2017, at 5:12 PM, emden ***@***.***> wrote:
I need to try this on the mac. It seems to work okay on linux. Stephen says it is crashing in late_int, so that sounds like it might be an uninitialized variable or bad pointer(?).
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.
|
Actually, I ran valgrind on linux yesterday and have a pretty good idea what the problem is. |
The problem reported by bjeanes should now be fixed by revision 339add1. The only relevant line is 139 of fdp/layout.c. |
Confirmed. I built master locally and was not able to trigger a crash with the above file. Thanks! |
Ported Issue from Mantis
Original ID: 1149
Reported By: Jose Carlos Bins Filho
SEVERITY: MINOR
Submitted: 2006-07-10 12:28:05
OS: --
VERSION: 2.9.20060710.0440-1
DESCRIPTION
[This problem was reported on graphviz-interest as: Graphviz is aborting using dot] [Transcribed into bug report by John Ellson](gdb) run aborts.dot Starting program: /home/ellson/FIX/Linux.x86_64/bin/dot aborts.dot Warning: l0 was already in a rankset, ignored in cluster TripGraph Warning: n0 was already in a rankset, ignored in cluster TripGraph Warning: n1 was already in a rankset, ignored in cluster TripGraph Warning: l1 was already in a rankset, ignored in cluster TripGraph
Program received signal SIGSEGV, Segmentation fault.
build_skeleton (g=0x6109f0, subg=0x625950) at cluster.c:364
364 ND_UF_size(rl)++;
(gdb) where
#0 build_skeleton (g=0x6109f0, subg=0x625950) at cluster.c:364
#1 0x00002aaaadbfe53b in class2 (g=0x6109f0) at class2.c:188
#2 0x00002aaaadc05cb8 in dot_mincross (g=0x6109f0) at mincross.c:697
#3 0x00002aaaadc032d9 in dot_layout (g=0x6109f0) at dotinit.c:227
#4 0x00002aaaaace9013 in gvLayoutJobs (gvc=Variable "gvc" is not available.
) at gvlayout.c:68
#5 0x0000000000400cdf in main (argc=Variable "argc" is not available.
) at dot.c:176
(gdb)
The text was updated successfully, but these errors were encountered: