hadoop-hdfs-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kousuke Saruta (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HDFS-5028) LeaseRenewer throw java.util.ConcurrentModificationException when timeout
Date Mon, 29 Jul 2013 22:55:49 GMT

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

Kousuke Saruta commented on HDFS-5028:
--------------------------------------

Hi zahoyunjiong,
I think your modification may reduce the likelihood of this issue but doesn't address essentially.
Instead, how about synchronizing "dfsclients"?
How do you think?
                
> LeaseRenewer throw java.util.ConcurrentModificationException when timeout
> -------------------------------------------------------------------------
>
>                 Key: HDFS-5028
>                 URL: https://issues.apache.org/jira/browse/HDFS-5028
>             Project: Hadoop HDFS
>          Issue Type: Bug
>    Affects Versions: 1.1.0, 2.0.0-alpha
>            Reporter: zhaoyunjiong
>             Fix For: 1.1.3
>
>         Attachments: HDFS-5028-branch-1.1.patch, HDFS-5028.patch
>
>
> In LeaseRenewer, when renew() throw SocketTimeoutException, c.abort() will remove one
dfsclient from dfsclients. Here will throw a ConcurrentModificationException because dfsclients
changed after the iterator created by "for(DFSClient c : dfsclients)":
> Exception in thread "org.apache.hadoop.hdfs.LeaseRenewer$1@75fa1077" java.util.ConcurrentModificationException
>         at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
>         at java.util.AbstractList$Itr.next(AbstractList.java:343)
>         at org.apache.hadoop.hdfs.LeaseRenewer.run(LeaseRenewer.java:406)
>         at org.apache.hadoop.hdfs.LeaseRenewer.access$600(LeaseRenewer.java:69)
>         at org.apache.hadoop.hdfs.LeaseRenewer$1.run(LeaseRenewer.java:273)
>         at java.lang.Thread.run(Thread.java:662)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message