|
@@ -3350,7 +3350,9 @@ public class FSNamesystem implements Namesystem, FSNamesystemMBean,
|
|
|
|
|
|
//find datanode storages
|
|
|
final DatanodeManager dm = blockManager.getDatanodeManager();
|
|
|
- chosen = Arrays.asList(dm.getDatanodeStorageInfos(existings, storageIDs));
|
|
|
+ chosen = Arrays.asList(dm.getDatanodeStorageInfos(existings, storageIDs,
|
|
|
+ "src=%s, fileId=%d, blk=%s, clientName=%s, clientMachine=%s",
|
|
|
+ src, fileId, blk, clientName, clientMachine));
|
|
|
} finally {
|
|
|
readUnlock();
|
|
|
}
|
|
@@ -4258,7 +4260,7 @@ public class FSNamesystem implements Namesystem, FSNamesystemMBean,
|
|
|
+ ", deleteBlock=" + deleteblock
|
|
|
+ ")");
|
|
|
checkOperation(OperationCategory.WRITE);
|
|
|
- String src = "";
|
|
|
+ final String src;
|
|
|
waitForLoadingFSImage();
|
|
|
writeLock();
|
|
|
try {
|
|
@@ -4303,10 +4305,10 @@ public class FSNamesystem implements Namesystem, FSNamesystemMBean,
|
|
|
+ " deleted and the block removal is delayed");
|
|
|
}
|
|
|
INodeFile iFile = ((INode)blockCollection).asFile();
|
|
|
+ src = iFile.getFullPathName();
|
|
|
if (isFileDeleted(iFile)) {
|
|
|
throw new FileNotFoundException("File not found: "
|
|
|
- + iFile.getFullPathName() + ", likely due to delayed block"
|
|
|
- + " removal");
|
|
|
+ + src + ", likely due to delayed block removal");
|
|
|
}
|
|
|
if ((!iFile.isUnderConstruction() || storedBlock.isComplete()) &&
|
|
|
iFile.getLastBlock().isComplete()) {
|
|
@@ -4382,7 +4384,10 @@ public class FSNamesystem implements Namesystem, FSNamesystemMBean,
|
|
|
DatanodeStorageInfo[] trimmedStorageInfos =
|
|
|
blockManager.getDatanodeManager().getDatanodeStorageInfos(
|
|
|
trimmedTargets.toArray(new DatanodeID[trimmedTargets.size()]),
|
|
|
- trimmedStorages.toArray(new String[trimmedStorages.size()]));
|
|
|
+ trimmedStorages.toArray(new String[trimmedStorages.size()]),
|
|
|
+ "src=%s, oldBlock=%s, newgenerationstamp=%d, newlength=%d",
|
|
|
+ src, oldBlock, newgenerationstamp, newlength);
|
|
|
+
|
|
|
if(copyTruncate) {
|
|
|
iFile.setLastBlock(truncatedBlock, trimmedStorageInfos);
|
|
|
} else {
|
|
@@ -4396,16 +4401,15 @@ public class FSNamesystem implements Namesystem, FSNamesystemMBean,
|
|
|
|
|
|
if (closeFile) {
|
|
|
if(copyTruncate) {
|
|
|
- src = closeFileCommitBlocks(iFile, truncatedBlock);
|
|
|
+ closeFileCommitBlocks(src, iFile, truncatedBlock);
|
|
|
if(!iFile.isBlockInLatestSnapshot(storedBlock)) {
|
|
|
blockManager.removeBlock(storedBlock);
|
|
|
}
|
|
|
} else {
|
|
|
- src = closeFileCommitBlocks(iFile, storedBlock);
|
|
|
+ closeFileCommitBlocks(src, iFile, storedBlock);
|
|
|
}
|
|
|
} else {
|
|
|
// If this commit does not want to close the file, persist blocks
|
|
|
- src = iFile.getFullPathName();
|
|
|
persistBlocks(src, iFile, false);
|
|
|
}
|
|
|
} finally {
|
|
@@ -4430,10 +4434,9 @@ public class FSNamesystem implements Namesystem, FSNamesystemMBean,
|
|
|
* @throws IOException on error
|
|
|
*/
|
|
|
@VisibleForTesting
|
|
|
- String closeFileCommitBlocks(INodeFile pendingFile, BlockInfoContiguous storedBlock)
|
|
|
- throws IOException {
|
|
|
+ void closeFileCommitBlocks(String src, INodeFile pendingFile,
|
|
|
+ BlockInfoContiguous storedBlock) throws IOException {
|
|
|
final INodesInPath iip = INodesInPath.fromINode(pendingFile);
|
|
|
- final String src = iip.getPath();
|
|
|
|
|
|
// commit the last block and complete it if it has minimum replicas
|
|
|
commitOrCompleteLastBlock(pendingFile, iip, storedBlock);
|
|
@@ -4441,8 +4444,6 @@ public class FSNamesystem implements Namesystem, FSNamesystemMBean,
|
|
|
//remove lease, close file
|
|
|
finalizeINodeFileUnderConstruction(src, pendingFile,
|
|
|
Snapshot.findLatestSnapshot(pendingFile, Snapshot.CURRENT_STATE_ID));
|
|
|
-
|
|
|
- return src;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -6356,6 +6357,7 @@ public class FSNamesystem implements Namesystem, FSNamesystemMBean,
|
|
|
assert hasWriteLock();
|
|
|
// check the vadility of the block and lease holder name
|
|
|
final INodeFile pendingFile = checkUCBlock(oldBlock, clientName);
|
|
|
+ final String src = pendingFile.getFullPathName();
|
|
|
final BlockInfoContiguousUnderConstruction blockinfo
|
|
|
= (BlockInfoContiguousUnderConstruction)pendingFile.getLastBlock();
|
|
|
|
|
@@ -6375,10 +6377,11 @@ public class FSNamesystem implements Namesystem, FSNamesystemMBean,
|
|
|
|
|
|
// find the DatanodeDescriptor objects
|
|
|
final DatanodeStorageInfo[] storages = blockManager.getDatanodeManager()
|
|
|
- .getDatanodeStorageInfos(newNodes, newStorageIDs);
|
|
|
+ .getDatanodeStorageInfos(newNodes, newStorageIDs,
|
|
|
+ "src=%s, oldBlock=%s, newBlock=%s, clientName=%s",
|
|
|
+ src, oldBlock, newBlock, clientName);
|
|
|
blockinfo.setExpectedLocations(storages);
|
|
|
|
|
|
- String src = pendingFile.getFullPathName();
|
|
|
persistBlocks(src, pendingFile, logRetryCache);
|
|
|
}
|
|
|
|