Number: 408
Title: neato Crashes Entire Server
Submitter: Aaron Greenspan
Date: Thu Feb 26 23:25:14 2004
Subsys: Neato
Version: 1.11
System: x86-Linux-5.0
Severity: critical
Problem:
I've tried running neato to make some extremely basic graphs, with maybe fifteen nodes at the very most. Seemingly any minor problem in the .dot file or the command line would cause the entire server to freeze and require rebooting. Kernel logs showed nothing particularly abnormal going on with the system, and the problem is reproducible. For example, the following line causes the machine to freeze, I believe because 10.5 may be an invalid value for the size parameter:

/usr/local/graphviz/bin/neato -Goverlap=scale -Gcenter -Gsize=8,10.5 -Tps2

Still, it shouldn't freeze the whole server--just an error would be nice.

Using the -Goverlap=false parameter would also cause the server to lock up.

This is a Cobalt RaQ 3i running on a 300MHz AMD K6-2 processor, so it's not the most powerful system in the world. Nevertheless, the times that it froze did not involve particularly complex graphs. Another time, forgetting a } at the end of a .dot file caused it to lock up completely. Is there any sort of error checking for proper syntax before the files are parsed?

Thanks for your help!
Input:

graph G {
        node [shape=box, style=filled, color=red, fontname=Helvetica];
        "Aaron Greenspan" -- "Elliott Neal";
        "Sabeel Rahman" -- "Aaron Greenspan";
        "Aaron Greenspan" -- "Arianna Kelly";
        "Arianna Kelly" -- "Elliott Neal";
        "Susan Mathai" -- "Sabeel Rahman";
        "Random MHASP People" -- "Susan Mathai";
        "Susan Mathai" -- "Aaron Greenspan";
        "Arianna Kelly" -- "Aaron Greenspan";
Comments:
[greensp] I was able to get some debug information, finally. Here's what I have. It froze after "Adjusting nodes using scaling," but it still seems sporadic, since it clearly worked a few times first.

[root@kermit /etc]# /home/think/tools/graphviz/bin/neato -Goverlap=scale -Gcenter -Gsize=8,10.5 -Tps2 -v /tmp/1.facenet.dot > /tmp/1.facenet.ps
Scanning graph G
Calculating shortest paths
Setting initial positions
Setting up spring model
Solving model
0.544 0.118 0.146 0.018 0.009 0.006 0.006 0.006 0.005 0.006
0.005 0.005 0.007 0.003 0.004 0.003 iterations = 1694 final e = 8.835749
Adjusting nodes using scaling
Number of iterations = 23
Number of increases = 0
Creating edges using line segments
[root@kermit /etc]# /home/think/tools/graphviz/bin/neato -Goverlap=scale -Gcenter -Gsize=8,10.5 -Tps2 -v /tmp/1.facenet.dot > /tmp/1.facenet.ps
Scanning graph G
Calculating shortest paths
Setting initial positions
Setting up spring model
Solving model
0.544 0.118 0.146 0.018 0.009 0.006 0.006 0.006 0.005 0.006
0.005 0.005 0.007 0.003 0.004 0.003 iterations = 1694 final e = 8.835749
Adjusting nodes using scaling
Number of iterations = 23
Number of increases = 0
Creating edges using line segments
[root@kermit /etc]# /home/think/tools/graphviz/bin/neato -Goverlap=scale -Gcenter -Gsize=8,10 -Tps2 -v /tmp/1.facenet.dot > /tmp/1.facenet.ps
Scanning graph G
Calculating shortest paths
Setting initial positions
Setting up spring model
Solving model
0.544 0.118 0.146 0.018 0.009 0.006 0.006 0.006 0.005 0.006
0.005 0.005 0.007 0.003 0.004 0.003 iterations = 1694 final e = 8.835749
Adjusting nodes using scaling
Number of iterations = 23
Number of increases = 0
Creating edges using line segments
[root@kermit /etc]# /home/think/tools/graphviz/bin/neato -Goverlap=scale -Gcenter -Gsize=8,10 -Tps2 -v /tmp/1.facenet.dot > /tmp/1.facenet.ps
Scanning graph G
Calculating shortest paths
Setting initial positions
Setting up spring model
Solving model
0.544 0.118 0.146 0.018 0.009 0.006 0.006 0.006 0.005 0.006
0.005 0.005 0.007 0.003 0.004 0.003 iterations = 1694 final e = 8.835749
Adjusting nodes using scaling
I tried using the --without-Xawincludedir --without-Xawlibdir --without-Xpmincludedir --without-Xpmlibdir flags when configuring release 1.11, but since I couldn't get it to install, anyway, I left them out this time (release 1.12) without thinking. Do you think that could be the problem? My configure command was:

./configure --prefix=/home/think/tools/graphviz --without-x

I'm running the slightly modified Red Hat 5.0 for Cobalt machines, I believe. Here's what appears version-wise in /var/log/messages upon startup:

Mar 3 17:34:50 kermit kernel: Linux version 2.2.16C33_III (root@alpine) (gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)) #1 Mon Aug 12 15:55:23 PDT 2002

Here's what shows up for login via serial port:

Cobalt Linux release 5.0 (Pacifica) Kernel 2.2.16C33_III on an i586

kermit.thinkcomputer.com login:

I've tried a variety of different graphs, including the one with the report. It doesn't really matter which graph I use, I don't think.

Below, I've pasted in the output of the configure command exactly as I ran it. Feel free to e-mail whatever you need to. configure log

[aaron] I was up late last night trying to repair my system after trying (and failing) to upgrade glibc and gcc. Then, I noticed something interesting: even the "broken" version of graphviz (the one compiled after I applied all of those patches) never seemed to fail when I used the most basic command structure with very few parameters. So, today, I tried adding the parameters one by one, and it seems that the problem is isolated in -Goverlap=scale. I ran all of the others twenty times each with no problem, adding a new parameter for each cycle. Once I added -Goverlap=scale, it failed on the second time and rebooted. The <A HREF=b408a.txt>log</A> is attached.
Owner: *
Status: *