Skip to content

Bring back "client-go: add retry logic for Watch and Stream" and fix test flake#102606

Merged
k8s-ci-robot merged 2 commits intokubernetes:masterfrom
tkashem:revert-102581
Jun 7, 2021
Merged

Bring back "client-go: add retry logic for Watch and Stream" and fix test flake#102606
k8s-ci-robot merged 2 commits intokubernetes:masterfrom
tkashem:revert-102581

Conversation

@tkashem
Copy link
Contributor

@tkashem tkashem commented Jun 4, 2021

What type of PR is this?

/kind failing-test
/kind flake

What this PR does / why we need it:

We had to revert #102107 due to flakes - the flaking tests can be found here https://storage.googleapis.com/k8s-gubernator/triage/index.html?pr=1&job=unit&test=k8s.io%2Fclient-go%2Frest

Which issue(s) this PR fixes:

Fixes #

Special notes for your reviewer:

  • The revert commit is clean and pristine
  • The fix for test flake is in a separate commit so it is easier to review

Does this PR introduce a user-facing change?

NONE

Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:


@k8s-ci-robot k8s-ci-robot added release-note-none Denotes a PR that doesn't merit a release note. kind/failing-test Categorizes issue or PR as related to a consistently or frequently failing test. kind/flake Categorizes issue or PR as related to a flaky test. size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. kind/regression Categorizes issue or PR as related to a regression from a prior release. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. do-not-merge/needs-sig Indicates an issue or PR lacks a `sig/foo` label and requires one. needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. needs-priority Indicates a PR lacks a `priority/foo` label and requires one. sig/api-machinery Categorizes an issue or PR as relevant to SIG API Machinery. and removed do-not-merge/needs-sig Indicates an issue or PR lacks a `sig/foo` label and requires one. labels Jun 4, 2021
@k8s-ci-robot k8s-ci-robot requested review from deads2k and sttts June 4, 2021 19:21
@tkashem tkashem changed the title Revert 102581 Bring back "client-go: add retry logic for Watch and Stream" and fix test flake Jun 4, 2021
@tkashem
Copy link
Contributor Author

tkashem commented Jun 4, 2021

/assign @wojtek-t @deads2k

/cc @liggitt

@tkashem
Copy link
Contributor Author

tkashem commented Jun 4, 2021

I reproduced the issue using stress binary:

$ go test -v -race -count=1 k8s.io/client-go/rest -c

Before the fix:

$ stress ./rest.test -test.run "TestRequestWatchWithRetry"

/tmp/go-stress-20210604T134627-494103019
--- FAIL: TestRequestWatchWithRetry (0.00s)
    --- FAIL: TestRequestWatchWithRetry/server_returns_success_on_the_final_retry (0.00s)
        request_test.go:2932: Expected response body Close to be invoked 1 times, but got: 2
FAIL


ERROR: exit status 1

After the fix:

$ stress ./rest.test -test.run "TestRequestWatchWithRetry"

.
.
.
53m5s: 299715 runs so far, 0 failures
53m10s: 300277 runs so far, 0 failures
53m15s: 300871 runs so far, 0 failures

@wojtek-t
Copy link
Member

wojtek-t commented Jun 7, 2021

/lgtm
/approve

/hold
To give @liggitt a chance to look if he wants.

@k8s-ci-robot k8s-ci-robot added do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. lgtm "Looks good to me", indicates that a PR is ready to be merged. labels Jun 7, 2021
@wojtek-t
Copy link
Member

wojtek-t commented Jun 7, 2021

/triage accepted

@k8s-ci-robot k8s-ci-robot added triage/accepted Indicates an issue or PR is ready to be actively worked on. and removed needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. labels Jun 7, 2021
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: tkashem, wojtek-t

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@k8s-ci-robot k8s-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jun 7, 2021
@wojtek-t
Copy link
Member

wojtek-t commented Jun 7, 2021

It seems @liggitt is OOO for the next week. So let me unhold.

@tkashem - can you please monitor this after merge that it won't start flaking again?

/hold cancel

@k8s-ci-robot k8s-ci-robot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Jun 7, 2021
@tkashem
Copy link
Contributor Author

tkashem commented Jun 7, 2021

cc @MikeSpreitzer

@tkashem
Copy link
Contributor Author

tkashem commented Jun 7, 2021

/test pull-kubernetes-e2e-gce-ubuntu-containerd

@k8s-ci-robot k8s-ci-robot merged commit b429c4c into kubernetes:master Jun 7, 2021
@k8s-ci-robot k8s-ci-robot added this to the v1.22 milestone Jun 7, 2021
tkashem added a commit to tkashem/kubernetes that referenced this pull request Mar 29, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. kind/failing-test Categorizes issue or PR as related to a consistently or frequently failing test. kind/flake Categorizes issue or PR as related to a flaky test. kind/regression Categorizes issue or PR as related to a regression from a prior release. lgtm "Looks good to me", indicates that a PR is ready to be merged. needs-priority Indicates a PR lacks a `priority/foo` label and requires one. release-note-none Denotes a PR that doesn't merit a release note. sig/api-machinery Categorizes an issue or PR as relevant to SIG API Machinery. size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. triage/accepted Indicates an issue or PR is ready to be actively worked on.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants