Misplaced arrowheads when using -Gconcentrate=true on digraph

When I use dot to draw a directed graph with -Gconcentrate=true, I end up with an arrowhead at the concentrator instead of at the end of the edge. Anyone know if there's a way to prevent this? It'd be a shame if not, because using concentrators is the only way I know to merge reciprocal directed edges.

Here's an example of a graph where the problem arises:

digraph {
graph [compound=true, concentrate=true];
node [shape=box];
subgraph cluster_0 {
CthulhuClient -> LegacyArkhamController;
CthulhuClient -> LocalMiskatonicServiceClient;
CthulhuClient -> MiskatonicService;
LegacyArkhamController -> CthulhuClient;
LegacyArkhamController -> MiskatonicService;
ArkhamServiceClient -> CthulhuClient;
ArkhamServiceClient -> LegacyArkhamController;
MiskatonicService -> CthulhuClient;
MiskatonicService -> LegacyArkhamController;
}
subgraph cluster_1 {
IntentUtils -> MiskatonicServiceIntentStarter;
MiskatonicServiceIntentStarter -> IntentUtils;
}
subgraph cluster_2 {
NewShoggoth -> MiskatonicServiceComponent;
MiskatonicServiceComponent -> MiskatonicServiceFactory;
WorkerFactory -> MiskatonicServiceComponent;
OldShoggoth -> MiskatonicServiceComponent;
OldShoggoth -> WorkerFactory;
MiskatonicServiceFactory -> NewShoggoth;
MiskatonicServiceFactory -> MiskatonicServiceComponent;
MiskatonicServiceFactory -> OldShoggoth;
}
MiskatonicServiceComponent -> IntentUtils [ltail=cluster_2, lhead=cluster_1];
MiskatonicServiceComponent -> MiskatonicService [ltail=cluster_2, lhead=cluster_0];
MiskatonicServiceIntentStarter -> MiskatonicService [ltail=cluster_1, lhead=cluster_0];
}

This appears to be a bug.

This appears to be a bug. Please file a bug report at http://www.graphviz.org/content/graphviz-issue-tracker. Meanwhile, as a workaround, you can replace

WorkerFactory -> MiskatonicServiceComponent;
OldShoggoth -> MiskatonicServiceComponent;

with

MiskatonicServiceComponent -> WorkerFactory [dir=back]
MiskatonicServiceComponent -> OldShoggoth [dir=back]

 

Recent comments