Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
    • Switch to GitLab Next
  • Sign in / Register
G
graphviz
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 696
    • Issues 696
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
    • Iterations
  • Merge Requests 19
    • Merge Requests 19
  • Requirements
    • Requirements
    • List
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Security & Compliance
    • Security & Compliance
    • Dependency List
    • License Compliance
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Container Registry
  • Analytics
    • Analytics
    • CI / CD
    • Code Review
    • Insights
    • Issue
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • graphviz
  • graphviz
  • Issues
  • #1888

Closed
Open
Opened Nov 26, 2020 by PlantUML@plantuml

Dot crash with labelled flat edge

Steps to reproduce

If you use the following definition with dot, dot is crashing:

digraph crash {
subgraph cluster1 {
cl1;
cl2;
cl3;
cl1 -> cl2 [minlen=0]
cl3 -> cl2 [minlen=0]
cl3 -> cl2 [minlen=0, label="X"]
}
}

If you remove the label or change minlen, it works

Expected Behaviour

Some diagram.

Actual Behaviour

Crash

OS Version

Tested under Windows and Linux.

Graphviz Version

Tested with version 2.38.0 and 2.44.1

Additional info

Not 100% sure, but it looks like it is crashing in flat.c / function flat_limits().

Since the ND_rank of the node is equals to 0, the variable r is set to -1. And then GD_rank(g)[r] is crashing.

The call stack looks like: flat_limits() called by flat_node() called by flat_edges() called by dot_position().

flat_node() is called from flat_edges() because there is a label on the edge. If you remove the label, it works.

Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
None
Due date
None
Reference: graphviz/graphviz#1888