[
https://issues.apache.org/jira/browse/HDFS-988?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Eli Collins updated HDFS-988:
-----------------------------
Attachment: hdfs-988-3.patch
Updated patch attached. Merges Matt's HDFS-988_fix_synchs.patch with my earlier
hdfs-988-2.patch (based on Todd's patch).
* No longer throw a SafeModeException in setTimes
* Uses rw lock in getNamespaceInfo, setQuota, renewLease, nextGenerationStamp.
* Use the same technique (get a strong ref to this.safeMode) from isInSafeMode,
isInStartupSafeMode, and isPopulatingReplQueues in checkSafeMode.
Also, I noticed computeDatanodeWork and heartbeatCheck check isInSafeMode w/o
holding the lock, that's no kosher as well right? Not great to hold the lock
here since both of these methods can be time-intensive, but it seems racy not
to.
I'm working on a test.
> saveNamespace can corrupt edits log, apparently due to race conditions
> ----------------------------------------------------------------------
>
> Key: HDFS-988
> URL: https://issues.apache.org/jira/browse/HDFS-988
> Project: Hadoop HDFS
> Issue Type: Bug
> Components: name-node
> Affects Versions: 0.20-append, 0.21.0, 0.22.0
> Reporter: dhruba borthakur
> Assignee: Eli Collins
> Priority: Blocker
> Fix For: 0.20-append, 0.22.0
>
> Attachments: HDFS-988_fix_synchs.patch, hdfs-988-2.patch,
> hdfs-988-3.patch, hdfs-988.txt, saveNamespace.txt,
> saveNamespace_20-append.patch
>
>
> The adminstrator puts the namenode is safemode and then issues the
> savenamespace command. This can corrupt the edits log. The problem is that
> when the NN enters safemode, there could still be pending logSycs occuring
> from other threads. Now, the saveNamespace command, when executed, would save
> a edits log with partial writes. I have seen this happen on 0.20.
> https://issues.apache.org/jira/browse/HDFS-909?focusedCommentId=12828853&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12828853
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira