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

Improve error handling of GCE Attach Errors #298

Open
davidz627 opened this issue Jun 11, 2019 · 7 comments
Open

Improve error handling of GCE Attach Errors #298

davidz627 opened this issue Jun 11, 2019 · 7 comments
Labels
lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness.
Milestone

Comments

@davidz627
Copy link
Contributor

Depending on the type of error returned we should be returning:
"ABORTED" for operation pending errors
"RESOURCE_EXHAUSTED" for max volumes attached errors
"FAILED_PRECONDITION" for volume already attached to another node errors

right now we just return an INTERNAL ERROR for any gce attach error during controller publish volume

/cc @msau42

@hantaowang
Copy link

For attach at least, it seems the codes are not actually used in terms of the isFinalError logic, only logging/events.

From here, it seems that RESOURCE_EXHAUSTED should be used for the problem where too many devices are being attached at the same time, rather than the max devices per node reached issue.

@davidz627
Copy link
Contributor Author

davidz627 commented Jun 20, 2019

according to the spec:

Max volumes attached | 8 RESOURCE_EXHAUSTED | Indicates that the maximum supported number of volumes that can be attached to the specified node are already attached. Therefore, this operation will fail until at least one of the existing attached volumes is detached from the node. | Caller MUST ensure that the number of volumes already attached to the node is less then the maximum supported number of volumes before retrying with exponential backoff.

Looks like the external-attacher may be interpreting the error incorrectly. Maybe we should create an issue (or fix) there.

And no matter what the external-attacher says we need to conform to the spec (or change the spec if it is wrong) as the spec is the official contract we support and other entities could interact with our driver in unforseen or unknown ways that depend on Spec functionality

@davidz627
Copy link
Contributor Author

in fact I would think that it isFinalError=true in the RESOURCE_EXHAUSTED case

@fejta-bot
Copy link

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.

If this issue is safe to close now please do so with /close.

Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Dec 17, 2019
@davidz627
Copy link
Contributor Author

/remove-lifecycle stale

@k8s-ci-robot k8s-ci-robot removed the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Dec 18, 2019
@fejta-bot
Copy link

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.

If this issue is safe to close now please do so with /close.

Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Mar 17, 2020
@msau42
Copy link
Contributor

msau42 commented Mar 17, 2020

/lifecycle frozen

@k8s-ci-robot k8s-ci-robot added lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels Mar 17, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness.
Projects
None yet
Development

No branches or pull requests

5 participants