[jira] [Commented] (HDFS-119) logSync() may block NameNode forever.

2012-04-24 Thread Tsz Wo (Nicholas), SZE (JIRA)

[ 
https://issues.apache.org/jira/browse/HDFS-119?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13260859#comment-13260859
 ] 

Tsz Wo (Nicholas), SZE commented on HDFS-119:
-

Hi Brandon, please run test-patch and all the unit tests on your patch.

> logSync() may block NameNode forever.
> -
>
> Key: HDFS-119
> URL: https://issues.apache.org/jira/browse/HDFS-119
> Project: Hadoop HDFS
>  Issue Type: Bug
>  Components: name-node
>Reporter: Konstantin Shvachko
>Assignee: Suresh Srinivas
> Fix For: 0.21.0, 1.1.0
>
> Attachments: HDFS-119-branch-1.0.patch, HDFS-119-branch-1.0.patch, 
> HDFS-119.patch, HDFS-119.patch, HDFS119.branch1.0.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




[jira] [Commented] (HDFS-119) logSync() may block NameNode forever.

2012-04-23 Thread Konstantin Shvachko (JIRA)

[ 
https://issues.apache.org/jira/browse/HDFS-119?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13260101#comment-13260101
 ] 

Konstantin Shvachko commented on HDFS-119:
--

+1 patch for branch1.0 looks good, Brandon.

> logSync() may block NameNode forever.
> -
>
> Key: HDFS-119
> URL: https://issues.apache.org/jira/browse/HDFS-119
> Project: Hadoop HDFS
>  Issue Type: Bug
>  Components: name-node
>Reporter: Konstantin Shvachko
>Assignee: Suresh Srinivas
> Fix For: 0.21.0, 1.1.0
>
> Attachments: HDFS-119-branch-1.0.patch, HDFS-119-branch-1.0.patch, 
> HDFS-119.patch, HDFS-119.patch, HDFS119.branch1.0.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




[jira] [Commented] (HDFS-119) logSync() may block NameNode forever.

2012-04-13 Thread Konstantin Shvachko (Commented) (JIRA)

[ 
https://issues.apache.org/jira/browse/HDFS-119?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13253229#comment-13253229
 ] 

Konstantin Shvachko commented on HDFS-119:
--

Committed to branch 1.

> 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-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




[jira] [Commented] (HDFS-119) logSync() may block NameNode forever.

2012-04-12 Thread Suresh Srinivas (Commented) (JIRA)

[ 
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




[jira] [Commented] (HDFS-119) logSync() may block NameNode forever.

2012-04-12 Thread Brandon Li (Commented) (JIRA)

[ 
https://issues.apache.org/jira/browse/HDFS-119?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13252540#comment-13252540
 ] 

Brandon Li commented on HDFS-119:
-

This race could be between logSync requests, or between logSync and any place 
where a storage directory may be removed, e.g., during checkpointing. HDFS-3264 
has been filed for this issue.

> 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




[jira] [Commented] (HDFS-119) logSync() may block NameNode forever.

2012-04-12 Thread Konstantin Shvachko (Commented) (JIRA)

[ 
https://issues.apache.org/jira/browse/HDFS-119?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13252259#comment-13252259
 ] 

Konstantin Shvachko commented on HDFS-119:
--

> (nit: the indent seems not aligned)

Yes, I thought that way it is easier to see what the actual changes are. 
Indentation can be corrected as style change just before the commit.

> removeEditsStreamsAndStorageDirs() could unneceissarily invoke fatalExit()

Good point. Even though it's a theoretical possibility, because 
removeEditsStreamsAndStorageDirs() is called only in logSync(), when 
{{isSyncRunning == true}}, so everybody else should be waiting for sync to 
complete. But people tend to change code and use methods already defined, so 
let's file a jira.

> 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




[jira] [Commented] (HDFS-119) logSync() may block NameNode forever.

2012-04-11 Thread Brandon Li (Commented) (JIRA)

[ 
https://issues.apache.org/jira/browse/HDFS-119?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13251994#comment-13251994
 ] 

Brandon Li commented on HDFS-119:
-

Hi Konst,

The patch looks good to me. (nit: the indent seems not aligned) 

Thanks,
Brandon

P.S. I've got one question that is remotely related with this issue: method 
removeEditsStreamsAndStorageDirs() could unneceissarily invoke fatalExit() if 
another thread removes one error editStream before current thread does? 



> 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




[jira] [Commented] (HDFS-119) logSync() may block NameNode forever.

2012-04-10 Thread Konstantin Shvachko (Commented) (JIRA)

[ 
https://issues.apache.org/jira/browse/HDFS-119?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13250965#comment-13250965
 ] 

Konstantin Shvachko commented on HDFS-119:
--

Tested this with a small partition setup on a drive, and with a small flash 
drive used as the second storage directory. I ran {{NNThroughputBenchmark –op 
create}} so that edits fill up the small partition and NN excludes it from 
storage directories.

> 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




[jira] [Commented] (HDFS-119) logSync() may block NameNode forever.

2012-04-06 Thread Konstantin Shvachko (Commented) (JIRA)

[ 
https://issues.apache.org/jira/browse/HDFS-119?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13249107#comment-13249107
 ] 

Konstantin Shvachko commented on HDFS-119:
--

This has never been ported to 0.20. And I have seen NN stuck in wait() on all 
threads, when one of the drives got full.
{code}
2012-04-05 05:25:52,817 ERROR 
org.apache.hadoop.hdfs.server.namenode.FSNamesystem: Unable to sync edit log. 
Fatal Error.
2012-04-05 05:25:52,818 INFO org.apache.hadoop.hdfs.server.common.Storage:  
removing /name/3
2012-04-05 05:25:53,016 INFO org.apache.hadoop.ipc.Server: IPC Server handler 
108 on 8020, call create(/myDir/myFile, rwxr-xr-x, 
DFSClient_attempt_201204032140_3909_r_000891_0, true, 3, 134217728) from 
aaa.bbb.ccc.ddd:12345: error: java.io.IOException: 
java.lang.IndexOutOfBoundsException: Index: 2, Size: 2
java.io.IOException: java.lang.IndexOutOfBoundsException: Index: 2, Size: 2
at java.util.ArrayList.RangeCheck(ArrayList.java:547)
at java.util.ArrayList.get(ArrayList.java:322)
at 
org.apache.hadoop.hdfs.server.namenode.FSEditLog.logSync(FSEditLog.java:961)
at 
org.apache.hadoop.hdfs.server.namenode.FSNamesystem.startFile(FSNamesystem.java:1123)
at 
org.apache.hadoop.hdfs.server.namenode.NameNode.create(NameNode.java:551)
at sun.reflect.GeneratedMethodAccessor8.invoke(Unknown Source)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:524)
at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1386)
at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1382)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:396)
at 
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1059)
at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1380)
{code}
Looks like a critical bug to me.

> 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.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




[jira] Commented: (HDFS-119) logSync() may block NameNode forever.

2009-08-03 Thread Suresh Srinivas (JIRA)

[ 
https://issues.apache.org/jira/browse/HDFS-119?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12738715#action_12738715
 ] 

Suresh Srinivas commented on HDFS-119:
--

The patch could not be applied because it was already committed before hudson 
ran the test. The hudson failure can be ignored.

> 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.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.
-
You can reply to this email to add a comment to the issue online.



[jira] Commented: (HDFS-119) logSync() may block NameNode forever.

2009-07-31 Thread Hadoop QA (JIRA)

[ 
https://issues.apache.org/jira/browse/HDFS-119?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12737811#action_12737811
 ] 

Hadoop QA commented on HDFS-119:


-1 overall.  Here are the results of testing the latest attachment 
  http://issues.apache.org/jira/secure/attachment/12414931/HDFS-119.patch
  against trunk revision 799769.

+1 @author.  The patch does not contain any @author tags.

-1 tests included.  The patch doesn't appear to include any new or modified 
tests.
Please justify why no new tests are needed for this 
patch.
Also please list what manual steps were performed to 
verify this patch.

-1 patch.  The patch command could not apply the patch.

Console output: 
http://hudson.zones.apache.org/hudson/job/Hdfs-Patch-vesta.apache.org/39/console

This message is automatically generated.

> 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.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.
-
You can reply to this email to add a comment to the issue online.



[jira] Commented: (HDFS-119) logSync() may block NameNode forever.

2009-07-31 Thread Hudson (JIRA)

[ 
https://issues.apache.org/jira/browse/HDFS-119?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12737684#action_12737684
 ] 

Hudson commented on HDFS-119:
-

Integrated in Hadoop-Hdfs-trunk #35 (See 
[http://hudson.zones.apache.org/hudson/job/Hadoop-Hdfs-trunk/35/])
. Fix a bug in logSync(), which causes NameNode block forever. Contributed 
by Suresh Srinivas.


> 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.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.
-
You can reply to this email to add a comment to the issue online.



[jira] Commented: (HDFS-119) logSync() may block NameNode forever.

2009-07-28 Thread Konstantin Shvachko (JIRA)

[ 
https://issues.apache.org/jira/browse/HDFS-119?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12736404#action_12736404
 ] 

Konstantin Shvachko commented on HDFS-119:
--

# You do not need to enclose {{processIOError()}} in synchronized section, 
because it is already synchronized.
# {{getEditsStream()}} is declared public. Could you please make it package 
private.
# could you please do the same for {{getStorage()}}.
# {{listEditsStreams()}} is not used anywhere. Can we just remove it instead of 
synchronizing.

> 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
> Attachments: 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.
-
You can reply to this email to add a comment to the issue online.



[jira] Commented: (HDFS-119) logSync() may block NameNode forever.

2009-07-27 Thread Suresh Srinivas (JIRA)

[ 
https://issues.apache.org/jira/browse/HDFS-119?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12735819#action_12735819
 ] 

Suresh Srinivas commented on HDFS-119:
--

While running junit tests, the following tests fail, which are unrelated to 
this patch:
org.apache.hadoop.hdfs.TestDFSShell
org.apache.hadoop.hdfs.TestHDFSServerPorts
org.apache.hadoop.hdfs.server.namenode.TestStartup
 

> 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
> Attachments: 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.
-
You can reply to this email to add a comment to the issue online.