Hi Akila,

On Sun, Dec 6, 2015 at 10:26 AM, Akila Ravihansa Perera <raviha...@wso2.com>
wrote:

> Hi Isuru,
>
> While I agree that it is hard to handle scenarios like this in Stratos
> given the current architecture and design, I believe pitfalls like this
> could end up being a huge overhead for its users. Not only they would have
> to maintain a PaaS but they will also have to monitor the logs or IaaS
> level dashboard and manually kill instances whenever Stratos fails to do
> so? Perhaps we need to rethink on the whole architecture?
>
IMHO we need to consider the probability of this happening; for an example,
in this case, whether users will try to deploy an application and undeploy
it again right at the next moment. Even in such cases, if we leave a more
meaningful log it should be enough, and Imesh mentioned..

>
> As a short term solutions, perhaps we could wait for a certain amount of
> time until the member is initialized in the member termination flow.
>
> +1 to go for 4.1.5-rc3.
>
> Thanks.
>
+1 for 4.1.5-RC3.

>
> On Sun, Dec 6, 2015 at 9:45 AM, Imesh Gunaratne <im...@apache.org> wrote:
>
>> Yes I agree with Isuru, however we should be able to raise a more
>> meaningful error message in a such situation. If an instance has not
>> initialized at the time the termination call is made, we should be able to
>> tell that to the end user clearly.
>>
>> [2015-12-06 00:29:51,337]  WARN
>> {org.apache.stratos.common.concurrent.locks.ReadWriteLock} -  System
>> warning! Trying to release a lock which has not been taken by the same
>> thread: [lock-name] topology-manager [thread-id] 214 [thread-name]
>> http-nio-9443-exec-17
>>
>> Regarding the above warning message, we added it purposely to track
>> situations where threads try to release locks while they have not been
>> acquired by the same thread. If this happens there is a slight possibility
>> to some functionality to not work properly.
>>
>> If we are to list down the issues we identified in this release candidate:
>>
>>    - SNAPSHOT versions available in docker files
>>    - Thrift client configuration file not being up to date in load
>>    balancer extensions
>>    - CEP extension distribution issue
>>    - A validation to handle member termination logic when the given
>>    member has not initiatlized
>>    - doap_Stratos.rdf file was not up to date with release versions
>>
>> Considering all of the above +1 to cancel this vote and go for 4.1.5-rc3.
>>
>> Thanks
>>
>> On Sun, Dec 6, 2015 at 9:16 AM, Isuru Haththotuwa <isu...@apache.org>
>> wrote:
>>
>>> On Sun, Dec 6, 2015 at 12:37 AM, Akila Ravihansa Perera <
>>> raviha...@wso2.com> wrote:
>>>
>>>> I tried to deploy an application on EC2 and immediately undeployed it
>>>> which caused the following exception. Also the EC2 instance did not get
>>>> terminated. Noticed the following warning in the log;
>>>>
>>>> [2015-12-06 00:29:51,337]  WARN
>>>> {org.apache.stratos.common.concurrent.locks.ReadWriteLock} -  System
>>>> warning! Trying to release a lock which has not been taken by the same
>>>> thread: [lock-name] topology-manager [thread-id] 214 [thread-name]
>>>> http-nio-9443-exec-17
>>>>
>>>>
>>>>
>>>>
>>>> [2015-12-06 00:29:51,309]  INFO
>>>> {org.apache.stratos.autoscaler.client.AutoscalerCloudControllerClient} -
>>>>  Terminating instance via cloud controller: [member]
>>>> single-cartridge-app-ec2.my-php-app-ec2.php-ec2.domain5545861a-0a1b-4532-830e-1c9beb2d8545
>>>> [2015-12-06 00:29:51,313] ERROR
>>>> {org.apache.stratos.cloud.controller.services.impl.CloudControllerServiceImpl}
>>>> -  Could not terminate instance, instance id is blank: [member-id]
>>>> single-cartridge-app-ec2.my-php-app-ec2.php-ec2.domain5545861a-0a1b-4532-830e-1c9beb2d8545
>>>> , removing member from topology...
>>>> [2015-12-06 00:29:51,319]  INFO
>>>> {org.apache.stratos.cloud.controller.messaging.publisher.TopologyEventPublisher}
>>>> -  Publishing member terminated event: [service-name] php-ec2 [cluster-id]
>>>> single-cartridge-app-ec2.my-php-app-ec2.php-ec2.domain
>>>> [cluster-instance-id] single-cartridge-app-ec2-1 [member-id]
>>>> single-cartridge-app-ec2.my-php-app-ec2.php-ec2.domain5545861a-0a1b-4532-830e-1c9beb2d8545
>>>> [network-partition-id] network-partition-ec2 [partition-id] partition-1
>>>> [group-id] null
>>>> [2015-12-06 00:29:51,326]  INFO
>>>> {org.apache.stratos.messaging.message.processor.topology.MemberTerminatedMessageProcessor}
>>>> -  Member terminated: [service] php-ec2 [cluster]
>>>> single-cartridge-app-ec2.my-php-app-ec2.php-ec2.domain [member]
>>>> single-cartridge-app-ec2.my-php-app-ec2.php-ec2.domain5545861a-0a1b-4532-830e-1c9beb2d8545
>>>> [2015-12-06 00:29:51,326]  WARN
>>>> {org.apache.stratos.autoscaler.monitor.cluster.ClusterMonitor} -  Obsolete
>>>> member has either been terminated or its obsolete time out has expired and
>>>> it is removed from obsolete members list:
>>>> single-cartridge-app-ec2.my-php-app-ec2.php-ec2.domain5545861a-0a1b-4532-830e-1c9beb2d8545
>>>> [2015-12-06 00:29:51,327]  INFO
>>>> {org.apache.stratos.autoscaler.status.processor.cluster.ClusterStatusTerminatedProcessor}
>>>> -  Publishing Cluster terminated event for [application]:
>>>> single-cartridge-app-ec2 [cluster]:
>>>> single-cartridge-app-ec2.my-php-app-ec2.php-ec2.domain
>>>> [2015-12-06 00:29:51,335]  INFO
>>>> {org.apache.stratos.cloud.controller.messaging.topology.TopologyBuilder} -
>>>>  Cluster Terminated adding status started for and removing the cluster
>>>> instancesingle-cartridge-app-ec2.my-php-app-ec2.php-ec2.domain
>>>> *[2015-12-06 00:29:51,337]  WARN
>>>> {org.apache.stratos.common.concurrent.locks.ReadWriteLock} -  System
>>>> warning! Trying to release a lock which has not been taken by the same
>>>> thread: [lock-name] topology-manager [thread-id] 214 [thread-name]
>>>> http-nio-9443-exec-17*
>>>> [2015-12-06 00:29:51,346]  INFO
>>>> {org.apache.stratos.cloud.controller.messaging.publisher.TopologyEventPublisher}
>>>> -  Publishing Cluster terminated event: [application-id]
>>>> single-cartridge-app-ec2 [cluster id]
>>>> single-cartridge-app-ec2.my-php-app-ec2.php-ec2.domain [instance-id]
>>>> single-cartridge-app-ec2-1
>>>> [2015-12-06 00:29:51,348] ERROR
>>>> {org.apache.stratos.autoscaler.rule.RuleTasksDelegator} -  Cannot terminate
>>>> instance
>>>> org.apache.stratos.cloud.controller.stub.CloudControllerServiceCloudControllerExceptionException:
>>>> CloudControllerServiceCloudControllerExceptionException
>>>> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>>>> at
>>>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
>>>> at
>>>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>>>> at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
>>>> at java.lang.Class.newInstance(Class.java:379)
>>>> at
>>>> org.apache.stratos.cloud.controller.stub.CloudControllerServiceStub.terminateInstance(CloudControllerServiceStub.java:8660)
>>>> at
>>>> org.apache.stratos.autoscaler.client.AutoscalerCloudControllerClient.terminateInstance(AutoscalerCloudControllerClient.java:203)
>>>> at
>>>> org.apache.stratos.autoscaler.rule.RuleTasksDelegator.terminateObsoleteInstance(RuleTasksDelegator.java:295)
>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>> at
>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>>> at
>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>> at java.lang.reflect.Method.invoke(Method.java:606)
>>>> at
>>>> org.mvel2.optimizers.impl.refl.nodes.MethodAccessor.getValue(MethodAccessor.java:48)
>>>> at
>>>> org.mvel2.optimizers.impl.refl.nodes.VariableAccessor.getValue(VariableAccessor.java:37)
>>>> at org.mvel2.ast.ASTNode.getReducedValueAccelerated(ASTNode.java:108)
>>>> at org.mvel2.MVELRuntime.execute(MVELRuntime.java:85)
>>>> at
>>>> org.mvel2.compiler.CompiledExpression.getDirectValue(CompiledExpression.java:123)
>>>> at
>>>> org.mvel2.compiler.CompiledExpression.getValue(CompiledExpression.java:119)
>>>> at org.mvel2.MVEL.executeExpression(MVEL.java:930)
>>>> at
>>>> org.drools.base.mvel.MVELConsequence.evaluate(MVELConsequence.java:104)
>>>> at
>>>> org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1287)
>>>> at org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:1221)
>>>> at org.drools.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1456)
>>>> at
>>>> org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:710)
>>>> at
>>>> org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:674)
>>>> at
>>>> org.drools.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:230)
>>>> at
>>>> org.apache.stratos.autoscaler.monitor.cluster.ClusterMonitor.evaluate(ClusterMonitor.java:472)
>>>> at
>>>> org.apache.stratos.autoscaler.monitor.cluster.ClusterMonitor.access$200(ClusterMonitor.java:86)
>>>> at
>>>> org.apache.stratos.autoscaler.monitor.cluster.ClusterMonitor$2.run(ClusterMonitor.java:444)
>>>> 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)
>>>> [2015-12-06 00:29:51,356]  INFO
>>>> {org.apache.stratos.autoscaler.event.receiver.topology.AutoscalerTopologyEventReceiver}
>>>> -  [ClusterTerminatedEvent] Received: class
>>>> org.apache.stratos.messaging.event.topology.ClusterInstanceTerminatedEvent
>>>> [2015-12-06 00:29:51,356]  INFO
>>>> {org.apache.stratos.autoscaler.status.processor.group.GroupStatusTerminatedProcessor}
>>>> -  Sending application instance terminated for [application]
>>>> single-cartridge-app-ec2 [instance] single-cartridge-app-ec2-1
>>>>
>>>
>>> Looking at the logs, it seems that the instance id has been null when
>>> the CC tries to terminate the instance, in the terminateInstance method.
>>> The instance id is returned with NodeMetadata when an instance is created
>>> in EC2. Maybe the instance id is null since the termination was started at
>>> the same moment in which the call to start the instance [1] is happening.
>>> In such cases the member is removed from the Topology and therefore the
>>> only option is to manually terminate it from the IaaS. IMHO such scenarios
>>> are difficult to handle from Stratos side. If the member is correctly
>>> removed from the Topology, then it should be fine.
>>>
>>> [1]. computeService.createNodesInGroup
>>>
>>>>
>>>>
>>>> On Sun, Dec 6, 2015 at 12:20 AM, Akila Ravihansa Perera <
>>>> raviha...@wso2.com> wrote:
>>>>
>>>>> We have few issues in Docker scripts. There are some SNAPSHOT
>>>>> references [1, 2] which breaks Docker images.
>>>>>
>>>>> [1]
>>>>> https://github.com/apache/stratos/blob/4.1.5-rc2/tools/docker-images/cartridge-docker-images/base-image/Dockerfile#L25
>>>>>
>>>>> [2]
>>>>> https://github.com/apache/stratos/blob/4.1.5-rc2/tools/docker-images/cartridge-docker-images/base-image/files/run#L29
>>>>>
>>>>> On Sat, Dec 5, 2015 at 8:02 PM, Gayan Gunarathne <gay...@wso2.com>
>>>>> wrote:
>>>>>
>>>>>> Modify it as 4.1.5-rc2
>>>>>>
>>>>>> Thanks,
>>>>>> Gayan
>>>>>>
>>>>>>
>>>>>> On Sat, Dec 5, 2015 at 12:04 PM, Akila Ravihansa Perera <
>>>>>> raviha...@wso2.com> wrote:
>>>>>>
>>>>>>> Hi Gayan,
>>>>>>>
>>>>>>> The vote is for the tag, not the binaries. Therefore we need to tag
>>>>>>> the code in order to vote.
>>>>>>>
>>>>>>> Also we do not tag with a release version (4.1.5) until the vote has
>>>>>>> passed.
>>>>>>>
>>>>>>> Could you please fix it?
>>>>>>>
>>>>>>> Thanks.
>>>>>>>
>>>>>>>
>>>>>>> On Friday, 4 December 2015, Imesh Gunaratne <im...@apache.org>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Hi Gayan,
>>>>>>>>
>>>>>>>> I do not see the 4.1.5-rc2 tag, have we created it as 4.1.5?
>>>>>>>>
>>>>>>>> Thanks
>>>>>>>>
>>>>>>>> On Thu, Dec 3, 2015 at 10:01 AM, Gayan Gunarathne <gay...@wso2.com>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> Hi All,
>>>>>>>>>
>>>>>>>>> This thread is for discussion of the second release candidate for
>>>>>>>>> Apache Stratos 4.1.5. Please use this thread for discussion of issues
>>>>>>>>> uncovered in the RC, questions you may have about the RC, etc.
>>>>>>>>>
>>>>>>>>> The RC release packs could be found here [1]. A git tag (4.1.5)
>>>>>>>>> [2] has been created for this release and its tree view could be
>>>>>>>>> seen here [3].
>>>>>>>>>
>>>>>>>>> [1]  <http://goog_1891852155>
>>>>>>>>> https://dist.apache.org/repos/dist/dev/stratos/releases/4.1.5-rc2/
>>>>>>>>> [2] 
>>>>>>>>> *https://git-wip-us.apache.org/repos/asf?p=stratos.git;a=commit;h=a9f1f51a9ae2829d85bf7b8f2d8fb622db991d25
>>>>>>>>> <https://git-wip-us.apache.org/repos/asf?p=stratos.git;a=commit;h=a9f1f51a9ae2829d85bf7b8f2d8fb622db991d25>*
>>>>>>>>> [3] 
>>>>>>>>> *https://git-wip-us.apache.org/repos/asf?p=stratos.git;a=tree;h=bf33be1ad90c9bd071a5ded8dd440eb83de80ead;hb=a9f1f51a9ae2829d85bf7b8f2d8fb622db991d25
>>>>>>>>> <https://git-wip-us.apache.org/repos/asf?p=stratos.git;a=tree;h=bf33be1ad90c9bd071a5ded8dd440eb83de80ead;hb=a9f1f51a9ae2829d85bf7b8f2d8fb622db991d25>*
>>>>>>>>>
>>>>>>>>> Thanks,
>>>>>>>>> The Apache Stratos team
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>>
>>>>>>>>> Gayan Gunarathne
>>>>>>>>> Technical Lead, WSO2 Inc. (http://wso2.com)
>>>>>>>>> Committer & PMC Member, Apache Stratos
>>>>>>>>> email : gay...@wso2.com  | mobile : +94 775030545
>>>>>>>>> <%2B94%20766819985>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Imesh Gunaratne
>>>>>>>>
>>>>>>>> Senior Technical Lead, WSO2
>>>>>>>> Committer & PMC Member, Apache Stratos
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Akila Ravihansa Perera
>>>>>>> WSO2 Inc.;  http://wso2.com/
>>>>>>>
>>>>>>> Blog: http://ravihansa3000.blogspot.com
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>>
>>>>>> Gayan Gunarathne
>>>>>> Technical Lead, WSO2 Inc. (http://wso2.com)
>>>>>> Committer & PMC Member, Apache Stratos
>>>>>> email : gay...@wso2.com  | mobile : +94 775030545 <%2B94%20766819985>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Akila Ravihansa Perera
>>>>> WSO2 Inc.;  http://wso2.com/
>>>>>
>>>>> Blog: http://ravihansa3000.blogspot.com
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Akila Ravihansa Perera
>>>> WSO2 Inc.;  http://wso2.com/
>>>>
>>>> Blog:
>>>> http://ravihansa3000.blogspot.com
>>>>
>>>> --
>>>> <http://ravihansa3000.blogspot.com>
>>>> <http://ravihansa3000.blogspot.com>
>>>> Thanks and Regards,
>>>>
>>>> Isuru H.
>>>> <http://ravihansa3000.blogspot.com>
>>>> +94 716 358 048 <http://ravihansa3000.blogspot.com>*
>>>> <http://wso2.com/>*
>>>>
>>>>
>>>> * <http://wso2.com/>*
>>>>
>>>>
>>>>
>>
>>
>> --
>> Imesh Gunaratne
>>
>> Senior Technical Lead, WSO2
>> Committer & PMC Member, Apache Stratos
>>
>
>
>
> --
> Akila Ravihansa Perera
> WSO2 Inc.;  http://wso2.com/
>
> Blog: http://ravihansa3000.blogspot.com
>
> --
> <http://ravihansa3000.blogspot.com>
> <http://ravihansa3000.blogspot.com>
> Thanks and Regards,
>
> Isuru H.
> <http://ravihansa3000.blogspot.com>
> +94 716 358 048 <http://ravihansa3000.blogspot.com>* <http://wso2.com/>*
>
>
> * <http://wso2.com/>*
>
>
>

Reply via email to