Akila created STRATOS-1489:
------------------------------

             Summary: Faulty behavior in application monitor creation logic
                 Key: STRATOS-1489
                 URL: https://issues.apache.org/jira/browse/STRATOS-1489
             Project: Stratos
          Issue Type: Bug
    Affects Versions: 4.1.0
            Reporter: Akila


When a user sign up for an application, AS makes a service call to CC and 
executed "createApplicationClusters" method which will publish 
ApplicationClustersCreated event. There is a separate event listener for this 
event in AS side which will start cluster monitors upon receiving this event. 
But in this listener AS first checks whether this corresponding application's 
status is set to DEPLOYED state. If not it will wait for 5 seconds and print 
following warning;

WARN 
{org.apache.stratos.autoscaler.event.receiver.topology.AutoscalerTopologyEventReceiver}
 -  Application monitor creation is not triggered on application clusters 
created event even after 5 retries [application-id] xxxxxx-xxxxx. Possible 
cause is either application context is null or application status didn't become 
Deployed yet.

In the code [1] there is no way to recover if the application doesn't get 
updated to DEPLOYED status within the given 5 seconds timeout window. There is 
a comment in the code which says that the reason for not throwing an error is 
because this is not the only place where it starts monitors. But the only other 
place I could find is upon receiving CompleteTopologyEvent. But that event is 
processed only at the very first time.

Therefore, there is no way to recover from this error state, and it does not 
throw an error either. This logic needs to be improved.


[1] 
https://github.com/apache/stratos/blob/master/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/topology/AutoscalerTopologyEventReceiver.java#L169



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to