diff --git a/build.env b/build.env index 627e0dda0..be3d80a14 100644 --- a/build.env +++ b/build.env @@ -44,7 +44,7 @@ HELM_SCRIPT=https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 HELM_VERSION=v3.10.1 # minikube settings -MINIKUBE_VERSION=v1.31.2 +MINIKUBE_VERSION=v1.32.0 VM_DRIVER=none CHANGE_MINIKUBE_NONE_USER=true diff --git a/internal/cephfs/controllerserver.go b/internal/cephfs/controllerserver.go index bd91954ca..9a750f2a4 100644 --- a/internal/cephfs/controllerserver.go +++ b/internal/cephfs/controllerserver.go @@ -20,6 +20,7 @@ import ( "context" "errors" "fmt" + "syscall" "github.com/ceph/ceph-csi/internal/cephfs/core" cerrors "github.com/ceph/ceph-csi/internal/cephfs/errors" @@ -134,6 +135,11 @@ func (cs *ControllerServer) createBackingVolumeFromSnapshotSource( }) if err != nil { log.ErrorLog(ctx, "failed to create clone from snapshot %s: %v", sID.FsSnapshotName, err) + // TODO: Add error handle for EAGAIN in go-ceph and replace the + // syscall.EAGAIN check with the go-ceph compatible error. + if errors.Is(err, syscall.EAGAIN) { + return status.Error(codes.ResourceExhausted, err.Error()) + } return err } @@ -156,6 +162,11 @@ func (cs *ControllerServer) createBackingVolumeFromVolumeSource( if err := volClient.CreateCloneFromSubvolume(ctx, &parentVolOpt.SubVolume); err != nil { log.ErrorLog(ctx, "failed to create clone from subvolume %s: %v", fsutil.VolumeID(pvID.FsSubvolName), err) + // TODO: Add error handle for EAGAIN in go-ceph and replace the + // syscall.EAGAIN check with the go-ceph compatible error. + if errors.Is(err, syscall.EAGAIN) { + return status.Error(codes.ResourceExhausted, err.Error()) + } return err }