HDFS-14331. RBF: IOE While Removing Mount Entry. Contributed by Ayush Saxena.
This commit is contained in:
parent
1ce25e702b
commit
6cdf8db55c
|
@ -303,8 +303,15 @@ public class RouterAdminServer extends AbstractService
|
||||||
public RemoveMountTableEntryResponse removeMountTableEntry(
|
public RemoveMountTableEntryResponse removeMountTableEntry(
|
||||||
RemoveMountTableEntryRequest request) throws IOException {
|
RemoveMountTableEntryRequest request) throws IOException {
|
||||||
// clear sub-cluster's quota definition
|
// clear sub-cluster's quota definition
|
||||||
synchronizeQuota(request.getSrcPath(), HdfsConstants.QUOTA_RESET,
|
try {
|
||||||
HdfsConstants.QUOTA_RESET);
|
synchronizeQuota(request.getSrcPath(), HdfsConstants.QUOTA_RESET,
|
||||||
|
HdfsConstants.QUOTA_RESET);
|
||||||
|
} catch (Exception e) {
|
||||||
|
// Ignore exception, if any while reseting quota. Specifically to handle
|
||||||
|
// if the actual destination doesn't exist.
|
||||||
|
LOG.warn("Unable to clear quota at the destinations for {}: {}",
|
||||||
|
request.getSrcPath(), e.getMessage());
|
||||||
|
}
|
||||||
return getMountTableStore().removeMountTableEntry(request);
|
return getMountTableStore().removeMountTableEntry(request);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -20,6 +20,7 @@ package org.apache.hadoop.hdfs.server.federation.router;
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
import static org.junit.Assert.assertNotEquals;
|
import static org.junit.Assert.assertNotEquals;
|
||||||
import static org.junit.Assert.assertNull;
|
import static org.junit.Assert.assertNull;
|
||||||
|
import static org.junit.Assert.assertTrue;
|
||||||
import static org.junit.Assert.fail;
|
import static org.junit.Assert.fail;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
@ -754,6 +755,12 @@ public class TestRouterQuota {
|
||||||
assertNull(routerQuota);
|
assertNull(routerQuota);
|
||||||
assertEquals(HdfsConstants.QUOTA_RESET, subClusterQuota.getQuota());
|
assertEquals(HdfsConstants.QUOTA_RESET, subClusterQuota.getQuota());
|
||||||
assertEquals(HdfsConstants.QUOTA_RESET, subClusterQuota.getSpaceQuota());
|
assertEquals(HdfsConstants.QUOTA_RESET, subClusterQuota.getSpaceQuota());
|
||||||
|
|
||||||
|
// Verify removing mount entry with actual destinations not present.
|
||||||
|
mountTable = MountTable.newInstance("/mount",
|
||||||
|
Collections.singletonMap("ns0", "/testdir16"));
|
||||||
|
addMountTable(mountTable);
|
||||||
|
assertTrue(removeMountTable("/mount"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
Loading…
Reference in New Issue