[
https://issues.apache.org/jira/browse/HADOOP-2413?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Konstantin Shvachko updated HADOOP-2413:
----------------------------------------
Attachment: unStatic.patch
Here is a patch, which finally removes the static
{{FSNamesystem.fsNamesystemObject}} field and the respective method to access
it.
The trick was to eliminate static methods like {{FSEditsLog.loadFSEdits()}}.
I also had to change {{TestEditLog}}, which was starting {{MiniDFSCluster}}
only to obtain name directories and then worked directly with {{FSImage}}. Now
it uses {{FSImage}} through teh {{cluster}} variable.
I removed {{FSDirectory.namesystem}} member because namesystem is accessible
via {{FSImage}} now.
> Is FSNamesystem.fsNamesystemObject unique?
> ------------------------------------------
>
> Key: HADOOP-2413
> URL: https://issues.apache.org/jira/browse/HADOOP-2413
> Project: Hadoop Core
> Issue Type: Bug
> Components: dfs
> Affects Versions: 0.15.1
> Reporter: Tsz Wo (Nicholas), SZE
> Priority: Minor
> Fix For: 0.21.0
>
> Attachments: unStatic.patch
>
>
> FSNamesystem is unique in almost all cases but it is not universally true.
> So we should either remove the static variable
> FSNamesystem.fsNamesystemObject or make it final (so that it cannot be
> overwritten).
> When I am working on HADOOP-1298, I use the convenient static method
> FSNamesystem.getFSNamesystem() to get "the" FSNamesystem object. However, it
> keeps failing on TestCheckpoint. Why? It is because TestCheckpoint uses
> NameNode and SecondaryNameNode. Both of them are creating FSNamesystem. So
> FSNamesystem.fsNamesystemObject does not remain constant. The kind of bug is
> hard to be detected.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.