Bladeren bron

HADOOP-3010. Fix ConcurrentModificationException in ipc.Server.Responder. (rangadi)

git-svn-id: https://svn.apache.org/repos/asf/hadoop/core/trunk@644423 13f79535-47bb-0310-9956-ffa450edef68
Raghu Angadi 17 jaren geleden
bovenliggende
commit
721f36a679
2 gewijzigde bestanden met toevoegingen van 12 en 7 verwijderingen
  1. 3 0
      CHANGES.txt
  2. 9 7
      src/java/org/apache/hadoop/ipc/Server.java

+ 3 - 0
CHANGES.txt

@@ -443,6 +443,9 @@ Trunk (unreleased changes)
     HADOOP-3118.  Fix Namenode NPE while loading fsimage after a cluster 
     upgrade from older disk format. (dhruba)
 
+    HADOOP-3010. Fix ConcurrentModificationException in ipc.Server.Responder.
+    (rangadi)
+
 Release 0.16.2 - 2008-04-02
 
   BUG FIXES

+ 9 - 7
src/java/org/apache/hadoop/ipc/Server.java

@@ -465,13 +465,15 @@ public abstract class Server {
           // long time, discard them.
           //
           LOG.debug("Checking for old call responses.");
-          iter = writeSelector.keys().iterator();
-          while (iter.hasNext()) {
-            SelectionKey key = iter.next();
-            try {
-              doPurge(key, now);
-            } catch (IOException e) {
-              LOG.warn("Error in purging old calls " + e);
+          synchronized (writeSelector.keys()) {
+            iter = writeSelector.keys().iterator();
+            while (iter.hasNext()) {
+              SelectionKey key = iter.next();
+              try {
+                doPurge(key, now);
+              } catch (IOException e) {
+                LOG.warn("Error in purging old calls " + e);
+              }
             }
           }
         } catch (OutOfMemoryError e) {