Uploaded image for project: 'Hadoop HDFS'
  1. Hadoop HDFS
  2. HDFS-5028

LeaseRenewer throw java.util.ConcurrentModificationException when timeout

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 1.1.0, 2.0.0-alpha
    • Fix Version/s: 1.1.3, 0.23.10, 2.1.1-beta
    • Component/s: None
    • Labels:
      None
    • Hadoop Flags:
      Reviewed

      Description

      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)

        Attachments

        1. HDFS-5028-branch-1.1.patch
          0.7 kB
          yunjiong zhao
        2. HDFS-5028.patch
          0.8 kB
          yunjiong zhao

          Activity

            People

            • Assignee:
              zhaoyunjiong yunjiong zhao
              Reporter:
              zhaoyunjiong yunjiong zhao
            • Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: