@@ -268,7 +268,7 @@ func (VolumeAPI) GetDiskNumberFromVolumeID(volumeID string) (uint32, error) {
268268
269269// GetVolumeIDFromTargetPath - gets the volume ID given a mount point, the function is recursive until it find a volume or errors out
270270func (VolumeAPI ) GetVolumeIDFromTargetPath (mount string ) (string , error ) {
271- volumeString , err := getTarget (mount )
271+ volumeString , err := getTarget (mount , 0 )
272272
273273 if err != nil {
274274 return "" , fmt .Errorf ("error getting the volume for the mount %s, internal error %v" , mount , err )
@@ -277,22 +277,28 @@ func (VolumeAPI) GetVolumeIDFromTargetPath(mount string) (string, error) {
277277 return volumeString , nil
278278}
279279
280- func getTarget (mount string ) (string , error ) {
280+ func getTarget (mount string , retry int ) (string , error ) {
281281 cmd := `(Get-Item -Path $Env:mountpath).Target`
282282 cmdEnv := fmt .Sprintf ("mountpath=%s" , mount )
283283 out , err := utils .RunPowershellCmd (cmd , cmdEnv )
284284 if err != nil || len (out ) == 0 {
285285 return "" , fmt .Errorf ("error getting volume from mount. cmd: %s, output: %s, error: %v" , cmd , string (out ), err )
286286 }
287+ if retry >= 256 {
288+ return "" , fmt .Errorf ("maximum recursion reached, cmd: %s, output: %s, :retry %d" , cmd , string (out ), retry )
289+ }
290+
287291 volumeString := strings .TrimSpace (string (out ))
292+ klog .V (8 ).Infof ("retry: %d, volumeString: %s" , retry , volumeString )
293+
288294 if ! strings .HasPrefix (volumeString , "Volume" ) {
289- return getTarget (volumeString )
295+ return getTarget (volumeString , retry + 1 )
290296 }
291297
292298 return ensureVolumePrefix (volumeString ), nil
293299}
294300
295- // GetVolumeIDFromTargetPath returns the volume id of a given target path.
301+ // GetClosestVolumeIDFromTargetPath returns the volume id of a given target path.
296302func (VolumeAPI ) GetClosestVolumeIDFromTargetPath (targetPath string ) (string , error ) {
297303 volumeString , err := findClosestVolume (targetPath )
298304
0 commit comments