You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2009/04/29 04:04:19 UTC

svn commit: r769631 - in /incubator/cassandra/trunk/src/org/apache/cassandra: net/SelectorManager.java service/StorageService.java

Author: jbellis
Date: Wed Apr 29 02:04:18 2009
New Revision: 769631

URL: http://svn.apache.org/viewvc?rev=769631&view=rev
Log:
start SelectorManager after all the selector registration is done, to workaround a bug in some linux environments.  (Debian etch under vmware player or under EC2 seem to exhibit this problem consistently.)  the bug symptom is, the selector register hangs indefinitely even though the select() call is only for 100ms (after which it should stop blocking and let the register through).
patch by jbellis; reviewed by Eric Evans for #97

Modified:
    incubator/cassandra/trunk/src/org/apache/cassandra/net/SelectorManager.java
    incubator/cassandra/trunk/src/org/apache/cassandra/service/StorageService.java

Modified: incubator/cassandra/trunk/src/org/apache/cassandra/net/SelectorManager.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/org/apache/cassandra/net/SelectorManager.java?rev=769631&r1=769630&r2=769631&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/org/apache/cassandra/net/SelectorManager.java (original)
+++ incubator/cassandra/trunk/src/org/apache/cassandra/net/SelectorManager.java Wed Apr 29 02:04:18 2009
@@ -52,7 +52,6 @@
         }
 
         setDaemon(false);
-        start();
     }
 
     /**

Modified: incubator/cassandra/trunk/src/org/apache/cassandra/service/StorageService.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/org/apache/cassandra/service/StorageService.java?rev=769631&r1=769630&r2=769631&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/org/apache/cassandra/service/StorageService.java (original)
+++ incubator/cassandra/trunk/src/org/apache/cassandra/service/StorageService.java Wed Apr 29 02:04:18 2009
@@ -82,8 +82,9 @@
 import org.apache.cassandra.net.IVerbHandler;
 import org.apache.cassandra.net.Message;
 import org.apache.cassandra.net.MessagingService;
-import org.apache.cassandra.net.io.StreamContextManager;
+import org.apache.cassandra.net.SelectorManager;
 import org.apache.cassandra.net.http.HttpConnection;
+import org.apache.cassandra.net.io.StreamContextManager;
 import org.apache.cassandra.locator.IEndPointSnitch;
 import org.apache.cassandra.locator.TokenMetadata;
 import org.apache.cassandra.locator.IReplicaPlacementStrategy;
@@ -427,11 +428,8 @@
     
     public void start() throws IOException
     {
-        /* Start the DB */
-        storageMetadata_ = DBManager.instance().start();  
-        /* Set up TCP endpoint */
+        storageMetadata_ = DBManager.instance().start();
         tcpAddr_ = new EndPoint(DatabaseDescriptor.getStoragePort());
-        /* Set up UDP endpoint */
         udpAddr_ = new EndPoint(DatabaseDescriptor.getControlPort());
         /* Listen for application messages */
         MessagingService.getMessagingInstance().listen(tcpAddr_, false);
@@ -439,6 +437,10 @@
         MessagingService.getMessagingInstance().listenUDP(udpAddr_);
         /* Listen for HTTP messages */
         MessagingService.getMessagingInstance().listen( new EndPoint(DatabaseDescriptor.getHttpPort() ), true );
+
+        SelectorManager.getSelectorManager().start();
+        SelectorManager.getUdpSelectorManager().start();
+
         /* start the analytics context package */
         AnalyticsContext.instance().start();
         /* starts a load timer thread */