Skip to content
  • Anis Elleuch's avatar
    fix: rootdisk detection by not using cached value when GetDiskInfo() errors out (#15249) · ed0cbfb3
    Anis Elleuch authored
    GetDiskInfo() uses timedValue to cache the disk info for one second.
    
    timedValue behavior was recently changed to return an old cached value
    when calculating a new value returns an error.
    
    When a mount point is empty, GetDiskInfo() will return errUnformattedDisk,
    timedValue will return cached disk info with unexpected IsRootDisk value,
    e.g. false if the mount point belongs to a root disk. Therefore, the mount
    point will be considered a valid disk and will be formatted as well.
    
    This commit will also add more defensive code when marking root disks:
    always mark a disk offline for any GetDiskInfo() error except
    errUnformattedDisk. The server will try anyway to reconnect to those
    disks every 10 seconds.
    ed0cbfb3