rails-erd: Error: in routesplines, cannot find NORMAL edge
Howdy!
I’m trying to generate a graph in Rails 4. I can generate erd.dot, but I cannot generate a PDF. This is the output I get from rake erd
Loading application environment...
Loading code in search of Active Record models...
Generating Entity-Relationship Diagram for 24 models...
Warning: Ignoring invalid association :resource on Role (polymorphic interface Resource does not exist)
Warning: Ignoring invalid association :service on InvoiceItem (polymorphic interface Service does not exist)
rake aborted!
Saving diagram failed!
Graphviz produced errors. Verify it has support for filetype=pdf, or use filetype=dot.
Original error: Error: in routesplines, cannot find NORMAL edge
/Users/apfritts/.rvm/gems/ruby-2.0.0-p353@registrar/gems/rails-erd-1.1.0/lib/rails_erd/diagram/graphviz.rb:195:in `rescue in block in <class:Graphviz>'
/Users/apfritts/.rvm/gems/ruby-2.0.0-p353@registrar/gems/rails-erd-1.1.0/lib/rails_erd/diagram/graphviz.rb:190:in `block in <class:Graphviz>'
/Users/apfritts/.rvm/gems/ruby-2.0.0-p353@registrar/gems/rails-erd-1.1.0/lib/rails_erd/diagram.rb:142:in `instance_eval'
/Users/apfritts/.rvm/gems/ruby-2.0.0-p353@registrar/gems/rails-erd-1.1.0/lib/rails_erd/diagram.rb:142:in `save'
/Users/apfritts/.rvm/gems/ruby-2.0.0-p353@registrar/gems/rails-erd-1.1.0/lib/rails_erd/diagram.rb:120:in `create'
/Users/apfritts/.rvm/gems/ruby-2.0.0-p353@registrar/gems/rails-erd-1.1.0/lib/rails_erd/diagram.rb:74:in `create'
/Users/apfritts/.rvm/gems/ruby-2.0.0-p353@registrar/gems/rails-erd-1.1.0/lib/rails_erd/tasks.rake:41:in `block (2 levels) in <top (required)>'
/Users/apfritts/.rvm/gems/ruby-2.0.0-p353@registrar/bin/ruby_executable_hooks:15:in `eval'
/Users/apfritts/.rvm/gems/ruby-2.0.0-p353@registrar/bin/ruby_executable_hooks:15:in `<main>'
Tasks: TOP => erd => erd:generate
(See full trace by running task with --trace)
The CoreText performance warning is repeated many times, but I’m not concerned about it (or maybe I should be?).
This is what I get when I run it verbosely dot -Tpdf -oERD.pdf -v erd.dot
:
dot - graphviz version 2.36.0 (20140111.2315)
Using render: quartz:quartz
Using device: pdf:quartz:quartz
libdir = "/usr/local/Cellar/graphviz/2.36.0/lib/graphviz"
Activated plugin library: libgvplugin_dot_layout.6.dylib
Using layout: dot:dot_layout
The plugin configuration file:
/usr/local/Cellar/graphviz/2.36.0/lib/graphviz/config6
was successfully loaded.
render : dot fig map pic pov ps quartz svg tk vml xdot
layout : circo dot fdp neato nop nop1 nop2 osage patchwork sfdp twopi
textlayout : textlayout
device : bmp canon cgimage cmap cmapx cmapx_np dot eps exr fig gif gv icns ico imap imap_np ismap jp2 jpe jpeg jpg pct pdf pic pict plain plain-ext png pov ps ps2 psd sgi svg svgz tga tif tiff tk vml vmlz xdot xdot1.2 xdot1.4
loadimage : (lib) bmp eps gif jpe jpeg jpg pdf png ps svg
[ LOTS OF PERFORMANCE WARNINGS ]
network simplex: 1 nodes 0 edges maxiter=2147483647 balance=1
network simplex: 1 nodes 0 edges 0 iter 0.00 sec
network simplex: 16 nodes 24 edges maxiter=2147483647 balance=1
network simplex: 16 nodes 24 edges 0 iter 0.00 sec
network simplex: 1 nodes 0 edges maxiter=2147483647 balance=1
network simplex: 1 nodes 0 edges 0 iter 0.00 sec
network simplex: 1 nodes 0 edges maxiter=2147483647 balance=1
network simplex: 1 nodes 0 edges 0 iter 0.00 sec
network simplex: 1 nodes 0 edges maxiter=2147483647 balance=1
network simplex: 1 nodes 0 edges 0 iter 0.00 sec
network simplex: 1 nodes 0 edges maxiter=2147483647 balance=1
network simplex: 1 nodes 0 edges 0 iter 0.00 sec
Maxrank = 4, minrank = 0
mincross: pass 0 iter 0 trying 0 cur_cross 0 best_cross 0
mincross: pass 0 iter 0 trying 0 cur_cross 7 best_cross 7
mincross: pass 0 iter 1 trying 1 cur_cross 9 best_cross 7
mincross: pass 0 iter 2 trying 0 cur_cross 4 best_cross 4
mincross: pass 0 iter 3 trying 0 cur_cross 3 best_cross 3
mincross: pass 1 iter 0 trying 0 cur_cross 6 best_cross 3
mincross: pass 1 iter 1 trying 1 cur_cross 8 best_cross 3
mincross: pass 1 iter 2 trying 2 cur_cross 11 best_cross 3
mincross: pass 1 iter 3 trying 3 cur_cross 8 best_cross 3
mincross: pass 2 iter 0 trying 0 cur_cross 3 best_cross 3
mincross: pass 2 iter 1 trying 1 cur_cross 6 best_cross 3
mincross: pass 2 iter 2 trying 2 cur_cross 3 best_cross 3
mincross: pass 2 iter 3 trying 3 cur_cross 3 best_cross 3
mincross: pass 2 iter 4 trying 4 cur_cross 3 best_cross 3
mincross: pass 2 iter 5 trying 5 cur_cross 10 best_cross 3
mincross: pass 2 iter 6 trying 6 cur_cross 4 best_cross 3
mincross: pass 2 iter 7 trying 7 cur_cross 4 best_cross 3
mincross: pass 2 iter 8 trying 8 cur_cross 3 best_cross 3
mincross: pass 0 iter 0 trying 0 cur_cross 0 best_cross 0
mincross: pass 0 iter 0 trying 0 cur_cross 0 best_cross 0
mincross: pass 0 iter 0 trying 0 cur_cross 0 best_cross 0
mincross: pass 0 iter 0 trying 0 cur_cross 0 best_cross 0
merge2: graph BaseApp, rank 1 has only 3 < 11 nodes
merge2: graph BaseApp, rank 2 has only 10 < 14 nodes
mincross BaseApp: 3 crossings, 0.00 secs.
network simplex: 64 nodes 93 edges maxiter=2147483647 balance=2
network simplex: 64 nodes 93 edges 11 iter 0.00 sec
Error: in routesplines, cannot find NORMAL edge
Segmentation fault: 11
Any help is appreciated!
About this issue
- Original URL
- State: closed
- Created 10 years ago
- Reactions: 1
- Comments: 23
Commits related to this issue
- Remove identifier from association_identity See https://github.com/voormedia/rails-erd/issues/70#issuecomment-63645855 Fixes #278 — committed to afn/rails-erd by afn 6 years ago
- Remove identifier from association_identity See https://github.com/voormedia/rails-erd/issues/70#issuecomment-63645855 Fixes #278 — committed to afn/rails-erd by afn 6 years ago
- Remove identifier from association_identity See https://github.com/voormedia/rails-erd/issues/70#issuecomment-63645855 Fixes #278 — committed to voormedia/rails-erd by afn 6 years ago
I had a look at the generated DOT. My graphviz version (2.36.0 (20140111.2315)) seg faults when there are multiple edges (=associations) between the same two nodes (=models). This may occur for example when a model tracks the modifying user with creator, updater and deleter associations.
Because rails-erd does not include any labels on the edges, I did not see the point in having multiple edges and removed them with the following patch:
This made the seg faults disappear, diagrams are generated fine again.
The patch fixed it for me too but now I get this error whenever I run my specs:
I’ve fixed it by scoping it to the development environment but it’s pretty clunky:
If anyone has a better solution I’d love to hear it 😃
Should be fixed by #296 and in the v.1.6.0 release
@sstarr’s fix worked for me - ruby 2.4.2 rails 5.1.4 ubuntu 18.04
rails-erd 1.5.2 dot 2.38.0
Still needed to apply this patch to make it work for
User
withinvoice_address
andcorrespondence_address
as two links to the same modelAddress