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

Reply via email to