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)