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

cluster manager: avoid immediate activation for dynamic inserted cluster when initialize #12783

Merged
merged 14 commits into from
Oct 16, 2020

Conversation

Shikugawa
Copy link
Member

Commit Message: To resolve #12670. This commit changes the cluster state change. In previous implementation, dynamically inserted cluster when initialization should be active immediately. This patch changes, from active immediately to warming -> active when initialization.
Additional Description:
Risk Level: Mid (core behavior change)
Testing: Unit
Docs Changes: Needed
Release Notes: Needed
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Deprecated:]

…ter when initialize

Signed-off-by: Shikugawa <rei@tetrate.io>
@mattklein123
Copy link
Member

@lizan for first pass

Copy link
Member

@lizan lizan left a comment

Choose a reason for hiding this comment

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

Can you add a integration test to verify this fixes the issue described in #11120 ?

@stale
Copy link

stale bot commented Sep 2, 2020

This pull request has been automatically marked as stale because it has not had activity in the last 7 days. It will be closed in 7 days if no further activity occurs. Please feel free to give a status update now, ping for review, or re-open when it's ready. Thank you for your contributions!

@stale stale bot added the stale stalebot believes this issue/PR has not been touched recently label Sep 2, 2020
@Shikugawa
Copy link
Member Author

/nostale

@stale stale bot removed the stale stalebot believes this issue/PR has not been touched recently label Sep 2, 2020
@lizan lizan marked this pull request as draft September 7, 2020 02:38
Signed-off-by: Shikugawa <rei@tetrate.io>
Signed-off-by: Shikugawa <rei@tetrate.io>
lizan
lizan previously approved these changes Oct 14, 2020
Copy link
Member

@lizan lizan left a comment

Choose a reason for hiding this comment

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

This LGTM, can you merge master? @mattklein123 for non-Tetrate pass.

@mattklein123
Copy link
Member

Please merge main and I will take a look.

/wait

Copy link
Member

@mattklein123 mattklein123 left a comment

Choose a reason for hiding this comment

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

Thanks!

Signed-off-by: Shikugawa <rei@tetrate.io>
@mattklein123
Copy link
Member

Merge main once #13598 merges. Thanks!

/wait

@lizan
Copy link
Member

lizan commented Oct 15, 2020

@mattklein123 FYI a /retest after #13598 would suffice.

@lizan
Copy link
Member

lizan commented Oct 15, 2020

/retest

@repokitteh-read-only
Copy link

Retrying Azure Pipelines, to retry CircleCI checks, use /retest-circle.
Retried failed jobs in: envoy-presubmit

🐱

Caused by: a #12783 (comment) was created by @lizan.

see: more, trace.

@lizan lizan removed the waiting label Oct 15, 2020
@mattklein123 mattklein123 merged commit 0d15fee into envoyproxy:master Oct 16, 2020
mpuncel added a commit to mpuncel/envoy that referenced this pull request Oct 17, 2020
* master: (22 commits)
  delay health checks until transport socket secrets are ready. (envoyproxy#13516)
  test, oauth2: Make sure config test runs field validation (envoyproxy#13496)
  [http] swap codec implementations to default new (envoyproxy#13579)
  wasm: update proxy-wasm-cpp-host (envoyproxy#13606)
  postgres: do not copy and linearize received data when it is not going to be used (envoyproxy#13393)
  configs: Update configs v2 -> v3 (envoyproxy#13562)
  http2: Remove RELEASE_ASSERTs in sendPendingFrames() error handling (envoyproxy#13546)
  dependencies: track untracked implied dependencies, wrapup dashboard. (envoyproxy#13571)
  listener: add match all filter chain (envoyproxy#13449)
  fix mistakes in docstrings (envoyproxy#13603)
  ratelimit: add route entry metadata to ratelimit actions (envoyproxy#13269)
  cluster manager: avoid immediate activation for dynamic inserted cluster when initialize (envoyproxy#12783)
  ext_authz: Avoid calling check multiple times (envoyproxy#13288)
  docs: Unexclude remaining configs from validation (envoyproxy#13534)
  build: update rules_rust to allow Rustc in RBE (envoyproxy#13595)
  docs: Update sphinxext.rediraffe (envoyproxy#13589)
  Deprecate moonjit support on Windows before beta (envoyproxy#13541)
  dependencies: bump LuaJIT to 2.1 branch HEAD @ e9af1ab. (envoyproxy#13474)
  docs: add TLS stats to cluster stats doc (envoyproxy#13561)
  ci: stop building alpine-debug images in favor of ubuntu-based debug image (envoyproxy#13598)
  ...

Signed-off-by: Michael Puncel <mpuncel@squareup.com>
@rgs1
Copy link
Member

rgs1 commented Oct 19, 2020

FYI seeing some envoys stuck in PRE_INITIALIZING after syncing with upstream... so it might be this change or #13516... will know in a bit.

@rgs1
Copy link
Member

rgs1 commented Oct 19, 2020

FYI seeing some envoys stuck in PRE_INITIALIZING after syncing with upstream... so it might be this change or #13516... will know in a bit.

this is when doing a hot restart

@mattklein123
Copy link
Member

Thanks @rgs1, it wouldn't surprise me if there was some bugs here. This code is complicated. If we need to revert we can.

@rgs1
Copy link
Member

rgs1 commented Oct 19, 2020

I'll do a bisect in a bit and confirm the offending commit.

@rgs1
Copy link
Member

rgs1 commented Oct 19, 2020

Ok this is change is clean, the issue is triggered by #13516 mixed with hot restarts.

cc: @mpuncel

lizan pushed a commit that referenced this pull request Oct 27, 2020
…cret entity (#13344)

This PR highly depends on #12783. Changed to keep warming if dynamic inserted clusters (when initialize doesn't finished) failed to extract TLS certificate and certificate validation context. They shouldn't be indicated as ACTIVE cluster.
Risk Level: Mid
Testing: Unit
Docs Changes:
Release Notes: Added
Fixes #11120, future work: #13777

Signed-off-by: Shikugawa <rei@tetrate.io>
lizan pushed a commit to lizan/envoy that referenced this pull request Oct 30, 2020
…ter when initialize (envoyproxy#12783)

Signed-off-by: Shikugawa <rei@tetrate.io>
lizan pushed a commit to lizan/envoy that referenced this pull request Oct 30, 2020
…cret entity (envoyproxy#13344)

This PR highly depends on envoyproxy#12783. Changed to keep warming if dynamic inserted clusters (when initialize doesn't finished) failed to extract TLS certificate and certificate validation context. They shouldn't be indicated as ACTIVE cluster.
Risk Level: Mid
Testing: Unit
Docs Changes:
Release Notes: Added
Fixes envoyproxy#11120, future work: envoyproxy#13777

Signed-off-by: Shikugawa <rei@tetrate.io>
@lizan lizan mentioned this pull request Oct 30, 2020
istio-testing pushed a commit to istio/envoy that referenced this pull request Nov 2, 2020
* cluster manager: avoid immediate activation for dynamic inserted cluster when initialize (envoyproxy#12783)

Signed-off-by: Shikugawa <rei@tetrate.io>

* sds: keep warming when dynamic inserted cluster can't be extracted secret entity (envoyproxy#13344)

This PR highly depends on envoyproxy#12783. Changed to keep warming if dynamic inserted clusters (when initialize doesn't finished) failed to extract TLS certificate and certificate validation context. They shouldn't be indicated as ACTIVE cluster.
Risk Level: Mid
Testing: Unit
Docs Changes:
Release Notes: Added
Fixes envoyproxy#11120, future work: envoyproxy#13777

Signed-off-by: Shikugawa <rei@tetrate.io>

Co-authored-by: Rei Shimizu <rei@tetrate.io>
lambdai pushed a commit to lambdai/envoy-dai that referenced this pull request Nov 10, 2020
…ter when initialize (envoyproxy#12783)

Signed-off-by: Shikugawa <rei@tetrate.io>
Signed-off-by: Yuchen Dai <silentdai@gmail.com>
istio-testing pushed a commit to istio/envoy that referenced this pull request Nov 11, 2020
* cluster manager: avoid immediate activation for dynamic inserted cluster when initialize (envoyproxy#12783)

Signed-off-by: Shikugawa <rei@tetrate.io>
Signed-off-by: Yuchen Dai <silentdai@gmail.com>

* cluster: unstuck cluster manager when update the initializing cluster (envoyproxy#13875)

Signed-off-by: Yuchen Dai <silentdai@gmail.com>

Co-authored-by: Rei Shimizu <rei@tetrate.io>
@Shikugawa Shikugawa deleted the cds-warming branch March 3, 2021 06:43
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.

cluster manager: dynamically inserted clusters should be warming at first
5 participants