-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
🐛 ssa: fix flaky test TestPatch/Test patch with Machine #9914
🐛 ssa: fix flaky test TestPatch/Test patch with Machine #9914
Conversation
/cherry-pick release-1.6 |
@chrischdi: once the present PR merges, I will cherry-pick it on top of release-1.6 in a new PR and assign it to you. In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
/cherry-pick release-1.5 |
@chrischdi: once the present PR merges, I will cherry-pick it on top of release-1.5 in a new PR and assign it to you. In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
During the test at the additional Patch calls the defaulting webhook did always set the .spec.infrastructureRef.namespace field. This caused flaky behaviour because there was a chance for the resourceVersion to getting bumped with the only change being the timestamp in managedFields.
ec92803
to
6900d3b
Compare
Note: this flake also exists on the still getting tested release-1.4 branch. Should we also cherry-pick to release-1.4 while this branch is already out of support? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice catch!
/lgtm
/approve
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: fabriziopandini The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
LGTM label has been added. Git tree hash: efb1f2e8b1e0b511cd92e424e5374b19f55e2e45
|
@chrischdi: new pull request created: #9915 In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
@chrischdi: new pull request created: #9916 In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
/cherry-pick release-1.4 |
@chrischdi: new pull request created: #9917 In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
@chrischdi Nice catch! So the test failed when we hit the case where the timestamp was >1s higher than initially? Otherwise there was no diff? Thinking about the practical implications. Does this mean we are continuously updating objects as soon as a single field is not set by us (the client) and defaulted by a webhook instead? (i.e. the cache doesn't work in this case) |
Yes that was the case in the test. Don't know if this also gets hit in a real scenario 🤔 maybe worth to try it |
During the test at the additional Patch calls the defaulting webhook did always set the .spec.infrastructureRef.namespace field.
This caused flaky behaviour because there was a chance for the resourceVersion to getting bumped with the only change being the timestamp in managedFields.
What this PR does / why we need it:
This flake was reproducible by either the following command:
Or by adding a
time.Sleep(time.Second)
at:cluster-api/internal/util/ssa/patch_test.go
Line 157 in ec92803
Which issue(s) this PR fixes (optional, in
fixes #<issue number>(, fixes #<issue_number>, ...)
format, will close the issue(s) when PR gets merged):Fixes #8478
Area example:
/area testing