Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

routing: fix first route load signaling #3447

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

AlexanderYastrebov
Copy link
Member

@AlexanderYastrebov AlexanderYastrebov commented Mar 21, 2025

Dataclients may load routes with arbitrary delays so it may happen
that of two dataclients the first loads routes twice and the second zero
times which would signal first route loaded condition although
routing table would only contain routes from the first dataclient.

This change fixes route update logic to signal first load only after
routes from all configured dataclients are received at least once.

Updates #1709
Updates #1710

@AlexanderYastrebov AlexanderYastrebov added the bugfix Bug fixes and patches label Mar 21, 2025
@AlexanderYastrebov AlexanderYastrebov force-pushed the routing/fix-signal-first-route-load branch 2 times, most recently from 65ccf53 to 6ced6b1 Compare March 21, 2025 12:23
AlexanderYastrebov added a commit to zalando-incubator/kubernetes-on-aws that referenced this pull request Mar 21, 2025
AlexanderYastrebov added a commit to zalando-incubator/kubernetes-on-aws that referenced this pull request Mar 24, 2025
@AlexanderYastrebov AlexanderYastrebov force-pushed the routing/fix-signal-first-route-load branch from 6ced6b1 to 9b50459 Compare March 31, 2025 07:50
ponimas added a commit to ponimas/skipper that referenced this pull request Apr 8, 2025
Dataclients may load routes with arbitrary delays. When multiple
dataclients are used, it's possible that one dataclient loads routes
multiple times while another doesn't load any routes at all. This
could incorrectly signal that the first route has been loaded, even
though the routing table only contains routes from a single
dataclient.

This change fixes route update logic to signal first load only after
routes from all configured dataclients are received at least once.

An alternative to zalando#3447

Signed-off-by: Aleksandr Ponimaskin <[email protected]>
Update test such that first dataclient serves initial load and an
update while second dataclient delays initial load by multiple poll
intervals.

The test failure demonstrates incorrect signaling implementation
added by #1710

Updates #1709

Signed-off-by: Alexander Yastrebov <[email protected]>
Dataclients may load routes with arbitrary delays so it may happen
that of two dataclients the first loads routes twice and the second zero
times which would signal first route loaded condition although
routing table would only contain routes from the first dataclient.

This change fixes route update logic to signal first load only after
routes from all configured dataclients are received at least once.

Updates #1709
Updates #1710

Signed-off-by: Alexander Yastrebov <[email protected]>
@AlexanderYastrebov AlexanderYastrebov force-pushed the routing/fix-signal-first-route-load branch from 9b50459 to 0b152e4 Compare April 10, 2025 10:13
@MustafaSaber
Copy link
Member

👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bugfix Bug fixes and patches
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants