YARN-9833. Race condition when DirectoryCollection.checkDirs() runs during container launch. Contributed by Peter Bacsko.
This commit is contained in:
parent
7f9073132d
commit
c474e24c0b
|
@ -48,6 +48,7 @@ import org.apache.hadoop.yarn.conf.YarnConfiguration;
|
||||||
import org.apache.hadoop.yarn.exceptions.YarnRuntimeException;
|
import org.apache.hadoop.yarn.exceptions.YarnRuntimeException;
|
||||||
|
|
||||||
import com.google.common.annotations.VisibleForTesting;
|
import com.google.common.annotations.VisibleForTesting;
|
||||||
|
import com.google.common.collect.ImmutableList;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Manages a list of local storage directories.
|
* Manages a list of local storage directories.
|
||||||
|
@ -227,7 +228,7 @@ public class DirectoryCollection {
|
||||||
List<String> getGoodDirs() {
|
List<String> getGoodDirs() {
|
||||||
this.readLock.lock();
|
this.readLock.lock();
|
||||||
try {
|
try {
|
||||||
return Collections.unmodifiableList(localDirs);
|
return ImmutableList.copyOf(localDirs);
|
||||||
} finally {
|
} finally {
|
||||||
this.readLock.unlock();
|
this.readLock.unlock();
|
||||||
}
|
}
|
||||||
|
@ -239,7 +240,7 @@ public class DirectoryCollection {
|
||||||
List<String> getFailedDirs() {
|
List<String> getFailedDirs() {
|
||||||
this.readLock.lock();
|
this.readLock.lock();
|
||||||
try {
|
try {
|
||||||
return Collections.unmodifiableList(
|
return ImmutableList.copyOf(
|
||||||
DirectoryCollection.concat(errorDirs, fullDirs));
|
DirectoryCollection.concat(errorDirs, fullDirs));
|
||||||
} finally {
|
} finally {
|
||||||
this.readLock.unlock();
|
this.readLock.unlock();
|
||||||
|
@ -252,7 +253,7 @@ public class DirectoryCollection {
|
||||||
List<String> getFullDirs() {
|
List<String> getFullDirs() {
|
||||||
this.readLock.lock();
|
this.readLock.lock();
|
||||||
try {
|
try {
|
||||||
return Collections.unmodifiableList(fullDirs);
|
return ImmutableList.copyOf(fullDirs);
|
||||||
} finally {
|
} finally {
|
||||||
this.readLock.unlock();
|
this.readLock.unlock();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue