[ https://issues.apache.org/jira/browse/HDFS-119?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13253022#comment-13253022 ]
Suresh Srinivas commented on HDFS-119: -------------------------------------- +1 for the patch. > logSync() may block NameNode forever. > ------------------------------------- > > Key: HDFS-119 > URL: https://issues.apache.org/jira/browse/HDFS-119 > Project: Hadoop HDFS > Issue Type: Bug > Reporter: Konstantin Shvachko > Assignee: Suresh Srinivas > Fix For: 0.21.0 > > Attachments: HDFS-119-branch-1.0.patch, HDFS-119.patch, HDFS-119.patch > > > # {{FSEditLog.logSync()}} first waits until {{isSyncRunning}} is false and > then performs syncing to file streams by calling > {{EditLogOutputStream.flush()}}. > If an exception is thrown after {{isSyncRunning}} is set to {{true}} all > threads will always wait on this condition. > An {{IOException}} may be thrown by {{EditLogOutputStream.setReadyToFlush()}} > or a {{RuntimeException}} may be thrown by {{EditLogOutputStream.flush()}} or > by {{processIOError()}}. > # The loop that calls {{eStream.flush()}} for multiple > {{EditLogOutputStream}}-s is not synchronized, which means that another > thread may encounter an error and modify {{editStreams}} by say calling > {{processIOError()}}. Then the iterating process in {{logSync()}} will break > with {{IndexOutOfBoundException}}. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira