HADOOP-16461. Regression: FileSystem cache lock parses XML within the lock.

Contributed by Gopal V.

Change-Id: If6654f850e9c24ee0d9519a46fd6269b18e1a7a4
(cherry picked from commit aebac6d2d2)
This commit is contained in:
Gopal V 2019-07-26 11:32:13 +01:00 committed by Wei-Chiu Chuang
parent 1030ac85bb
commit b9dc2c17de
1 changed files with 6 additions and 1 deletions

View File

@ -3350,6 +3350,9 @@ public abstract class FileSystem extends Configured
}
fs = createFileSystem(uri, conf);
final long timeout = conf.getTimeDuration(SERVICE_SHUTDOWN_TIMEOUT,
SERVICE_SHUTDOWN_TIMEOUT_DEFAULT,
ShutdownHookManager.TIME_UNIT_DEFAULT);
synchronized (this) { // refetch the lock again
FileSystem oldfs = map.get(key);
if (oldfs != null) { // a file system is created while lock is releasing
@ -3360,7 +3363,9 @@ public abstract class FileSystem extends Configured
// now insert the new file system into the map
if (map.isEmpty()
&& !ShutdownHookManager.get().isShutdownInProgress()) {
ShutdownHookManager.get().addShutdownHook(clientFinalizer, SHUTDOWN_HOOK_PRIORITY);
ShutdownHookManager.get().addShutdownHook(clientFinalizer,
SHUTDOWN_HOOK_PRIORITY, timeout,
ShutdownHookManager.TIME_UNIT_DEFAULT);
}
fs.key = key;
map.put(key, fs);