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]> 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] > *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] <[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]> > 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
