You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zookeeper.apache.org by br...@apache.org on 2009/06/18 22:32:51 UTC

svn commit: r786251 - in /hadoop/zookeeper/trunk: CHANGES.txt src/java/main/org/apache/zookeeper/server/quorum/QuorumCnxManager.java

Author: breed
Date: Thu Jun 18 20:32:51 2009
New Revision: 786251

URL: http://svn.apache.org/viewvc?rev=786251&view=rev
Log:
ZOOKEEPER-427. ZooKeeper server unexpectedly high CPU utilisation

Modified:
    hadoop/zookeeper/trunk/CHANGES.txt
    hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/QuorumCnxManager.java

Modified: hadoop/zookeeper/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/CHANGES.txt?rev=786251&r1=786250&r2=786251&view=diff
==============================================================================
--- hadoop/zookeeper/trunk/CHANGES.txt (original)
+++ hadoop/zookeeper/trunk/CHANGES.txt Thu Jun 18 20:32:51 2009
@@ -124,6 +124,8 @@
   ZOOKEEPER-408. address all findbugs warnings in persistence classes.
 (phunt, mahadev, flavio via mahadev)
 
+  ZOOKEEPER-427. ZooKeeper server unexpectedly high CPU utilisation (Sergey Zhuravlev via breed)
+
 IMPROVEMENTS:
   ZOOKEEPER-308. improve the atomic broadcast performance 3x.
   (breed via mahadev)

Modified: hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/QuorumCnxManager.java
URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/QuorumCnxManager.java?rev=786251&r1=786250&r2=786251&view=diff
==============================================================================
--- hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/QuorumCnxManager.java (original)
+++ hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/QuorumCnxManager.java Thu Jun 18 20:32:51 2009
@@ -527,7 +527,9 @@
                      * message
                      */
                     while (msgLength.hasRemaining()) {
-                        channel.read(msgLength);
+                        if (channel.read(msgLength) < 0) {
+                            throw new IOException("Channel eof");
+                        }
                     }
                     msgLength.position(0);
                     int length = msgLength.getInt();