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 */