Ok, never mind than From: Imesh Gunaratne [mailto:[email protected]] Sent: Friday, March 27, 2015 6:21 PM To: dev Subject: Re: Question (Issue ?): Stratos 4.1 how to describe startup order between 3 cartridges
Hi Martin, Thanks for the quick response on this! I cannot see any problems in the dependency definition, anyway I will investigate this further and get back to you soon. Thanks On Sat, Mar 28, 2015 at 4:43 AM, Martin Eppel (meppel) <[email protected]<mailto:[email protected]>> wrote: Hi Imesh, Attached are the stratos artefacts for the issue described below (cartridges c1, c2, c3 , application, cartridge-group). Looking at the startupOrder in the cartridge group I am not sure that this is proper stratos way to define multiple dependencies in stratos (I also posted it right below) ? Btw, I couldn’t find a stratos sample which defines dependencies between more than 2 cartridges ? Thanks Martin { "name": "subscription-c1-c2-c3", "dependencies": { "terminationBehaviour": "terminate-none", "startupOrders": [ "cartridge.c3-0x0,cartridge.c2-0x0", "cartridge.c2-0x0,cartridge.c1-0x0" ] }, "cartridges": [ "c1", "c2", "c3" ], "groups": [] } From: Martin Eppel (meppel) Sent: Friday, March 27, 2015 9:57 AM To: [email protected]<mailto:[email protected]> Subject: RE: Question (Issue ?): Stratos 4.1 how to describe startup order between 3 cartridges Hi Imesh, Thanks for your reply, it is interesting I had one better run where I didn’t see the exception and one VM actually starting up (until it gets stuck in INITIALIZED state). On a subsequent run however I did encounter the same issue again: Here are the artefacts: Application: { "applicationId": "subscription-c1-c2-c3", "multiTenant": false, "alias": "subscription-c1-c2-c3", "status": "Deployed", "components": { "groups": [ { "name": "subscription-c1-c2-c3", "alias": "subscription-c1-c2-c3", "groupMinInstances": 1, "groupMaxInstances": 1, "isGroupScalingEnabled": false, "cartridges": [ { "type": "c1", "cartridgeMin": 1, "cartridgeMax": 10000000, "subscribableInfo": { "alias": "c1-0x0", "deploymentPolicy": "static-1", "autoscalingPolicy": "economyPolicy", "maxMembers": 0, "minMembers": 0, "artifactRepository": { "alias": "c1-0x0", "privateRepo": true, "repoUrl": "http://octl.qmog.cisco.com:10080/git/default.git", "repoUsername": "user", "repoPassword": "c-policy" } } }, { "type": "c2", "cartridgeMin": 1, "cartridgeMax": 10000000, "subscribableInfo": { "alias": "c2-0x0", "deploymentPolicy": "static-1", "autoscalingPolicy": "economyPolicy", "maxMembers": 0, "minMembers": 0, "artifactRepository": { "alias": "c2-0x0", "privateRepo": true, "repoUrl": "http://octl.qmog.cisco.com:10080/git/default.git", "repoUsername": "user", "repoPassword": "c-policy" } } }, { "type": "c3", "cartridgeMin": 1, "cartridgeMax": 10000000, "subscribableInfo": { "alias": "c3-0x0", "deploymentPolicy": "static-1", "autoscalingPolicy": "economyPolicy", "maxMembers": 0, "minMembers": 0, "artifactRepository": { "alias": "c3-0x0", "privateRepo": true, "repoUrl": "http://octl.qmog.cisco.com:10080/git/default.git", "repoUsername": "user", "repoPassword": "c-policy" } } } ] } ] } } Cartridge group: { "name": "subscription-c1-c2-c3", "cartridges": [ "c1", "c2", "c3" ], "groupScalingEnabled": false, "dependencies": { "startupOrders": [ "cartridge.c3-0x0,cartridge.c2-0x0", "cartridge.c2-0x0,cartridge.c1-0x0" ], "terminationBehaviour": "terminate-none" } } Exception: TID: [0] [STRATOS] [2015-03-27 16:50:05,601] INFO {org.apache.stratos.autoscaler.util.AutoscalerUtil} - Monitor started successfully: [application] subscription-c1-c2-c3 [dependents] subscription-c1-c2-c3 [startup-time] 0 seconds TID: [0] [STRATOS] [2015-03-27 16:50:05,604] INFO {org.apache.stratos.autoscaler.applications.dependency.DependencyBuilder} - Building dependency tree: [application-id] null [component] subscription-c1-c2-c3 TID: [0] [STRATOS] [2015-03-27 16:50:05,605] INFO {org.apache.stratos.autoscaler.applications.dependency.DependencyBuilder} - Setting termination behaviour: [application-id] null [component] subscription-c1-c2-c3 TID: [0] [STRATOS] [2015-03-27 16:50:05,605] INFO {org.apache.stratos.autoscaler.applications.dependency.DependencyBuilder} - Processing startup orders: [application-id] null [component] subscription-c1-c2-c3 TID: [0] [STRATOS] [2015-03-27 16:50:05,605] WARN {org.apache.stratos.autoscaler.monitor.component.ParentComponentMonitor} - Monitor creation failed: [type] group [component] subscription-c1-c2-c3 org.apache.stratos.autoscaler.exception.application.DependencyBuilderException: Startup order is not consistent. It contains the group/cluster which has been used more than one in another startup order at org.apache.stratos.autoscaler.applications.dependency.DependencyBuilder.buildDependency(DependencyBuilder.java:134) at org.apache.stratos.autoscaler.monitor.component.ParentComponentMonitor.<init>(ParentComponentMonitor.java:104) at org.apache.stratos.autoscaler.monitor.component.GroupMonitor.<init>(GroupMonitor.java:90) at org.apache.stratos.autoscaler.monitor.MonitorFactory.getGroupMonitor(MonitorFactory.java:129) at org.apache.stratos.autoscaler.monitor.MonitorFactory.getMonitor(MonitorFactory.java:81) at org.apache.stratos.autoscaler.monitor.component.ParentComponentMonitor$MonitorAdder.run(ParentComponentMonitor.java:789) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) at java.util.concurrent.FutureTask.run(FutureTask.java:262) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) TID: [0] [STRATOS] [2015-03-27 16:50:05,606] ERROR {org.apache.stratos.autoscaler.monitor.component.ParentComponentMonitor} - Monitor creation failed even after retrying for 5 times: [type] group [component] From: Imesh Gunaratne [mailto:[email protected]] Sent: Friday, March 27, 2015 4:43 AM To: dev Subject: Re: Question (Issue ?): Stratos 4.1 how to describe startup order between 3 cartridges Hi Martin, Have you used the same cartridge aliases found in cartridge group in the application definition? I guess they are different. Is it possible for you to share the application artifact? "startupOrders": [ "cartridge.c3-0x0,cartridge.c2-0x0", "cartridge.c2-0x0,cartridge.c1-0x0" ], Thanks On Fri, Mar 27, 2015 at 9:53 AM, Martin Eppel (meppel) <[email protected]<mailto:[email protected]>> wrote: Hi, I am trying to define a dependency between 3 cartridges c1, c2, and c3. C3 should come up first (no dependency), c2 when c3 is active and c1 when c2 is active. Below is my cartridge group definition: { "name": "subscription-c1-c2-c3", "cartridges": [ "c1", "c2", "c3" ], "groupScalingEnabled": false, "dependencies": { "startupOrders": [ "cartridge.c3-0x0,cartridge.c2-0x0", "cartridge.c2-0x0,cartridge.c1-0x0" ], "terminationBehaviour": "terminate-none" } } However, if I deploy it I get the following exception and no instance is started: TID: [0] [STRATOS] [2015-03-27 04:11:48,025] INFO {org.apache.stratos.autoscaler.monitor.component.ParentComponentMonitor} - Monitor scheduled: [type] group [component] subscription-c1-c2-c3 TID: [0] [STRATOS] [2015-03-27 04:11:48,026] INFO {org.apache.stratos.autoscaler.monitor.component.ParentComponentMonitor} - Starting monitor: [type] group [component] subscription-c1-c2-c3 TID: [0] [STRATOS] [2015-03-27 04:11:48,031] INFO {org.apache.stratos.autoscaler.util.AutoscalerUtil} - Monitor started successfully: [application] subscription-c1-c2-c3 [dependents] subscription-c1-c2-c3 [startup-time] 0 seconds TID: [0] [STRATOS] [2015-03-27 04:11:48,038] INFO {org.apache.stratos.autoscaler.applications.dependency.DependencyBuilder} - Building dependency tree: [application-id] null [component] subscription-c1-c2-c3 TID: [0] [STRATOS] [2015-03-27 04:11:48,039] INFO {org.apache.stratos.autoscaler.applications.dependency.DependencyBuilder} - Setting termination behaviour: [application-id] null [component] subscription-c1-c2-c3 TID: [0] [STRATOS] [2015-03-27 04:11:48,039] INFO {org.apache.stratos.autoscaler.applications.dependency.DependencyBuilder} - Processing startup orders: [application-id] null [component] subscription-c1-c2-c3 TID: [0] [STRATOS] [2015-03-27 04:11:48,040] WARN {org.apache.stratos.autoscaler.monitor.component.ParentComponentMonitor} - Monitor creation failed: [type] group [component] subscription-c1-c2-c3 org.apache.stratos.autoscaler.exception.application.DependencyBuilderException: Startup order is not consistent. It contains the group/cluster which has been used more than one in another startup order at org.apache.stratos.autoscaler.applications.dependency.DependencyBuilder.buildDependency(DependencyBuilder.java:134) at org.apache.stratos.autoscaler.monitor.component.ParentComponentMonitor.<init>(ParentComponentMonitor.java:104) at org.apache.stratos.autoscaler.monitor.component.GroupMonitor.<init>(GroupMonitor.java:90) at org.apache.stratos.autoscaler.monitor.MonitorFactory.getGroupMonitor(MonitorFactory.java:129) at org.apache.stratos.autoscaler.monitor.MonitorFactory.getMonitor(MonitorFactory.java:81) at org.apache.stratos.autoscaler.monitor.component.ParentComponentMonitor$MonitorAdder.run(ParentComponentMonitor.java:789) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) at java.util.concurrent.FutureTask.run(FutureTask.java:262) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) TID: [0] [STRATOS] [2015-03-27 04:11:48,040] ERROR {org.apache.stratos.autoscaler.monitor.component.ParentComponentMonitor} - Monitor creation failed even after retrying for 5 times: [type] group [component] Unfortunately, the examples don’t show more than 2 dependent cartridges, what is the proper way to define this ? Just in case, I attached the full log to the email Thanks Martin -- Imesh Gunaratne Technical Lead, WSO2 Committer & PMC Member, Apache Stratos -- Imesh Gunaratne Technical Lead, WSO2 Committer & PMC Member, Apache Stratos
