You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ma...@apache.org on 2014/11/25 11:09:01 UTC

stratos git commit: Fixed Stratos LB mix up members of different multi-tenant clusters in 10x10 concurrency issue

Repository: stratos
Updated Branches:
  refs/heads/master 5ef2fa8cc -> 8293defc0


Fixed Stratos LB mix up members of different multi-tenant clusters in 10x10 concurrency issue


Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/8293defc
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/8293defc
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/8293defc

Branch: refs/heads/master
Commit: 8293defc07450d7f80d65188ef2ad40b1b93e749
Parents: 5ef2fa8
Author: Manula Thantriwatte <ma...@apache.org>
Authored: Tue Nov 25 10:08:28 2014 +0000
Committer: Manula Thantriwatte <ma...@apache.org>
Committed: Tue Nov 25 10:08:28 2014 +0000

----------------------------------------------------------------------
 .../apache/stratos/load/balancer/RequestDelegator.java    |  8 ++++++--
 .../balancer/endpoint/TenantAwareLoadBalanceEndpoint.java | 10 +++++++---
 .../stratos/manager/utils/CartridgeConfigFileReader.java  |  1 -
 3 files changed, 13 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/8293defc/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/RequestDelegator.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/RequestDelegator.java b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/RequestDelegator.java
index 677c037..d8cb197 100644
--- a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/RequestDelegator.java
+++ b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/RequestDelegator.java
@@ -43,7 +43,7 @@ public class RequestDelegator {
         this.algorithm = algorithm;
     }
 
-    public Member findNextMemberFromHostName(String hostName) {
+    public Member findNextMemberFromHostName(String hostName, String messageId) {
         if (hostName == null)
             return null;
 
@@ -51,11 +51,15 @@ public class RequestDelegator {
 
         Cluster cluster = LoadBalancerContext.getInstance().getHostNameClusterMap().getCluster(hostName);
         if (cluster != null) {
+            if (log.isDebugEnabled()) {
+                log.debug(String.format("Cluster %s identified for request %s", cluster.getClusterId(), messageId));
+            }
             Member member = findNextMemberInCluster(cluster);
             if (member != null) {
                 if (log.isDebugEnabled()) {
                     long endTime = System.currentTimeMillis();
-                    log.debug(String.format("Next member identified in %dms: [service] %s [cluster] %s [member] %s", (endTime - startTime), member.getServiceName(), member.getClusterId(), member.getMemberId()));
+                    log.debug(String.format("Next member identified in %dms: [service] %s [cluster] %s [member] %s [request-id] %s",
+                            (endTime - startTime), member.getServiceName(), member.getClusterId(), member.getMemberId(), messageId));
                 }
             }
             return member;

http://git-wip-us.apache.org/repos/asf/stratos/blob/8293defc/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/endpoint/TenantAwareLoadBalanceEndpoint.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/endpoint/TenantAwareLoadBalanceEndpoint.java b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/endpoint/TenantAwareLoadBalanceEndpoint.java
index 0ed247f..b77cf7c 100644
--- a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/endpoint/TenantAwareLoadBalanceEndpoint.java
+++ b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/endpoint/TenantAwareLoadBalanceEndpoint.java
@@ -106,7 +106,8 @@ public class TenantAwareLoadBalanceEndpoint extends org.apache.synapse.endpoints
                 sessionInformation = dispatcher.getSession(synCtx);
                 if (sessionInformation != null) {
                     if (log.isDebugEnabled()) {
-                        log.debug(String.format("Existing session found: %s", sessionInformation.getId()));
+                        log.debug(String.format("Existing session found: %s for request: %s", sessionInformation.getId(),
+                                synCtx.getMessageID()));
                     }
 
                     currentMember = sessionInformation.getMember();
@@ -225,6 +226,9 @@ public class TenantAwareLoadBalanceEndpoint extends org.apache.synapse.endpoints
 
     private org.apache.axis2.clustering.Member findNextMember(MessageContext synCtx) {
         String targetHost = extractTargetHost(synCtx);
+        if (log.isDebugEnabled()) {
+            log.debug(String.format("Request %s for host %s", synCtx.getMessageID(), targetHost));
+        }
         if (!requestDelegator.isTargetHostValid(targetHost)) {
             throwSynapseException(synCtx, 404, String.format("Unknown host name %s", targetHost));
         }
@@ -240,7 +244,7 @@ public class TenantAwareLoadBalanceEndpoint extends org.apache.synapse.endpoints
 
             if(tenantId == -1) {
                // If there is no tenant involves in the URL, Find next member from host name
-               member = requestDelegator.findNextMemberFromHostName(targetHost);
+                member = requestDelegator.findNextMemberFromHostName(targetHost, synCtx.getMessageID());
             } else if (tenantExists(tenantId)) {
                 // Tenant found, find member from hostname and tenant id
                 member = requestDelegator.findNextMemberFromTenantId(targetHost, tenantId);
@@ -714,7 +718,7 @@ public class TenantAwareLoadBalanceEndpoint extends org.apache.synapse.endpoints
 
         try {
             if (log.isDebugEnabled()) {
-                log.debug(String.format("Sending request to endpoint: %s", to.getAddress()));
+                log.debug(String.format("Sending request %s to endpoint: %s", synCtx.getMessageID(), to.getAddress()));
             }
             endpoint.send(synCtx);
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/8293defc/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/utils/CartridgeConfigFileReader.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/utils/CartridgeConfigFileReader.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/utils/CartridgeConfigFileReader.java
index 0ca8b3a..35b4e48 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/utils/CartridgeConfigFileReader.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/utils/CartridgeConfigFileReader.java
@@ -25,7 +25,6 @@ import java.util.Properties;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.manager.internal.DataHolder;
 import org.wso2.carbon.utils.CarbonUtils;
 import org.wso2.securevault.SecretResolver;
 import org.wso2.securevault.SecretResolverFactory;