venkata swamybabu budumuru created CLOUDSTACK-3282: ------------------------------------------------------
Summary: [GSLB] Unable to add multiple LB rules to same GSLB rule Key: CLOUDSTACK-3282 URL: https://issues.apache.org/jira/browse/CLOUDSTACK-3282 Project: CloudStack Issue Type: Bug Security Level: Public (Anyone can view this level - this is the default.) Components: Network Controller Affects Versions: 4.2.0 Reporter: venkata swamybabu budumuru Assignee: Murali Reddy Priority: Critical Fix For: 4.2.0 Steps to reproduce: 1. Have latest CS setup with at least 2 advanced zones. 2. Enable each zone with Netscaler with GSLB 3. As a non-ROOT domain user, create a GSLB rule 4. assign one LB rule (using VR) from zone1. 5. assign another LB rule from another zone2. Observations:- (i) second LB rule assignment failed with the following error "Failed to configure GSLB rule in the zone" 013-06-28 21:15:11,570 DEBUG [agent.manager.AgentManagerImpl] (Job-Executor-79:job-116) Details from executing class com.cloud.agent.api.routing.GlobalLoadBalancerConfigCommand: Failed to apply GSLB configuration due to Resource already exists 2013-06-28 21:15:11,570 DEBUG [network.element.NetscalerElement] (Job-Executor-79:job-116) Unable to apply global load balancer rule to the gslb service provider in zone 1 2013-06-28 21:15:11,570 WARN [region.gslb.GlobalLoadBalancingRulesServiceImpl] (Job-Executor-79:job-116) Failed to configure GSLB rul in the zone P[1:200] due to Resource [DataCenter:1] is unreachable: Unable to apply global load balancer rule to the gslb service provider in zone 1 2013-06-28 21:15:11,571 ERROR [cloud.async.AsyncJobManagerImpl] (Job-Executor-79:job-116) Unexpected exception while executing org.apache.cloudstack.api.command.user.region.ha.gslb.AssignToGlobalLoadBalancerRuleCmd com.cloud.utils.exception.CloudRuntimeException: Failed to configure GSLB rul in the zone at org.apache.cloudstack.region.gslb.GlobalLoadBalancingRulesServiceImpl.applyGlobalLoadBalancerRuleConfig(GlobalLoadBalancingRulesServiceImpl.java:652) at org.apache.cloudstack.region.gslb.GlobalLoadBalancingRulesServiceImpl.assignToGlobalLoadBalancerRule(GlobalLoadBalancingRulesServiceImpl.java:263) at org.apache.cloudstack.api.command.user.region.ha.gslb.AssignToGlobalLoadBalancerRuleCmd.execute(AssignToGlobalLoadBalancerRuleCmd.java:106) at com.cloud.api.ApiDispatcher.dispatch(ApiDispatcher.java:155) at com.cloud.async.AsyncJobManagerImpl$1.run(AsyncJobManagerImpl.java:437) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) at java.util.concurrent.FutureTask.run(FutureTask.java:166) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:679) 2013-06-28 21:15:11,572 DEBUG [cloud.async.AsyncJobManagerImpl] (Job-Executor-79:job-116) Complete async job-116, jobStatus: 2, resultCode: 530, result: Error Code: 530 Error text: Failed to configure GSLB rul in the zone 2013-06-28 21:15:11,588 DEBUG [cloud.async.SyncQueueManagerImpl] (Job-Executor-79:job-116) Sync queue (21) is currently empty (ii) Here is the snippet from Zone1 Netscaler which shows what commands failed and resulted in this error. Jun 28 11:46:33 <local0.info> 10.147.44.5 06/28/2013:11:46:33 GMT 0-PPE-0 : UI CMD_EXECUTED 3842 0 : User nsroot - Remote_ip 10.147.59.194 - Command "set gslb service cloud-gslb-service-cloudsite1-10.147.44.66-22 -IPAddress 10.147.44.66 -publicIP 10.147.44.66 -publicPort 22 -cip DISABLED -sitePersistence NONE -maxClient 0 -healthMonitor YES -maxBandwidth 0 -downStateFlush DISABLED -maxAAAUsers 0 0.0.0.0 -monThreshold 0 -appflowLog ENABLED" - Status "Success" Jun 28 11:46:33 <local0.info> 10.147.44.5 06/28/2013:11:46:33 GMT 0-PPE-0 : UI CMD_EXECUTED 3843 0 : User nsroot - Remote_ip 10.147.59.194 - Command "bind gslb vserver cloud-gslb-vserver-hello.xyztelco.com -serviceName cloud-gslb-service-cloudsite1-10.147.44.66-22 -weight 1 -devno 19759104" - Status "ERROR: Resource already exists" Jun 28 11:46:33 <local0.info> 10.147.44.5 06/28/2013:11:46:33 GMT 0-PPE-0 : UI CMD_EXECUTED 3844 0 : User nsroot - Remote_ip 10.147.59.194 - Command "add lb monitor cloud-monitor-10.147.44.66 TCP -resptimeoutThresh 0 -retries 3 -failureRetries 0 -alertRetries 0 -successRetries 1 -IPMapping 0.0.0.0 -state ENABLED -reverse NO -transparent NO -ipTunnel NO -tos NO -secure NO -devno 19791872" - Status "ERROR: Resource already exists" Jun 28 11:46:33 <local0.info> 10.147.44.5 06/28/2013:11:46:33 GMT 0-PPE-0 : UI CMD_EXECUTED 3845 0 : User nsroot - Remote_ip 10.147.59.194 - Command "logout" - Status "Success" Jun 28 11:46:33 <local0.info> 10.147.44.5 06/28/2013:11:46:33 GMT 0-PPE-0 : UI CMD_EXECUTED 3846 0 : User nsroot - Remote_ip 10.147.59.194 - Command "login nsroot "********"" - Status "Success" Jun 28 11:46:33 <local0.info> 10.147.44.5 06/28/2013:11:46:33 GMT 0-PPE-0 : UI CMD_EXECUTED 3847 0 : User nsroot - Remote_ip 10.147.59.194 - Command "show gslb vserver cloud-gslb-vserver-hello.xyztelco.com" - Status "Success" Attaching all the required logs to the bug along with db dump and ns.log -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira