[Neato] neato Crashes Entire Server
Ported Issue from Mantis Original ID: 342 Reported By: Aaron Greenspan
SEVERITY: CRITICAL Submitted: 2004-02-27 04:25:14
OS: X86-LINUX-5.0
VERSION: 1.11
DESCRIPTION
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!
STEPS TO REPRODUCE
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";
ADDITIONAL INFORMATION
[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 (closed) 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 log is attached.