Skip to content

Reject cyclic nested end-to-end flows - #2999

Open
lwrage wants to merge 3 commits into
masterfrom
2987_cyclic_nested_flow_detection
Open

Reject cyclic nested end-to-end flows#2999
lwrage wants to merge 3 commits into
masterfrom
2987_cyclic_nested_flow_detection

Conversation

@lwrage

@lwrage lwrage commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Summary

  • track active end-to-end flow declarations across recursive nested-flow instantiation
  • detect back-references, report a cycle, and propagate failure to dependent flows
  • remove partial instances so cyclic or incomplete instance graphs are not retained
  • guard the regression with a 30-second timeout against unbounded recursion

Testing

  • before the fix, Issue2987Test timed out after 30 seconds
  • after the fix, the timeout-guarded regression completed in about 3 seconds
  • focused end-to-end-flow regressions: 3 tests passed
  • complete org.osate.core.tests bundle: 541 tests passed

Fixes #2987

lwrage added 3 commits August 5, 2026 11:42
Add an external AADL model with mutually recursive nested end-to-end flows. Verify instantiation does not retain a cyclic nested flow instance graph.
Track active declarations across recursive end-to-end flow instantiation and propagate cycle failures to dependent flows. Remove partial instances so a cycle cannot leave recursive or incomplete instance graphs.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Cyclic nested end-to-end flows create cyclic instance graphs 🤖

1 participant