[
https://issues.apache.org/jira/browse/HDFS-9194?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Tsz Wo Nicholas Sze resolved HDFS-9194.
---------------------------------------
Resolution: Duplicate
> AlreadyBeingCreatedException ... because pendingCreates is non-null but no
> leases found.
> ----------------------------------------------------------------------------------------
>
> Key: HDFS-9194
> URL: https://issues.apache.org/jira/browse/HDFS-9194
> Project: Hadoop HDFS
> Issue Type: Bug
> Components: namenode
> Reporter: Tsz Wo Nicholas Sze
> Assignee: Tsz Wo Nicholas Sze
>
> There is a possible bug in FSDirectory.addFile causing no leases found for
> under construction files.
> {code}
> //FSDirectory
> INodeFile addFile(String path, PermissionStatus permissions,
> short replication, long preferredBlockSize,
> String clientName, String clientMachine)
> throws FileAlreadyExistsException, QuotaExceededException,
> UnresolvedLinkException, SnapshotAccessControlException, AclException {
> long modTime = now();
> INodeFile newNode = newINodeFile(namesystem.allocateNewInodeId(),
> permissions, modTime, modTime, replication, preferredBlockSize);
> newNode.toUnderConstruction(clientName, clientMachine);
> boolean added = false;
> writeLock();
> try {
> added = addINode(path, newNode);
> } finally {
> writeUnlock();
> }
> ...
> }
> {code}
> - newNode.toUnderConstruction(clientName, clientMachine) adds
> FileUnderConstructionFeature to the INode, i.e. the file becomes an under
> construction file. At this moment, there is no lease for this file yet. The
> lease will be added later in FSNamesystem.startFileInternal(..).
> - It is possible that addINode(path, newNode) adds the inode to the namespace
> tree but throws QuotaExceededException later on when calling
> updateModificationTime. (i.e. addINode -> addLastINode -> addChild ->
> parent.addChild -> updateModificationTime throws QuotaExceededException)
> Then, the newly added uc file is left in namespace but the corresponding
> lease won't be added.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)