+1 for handing these dependent operations as atomic in order to avoid
inconsistency. It is a good thought.

Better have the same approach for application model also as it has to
update monitor hierarchy and application model at the same time.

Thanks,
Reka

On Tue, Sep 29, 2015 at 1:57 AM, Akila Ravihansa Perera <raviha...@wso2.com>
wrote:

> Hi,
>
> This is to bring your attention to possible inconsistency that could arise
> due to rare edge cases. For an eg: If you follow the piece of code at [1],
> handleMemberTerminated can return without successfully removing a member
> from topology but the next step will get executed which is to remove the
> member context from CC's context, thus leading to inconsistencies. This
> could result in permanent inconsistent state and system will never recover.
>
> I'm proposing the $subject to resolve this issue. I think simply throwing
> an exception if an operation is not successful and handling those
> exceptions gracefully should fix the problem rather than silently returning
> from the method call. Above is only one example and we may have to find
> such occurrences throughout the CC component since that is the only module
> which writes/updates the topology.
>
> However, we need to check whether same problem can occur for Application
> model maintained by AS and Tenant model maintained by SM.
> @Reka: Any thoughts?
>
> I've created the JIRA [2] to track this issue.
>
> [1]
> https://github.com/ravihansa3000/stratos/blob/stratos-4.1.x/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceUtil.java#L57
> [2] https://issues.apache.org/jira/browse/STRATOS-1578
>
> Thanks.
>
> --
> Akila Ravihansa Perera
> WSO2 Inc.;  http://wso2.com/
>
> Blog: http://ravihansa3000.blogspot.com
>



-- 
Reka Thirunavukkarasu
Senior Software Engineer,
WSO2, Inc.:http://wso2.com,
Mobile: +94776442007

Reply via email to