Skip to content

Conversation

mdzraf
Copy link
Member

@mdzraf mdzraf commented Aug 21, 2025

What type of PR is this?

/kind bug

What is this PR about? / Why do we need it?

This PR makes it so that when there is a modifyVolume request and the request to modify tags which happens before the ResizeOrModifyDisk, succeeds, and then there is a failure when ResizeOrModifyDisk is called due to an InvalidParameter, the driver does not return codes.InvalidArgument which is considered an infeasible error by the resizer. Because there was some modification done to the volume, an infeasible error is not to be returned as this would signal that no changes were done at all.

How was this change tested?

Running make test for unit tests.

Does this PR introduce a user-facing change?

NONE

@k8s-ci-robot k8s-ci-robot added release-note-none Denotes a PR that doesn't merit a release note. kind/bug Categorizes issue or PR as related to a bug. labels Aug 21, 2025
@k8s-ci-robot k8s-ci-robot added cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. size/XS Denotes a PR that changes 0-9 lines, ignoring generated files. labels Aug 21, 2025
Copy link

github-actions bot commented Aug 21, 2025

Code Coverage Diff

File Old Coverage New Coverage Delta
github.com/kubernetes-sigs/aws-ebs-csi-driver/pkg/driver/controller_modify_volume.go 77.8% 76.1% -1.7

Copy link
Contributor

@AndrewSirenko AndrewSirenko left a comment

Choose a reason for hiding this comment

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

I thought we wanted to undo the tag modification then return InvalidArgument in this case?

By returning internal error here customer will not be able to rollback vacname AND we will spam EC2 because there is no delayed retry interval.

@ConnorJC3
Copy link
Contributor

ConnorJC3 commented Aug 21, 2025

Is undoing the tags reasonably possible? Don't we get completely wrecked by restarts/crashes? I thought we were going to add a MV dry run, and bail infreasibly on that.

@mdzraf
Copy link
Member Author

mdzraf commented Aug 22, 2025

Offline Discussion: We will merge this PR and work on designing a long-term fix to ensure that the volume is not changed at all when we return an infeasible error.

@mdzraf mdzraf force-pushed the onlyInfeasibleOnNoModify branch from 017e8a4 to a2ecdeb Compare August 25, 2025 13:22
@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Aug 25, 2025
@mdzraf
Copy link
Member Author

mdzraf commented Aug 25, 2025

/retest

@AndrewSirenko
Copy link
Contributor

AndrewSirenko commented Aug 25, 2025

Going to have one more standup discussion on next steps because:

  • Changing invalidArg -> internal leads to spamming EC2 API Calls on wrong parameters
  • KEP-3751: add error handling may constrain whether customers can roll forward or roll back internal vs InvalidArg errors Nvm final wording is relaxed about this.

Instead a dry-run modifyVolume before createTags would help customers catch invalid VACs before modifying volume at all.

@AndrewSirenko
Copy link
Contributor

/hold

Until standup discussion

@k8s-ci-robot k8s-ci-robot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Aug 25, 2025
Copy link
Contributor

@AndrewSirenko AndrewSirenko left a comment

Choose a reason for hiding this comment

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

/unhold

@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 Aug 27, 2025
@mdzraf mdzraf force-pushed the onlyInfeasibleOnNoModify branch from a2ecdeb to 3c50fb3 Compare August 28, 2025 17:31
@k8s-ci-robot k8s-ci-robot removed the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Aug 28, 2025
@mdzraf mdzraf force-pushed the onlyInfeasibleOnNoModify branch from 3c50fb3 to 652efd5 Compare August 28, 2025 19:09
@mdzraf mdzraf requested review from torredil and ConnorJC3 August 29, 2025 10:22
Copy link
Contributor

@ConnorJC3 ConnorJC3 left a comment

Choose a reason for hiding this comment

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

/lgtm

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Aug 29, 2025
Copy link
Member

@torredil torredil left a comment

Choose a reason for hiding this comment

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

/lgtm
/approve

@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: torredil

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 /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 Aug 29, 2025
@k8s-ci-robot k8s-ci-robot merged commit cf8b068 into kubernetes-sigs:master Aug 29, 2025
17 of 18 checks passed
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/bug Categorizes issue or PR as related to a bug. lgtm "Looks good to me", indicates that a PR is ready to be merged. release-note-none Denotes a PR that doesn't merit a release note. size/XS Denotes a PR that changes 0-9 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants