Did anyone of you able to reproduce this? I was trying with mock iaas, but
I didn't encounter this error

On Sun, Dec 6, 2015 at 9:02 PM, Gayan Gunarathne <gay...@wso2.com> wrote:

>
>
> On Sun, Dec 6, 2015 at 10:47 AM, Isuru Haththotuwa <isu...@apache.org>
> wrote:
>
>> 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..
>>
>
> Event it is instance id is blank, this seems to be a issue with acquiring
> and releasing the locks in our thread model.IMO we need to handle that. I
> think we need to first identify which thread is try to release the write
> lock which acquired by another thread.
> I think we may able to reproduce this in the mock iaas by setting the
> instance id to blank.Also if we print the get context class loader in
> releaseWriteLock as a debug log I think we can get the exact thread which
> causing this issue. Will check on those points.
>
> @Akila , Did you able to reproduce this regularly?
>
>>
>>> 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/>*
>>>
>>>
>>>
>
>
> --
>
> Gayan Gunarathne
> Technical Lead, WSO2 Inc. (http://wso2.com)
> Committer & PMC Member, Apache Stratos
> email : gay...@wso2.com  | mobile : +94 775030545 <%2B94%20766819985>
>
>
>



-- 
Sajith Kariyawasam
*Committer and PMC member, Apache Stratos, *
*WSO2 Inc.; http://wso2.com <http://wso2.com>*
*Mobile: 0772269575*

Reply via email to