SEGV in dot resolvePort
Dotty segfaults on many UMLgraph generated maps for me.
Here is a trimmed down example:
digraph "G" {
c1 [ label = <<table port="p"> <tr><td>Test</td></tr> </table>> ]
c2 [ label = <<table port="p"> <tr><td>Test</td></tr> </table>> ]
c3 [ label = <<table port="p"> <tr><td>Test</td></tr> </table>> ]
c1:p -> c2:p [ ]
c1:p -> c3:p [ ]
c1:p -> c3:p [ ]
c2:p -> c3:p [ ]
}
Remove any of the edges and the graph works.
Replace all :p with :p:c, and it also works!
Using Ubuntu artful, and I already tried updating to bionic. It did not help.
Backtrace of "dot":
(gdb) bt
#0 0x00007ffff7b90c4b in resolvePort () from /usr/lib/libgvc.so.6
#1 0x00007ffff7b81b56 in endpath () from /usr/lib/libgvc.so.6
#2 0x00007ffff239838a in ?? () from /usr/lib/graphviz/libgvplugin_dot_layout.so.6
#3 0x00007ffff238a4ed in ?? () from /usr/lib/graphviz/libgvplugin_dot_layout.so.6
#4 0x00007ffff238ab58 in dot_layout () from /usr/lib/graphviz/libgvplugin_dot_layout.so.6
#5 0x00007ffff7b5ae92 in gvLayoutJobs () from /usr/lib/libgvc.so.6
#6 0x00005555555550b0 in ?? ()
#7 0x00007ffff75671c1 in __libc_start_main (main=0x555555554e10, argc=2, argv=0x7fffffffe6c8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffe6b8) at ../csu/libc-start.c:308
#8 0x000055555555514a in ?? ()
I hope the small test case above is helpful.
Edited by Erich Schubert