HDFS-11140. Directory Scanner should log startup message time correctly. Contributed by Yiqun Lin.
This commit is contained in:
parent
f54afdb83b
commit
0857641f62
|
@ -791,6 +791,15 @@ public class RawLocalFileSystem extends FileSystem {
|
|||
pathToFile(p).toPath(), BasicFileAttributeView.class);
|
||||
FileTime fmtime = (mtime >= 0) ? FileTime.fromMillis(mtime) : null;
|
||||
FileTime fatime = (atime >= 0) ? FileTime.fromMillis(atime) : null;
|
||||
|
||||
// On some macOS environment, BasicFileAttributeView.setTimes
|
||||
// does not set times correctly when the argument of accessTime is null.
|
||||
// TODO: Remove this after the issue is fixed.
|
||||
if (fatime == null && Shell.MAC) {
|
||||
FileStatus f = getFileStatus(p);
|
||||
fatime = FileTime.fromMillis(f.getAccessTime());
|
||||
}
|
||||
|
||||
view.setTimes(fmtime, fatime, null);
|
||||
} catch (NoSuchFileException e) {
|
||||
throw new FileNotFoundException("File " + p + " does not exist");
|
||||
|
|
|
@ -37,6 +37,8 @@ import java.util.concurrent.ScheduledThreadPoolExecutor;
|
|||
import java.util.concurrent.ThreadLocalRandom;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.atomic.AtomicLong;
|
||||
|
||||
import org.apache.commons.lang.time.FastDateFormat;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.apache.hadoop.classification.InterfaceAudience;
|
||||
|
@ -61,7 +63,7 @@ public class DirectoryScanner implements Runnable {
|
|||
private static final int MILLIS_PER_SECOND = 1000;
|
||||
private static final String START_MESSAGE =
|
||||
"Periodic Directory Tree Verification scan"
|
||||
+ " starting at %dms with interval of %dms";
|
||||
+ " starting at %s with interval of %dms";
|
||||
private static final String START_MESSAGE_WITH_THROTTLE = START_MESSAGE
|
||||
+ " and throttle limit of %dms/s";
|
||||
|
||||
|
@ -268,10 +270,12 @@ public class DirectoryScanner implements Runnable {
|
|||
String logMsg;
|
||||
|
||||
if (throttleLimitMsPerSec < MILLIS_PER_SECOND) {
|
||||
logMsg = String.format(START_MESSAGE_WITH_THROTTLE, firstScanTime,
|
||||
scanPeriodMsecs, throttleLimitMsPerSec);
|
||||
logMsg = String.format(START_MESSAGE_WITH_THROTTLE,
|
||||
FastDateFormat.getInstance().format(firstScanTime), scanPeriodMsecs,
|
||||
throttleLimitMsPerSec);
|
||||
} else {
|
||||
logMsg = String.format(START_MESSAGE, firstScanTime, scanPeriodMsecs);
|
||||
logMsg = String.format(START_MESSAGE,
|
||||
FastDateFormat.getInstance().format(firstScanTime), scanPeriodMsecs);
|
||||
}
|
||||
|
||||
LOG.info(logMsg);
|
||||
|
|
Loading…
Reference in New Issue