Details
-
Sub-task
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
Federation Branch
-
None
-
Reviewed
Description
StorageDirectory locks in_use.lock file, when analyzeStorage() method is called during
initialization.
Since BlockPoolStorage uses this method, an in_use.lock file is created and locked under BlockPool directory
<StorageDirectory>/current/bpid/. This lock is not released when datanode shutsdown. Restarting datanode without
formatting it results in datanode failure to acquire in_use.lock and hence failure to restart.
in_use.lock file that currently exists in <StorageDirectory> (at the datanode level) is sufficient to prevent two
instances of datanodes running on the same node. There is no need for such a lock in block pool directories.
Change is needed so that BlockPoolStorage can disable locking when it creates it's StorageDirectory.