You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@stratos.apache.org by "Imesh Gunaratne (JIRA)" <ji...@apache.org> on 2013/12/24 07:49:50 UTC

[jira] [Commented] (STRATOS-322) Cloud Controller StartInstance() Method is Not Atomic

    [ https://issues.apache.org/jira/browse/STRATOS-322?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13856195#comment-13856195 ] 

Imesh Gunaratne commented on STRATOS-322:
-----------------------------------------

Lahiru has done the changes required in Cloud Controller. Waiting for those to be committed.

> Cloud Controller StartInstance() Method is Not Atomic
> -----------------------------------------------------
>
>                 Key: STRATOS-322
>                 URL: https://issues.apache.org/jira/browse/STRATOS-322
>             Project: Stratos
>          Issue Type: Bug
>            Reporter: Imesh Gunaratne
>            Assignee: Lahiru Sandaruwan
>             Fix For: 4.0.0 M5
>
>
> As we found when Autoscaler invokes the StartInstance() service method in Cloud Controller it spawn a new VM instance and then try to execute the following operations:
> 1. Assign a public IP
> 2. Publish Instance Spawned event.
> However if an error occurred while trying to assign a public IP (even after spawning the instance) the StartInstance() method throw an exception to the caller. As a result Autoscaler assume that the instance was not spawned and another call is made. This is not correct.
> Proposed Solution:
> 1. Autoscaler invokes cloud controller -> startInstance() 
> 2. Cloud controller:
>     2.1 Spawn a new instance
>     2.2 Start a background thread to assign IPs
>     2.3 Send the Instance Spawned event if IPs successfully assigned in the background thread.
>     2.4 Return the startInstance() method call without waiting for the above background thread.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)