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

Handle NACK #165

Merged
merged 2 commits into from
Oct 15, 2020
Merged

Handle NACK #165

merged 2 commits into from
Oct 15, 2020

Conversation

jyotimahapatra
Copy link
Contributor

The PR handles 2 scenarios:

  1. A nack request can cause endless to-fro between a sidecar and xdsrelay. In case of NACK the version never updates. so the sidecar's version will never match the cache's version, causing immediate response from cache. The immediate response should only be sent when the request is not a nack. When the request is a nack, the watch should hold until a further update is received from upstream.
  2. xdsrelay upstream client always caches the first request and uses it for the further upstream requests until cache is evicted. In case the first request was a nack(can happen when xdsrelay server instance just started up), we still need to update the cache, but should not send the ErrorDetails. Most upstream control planes hold the watch on nack request(verified with istio and contour). In that case a misbehaving sidecar sending nack request can starve other other sidecars from receiving an update.

Jyoti Mahapatra added 2 commits October 14, 2020 23:52
Signed-off-by: Jyoti Mahapatra <jmahapatra@lyft.com>
Signed-off-by: Jyoti Mahapatra <jmahapatra@lyft.com>
@jyotimahapatra jyotimahapatra merged commit 1a508e5 into master Oct 15, 2020
@jyotimahapatra jyotimahapatra deleted the jyotima/nack branch October 15, 2020 17:17
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.

None yet

2 participants