@ -24,6 +24,7 @@ import (
"path"
"time"
"github.com/minio/minio/cmd/logger"
"github.com/minio/minio/pkg/lock"
)
@ -332,11 +333,24 @@ func formatFSFixDeploymentID(fsFormatPath string) error {
return nil
}
formatStartTime := time . Now ( ) . Round ( time . Second )
getElapsedTime := func ( ) string {
return time . Now ( ) . Round ( time . Second ) . Sub ( formatStartTime ) . String ( )
}
doneCh := make ( chan struct { } )
defer close ( doneCh )
retryTimerCh := newRetryTimerSimple ( doneCh )
for {
select {
case <- retryTimerCh :
wlk , err := lock . TryLockedOpenFile ( fsFormatPath , os . O_RDWR , 0 )
if err == lock . ErrAlreadyLocked {
// Lock already present, sleep and attempt again.
time . Sleep ( 100 * time . Millisecond )
// Lock already present, sleep and attempt again
logger . Info ( "Another minio process(es) might be holding a lock to the file %s. Please kill that minio process(es) (elapsed %s)\n" , fsFormatPath , getElapsedTime ( ) )
continue
}
if err != nil {
@ -356,5 +370,6 @@ func formatFSFixDeploymentID(fsFormatPath string) error {
format . ID = mustGetUUID ( )
return jsonSave ( wlk , format )
}
}
}