diff --git a/pkg/csi/recover/recover.go b/pkg/csi/recover/recover.go index b1d289bdba0..44271e2023f 100644 --- a/pkg/csi/recover/recover.go +++ b/pkg/csi/recover/recover.go @@ -181,8 +181,8 @@ func (r *FuseRecover) recoverBrokenMount(point mountinfo.MountPoint) (err error) // Info: Attempting recovery action glog.V(3).Infof("FuseRecovery: attempting bind mount, source=%s mountPath=%s options=%v", point.SourcePath, point.MountPath, mountOption) - if err := r.Mount(point.SourcePath, point.MountPath, "none", mountOption); err != nil { - // Warning: Mount failure is recoverable - will retry on next cycle + if err = r.Mount(point.SourcePath, point.MountPath, "none", mountOption); err != nil { + // Warning: Mount failure is propagated to caller, which records FuseRecoverFailed event glog.Warningf("FuseRecovery: bind mount failed, mountPath=%s source=%s error=%v", point.MountPath, point.SourcePath, err) } return diff --git a/pkg/csi/recover/recover_test.go b/pkg/csi/recover/recover_test.go index 314f6061d37..8199c33e3ec 100644 --- a/pkg/csi/recover/recover_test.go +++ b/pkg/csi/recover/recover_test.go @@ -374,7 +374,7 @@ var _ = Describe("FuseRecover", func() { }) Context("when mount fails", func() { - It("should return without error but log the failure", func() { + It("should return the mount error", func() { fakeMounter := &mount.FakeMounter{} r := FuseRecover{SafeFormatAndMount: mount.SafeFormatAndMount{ Interface: fakeMounter, @@ -394,7 +394,7 @@ var _ = Describe("FuseRecover", func() { defer patch1.Reset() err := r.recoverBrokenMount(point) - Expect(err).NotTo(HaveOccurred()) + Expect(err).To(HaveOccurred()) }) }) })