-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
Migrate: handle NotFound via resource matching and during conflicts #18280
Migrate: handle NotFound via resource matching and during conflicts #18280
Conversation
This change fixes two issues with the migrate command: 1. It updates isNotFoundForInfo to compare the error's kind to the info's resource as well as its kind. The server error's use the resource value in places where the kind should be used. We simply accept both now. 2. It updates DefaultRetriable to not fail on conflict errors if they were caused by the deletion of the given resource. The following shell based tests were used to stress the edge cases that this change fixes. The migrate command will readily fail in these tests without the fixes from this change. In one shell we continuously create service accounts with random names as fast as possible. The resource type is not relevant. N=8 while true; do ((i=i%N)); ((i++==0)) && wait oc create serviceaccount $((1 + RANDOM % 10000000)) & done In a second shell we try to continuously delete all service accounts: while true; do oc delete sa --all done In a third shell we try to continuously migrate service accounts: while true; do oc adm migrate storage --include='serviceaccount' --confirm done Bug 1537751 Signed-off-by: Monis Khan <[email protected]>
/assign @simo5 This is blocking upgrades from 3.7 to 3.9. |
/lgtm |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: enj, simo5 The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these OWNERS Files:
You can indicate your approval by writing |
Automatic merge from submit-queue (batch tested with PRs 16754, 18280). |
/cherrypick release-3.8 |
@enj: new pull request created: #18286 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. |
/cherrypick release-3.7 |
@enj: new pull request created: #18287 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. |
…-18280-to-release-3.7 Automatic merge from submit-queue. [release-3.7] Migrate: handle NotFound via resource matching and during conflicts This is an automated cherry-pick of #18280 /assign enj
…-18280-to-release-3.8 Automatic merge from submit-queue. [release-3.8] Migrate: handle NotFound via resource matching and during conflicts This is an automated cherry-pick of #18280 /assign enj
…18220-upstream-ose-enterprise-3.8 Automated cherry pick of openshift#18220 openshift#18280 on enterprise-3.8
This change fixes two issues with the migrate command:
isNotFoundForInfo
to compare the error's kind to the info's resource as well as its kind. The server error's use the resource value in places where the kind should be used. We simply accept both now.DefaultRetriable
to not fail on conflict errors if they were caused by the deletion of the given resource.The following shell based tests were used to stress the edge cases that this change fixes. The migrate command will readily fail in these tests without the fixes from this change.
In one shell we continuously create service accounts with random names as fast as possible. The resource type is not relevant.
In a second shell we try to continuously delete all service accounts:
In a third shell we try to continuously migrate service accounts:
Bug 1537751
Signed-off-by: Monis Khan [email protected]