Skip to content

fix(federation): fixed the is_descendant_of function#5768

Merged
duckki merged 2 commits intodevfrom
router-546
Aug 5, 2024
Merged

fix(federation): fixed the is_descendant_of function#5768
duckki merged 2 commits intodevfrom
router-546

Conversation

@duckki
Copy link
Copy Markdown
Contributor

@duckki duckki commented Aug 4, 2024

This PR is a simple fix of the is_descendant_of function. This change reduces panics in many cases.

Additionally, this PR strengthens the cycle detection assertion in the add_parent function. That prevents some infinite loop cases. Those cases still panics, which need further investigation.

It was difficult to formulate a test for this. I need help for that.


Checklist

Complete the checklist (and note appropriate exceptions) before the PR is marked ready-for-review.

  • Changes are compatible[^1]
  • Documentation[^2] completed
  • Performance impact assessed and acceptable
  • Tests added and passing[^3]
    • Unit Tests
    • Integration Tests
    • Manual Tests

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Aug 4, 2024

@duckki, please consider creating a changeset entry in /.changesets/. These instructions describe the process and tooling.

@router-perf
Copy link
Copy Markdown

router-perf bot commented Aug 4, 2024

CI performance tests

  • const - Basic stress test that runs with a constant number of users
  • demand-control-instrumented - A copy of the step test, but with demand control monitoring and metrics enabled
  • demand-control-uninstrumented - A copy of the step test, but with demand control monitoring enabled
  • enhanced-signature - Enhanced signature enabled
  • events - Stress test for events with a lot of users and deduplication ENABLED
  • events_big_cap_high_rate - Stress test for events with a lot of users, deduplication enabled and high rate event with a big queue capacity
  • events_big_cap_high_rate_callback - Stress test for events with a lot of users, deduplication enabled and high rate event with a big queue capacity using callback mode
  • events_callback - Stress test for events with a lot of users and deduplication ENABLED in callback mode
  • events_without_dedup - Stress test for events with a lot of users and deduplication DISABLED
  • events_without_dedup_callback - Stress test for events with a lot of users and deduplication DISABLED using callback mode
  • extended-reference-mode - Extended reference mode enabled
  • large-request - Stress test with a 1 MB request payload
  • no-tracing - Basic stress test, no tracing
  • reload - Reload test over a long period of time at a constant rate of users
  • step-jemalloc-tuning - Clone of the basic stress test for jemalloc tuning
  • step-local-metrics - Field stats that are generated from the router rather than FTV1
  • step-with-prometheus - A copy of the step test with the Prometheus metrics exporter enabled
  • step - Basic stress test that steps up the number of users over time
  • xlarge-request - Stress test with 10 MB request payload
  • xxlarge-request - Stress test with 100 MB request payload

Copy link
Copy Markdown
Member

@goto-bus-stop goto-bus-stop left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice!

@goto-bus-stop goto-bus-stop changed the title (federation) fixed the is_descendant_of function fix(federation): fixed the is_descendant_of function Aug 5, 2024
@duckki duckki enabled auto-merge (squash) August 5, 2024 15:42
@duckki duckki merged commit 1c469cc into dev Aug 5, 2024
@duckki duckki deleted the router-546 branch August 5, 2024 15:51
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.

3 participants