Merge pull request #522 from patricklucas/fix_instance_not_found_race
builder/amzon: fix race condition after launching EC2 instance
This commit is contained in:
commit
26b6e27917
|
@ -62,11 +62,16 @@ func InstanceStateRefreshFunc(conn *ec2.EC2, i *ec2.Instance) StateRefreshFunc {
|
||||||
return func() (interface{}, string, error) {
|
return func() (interface{}, string, error) {
|
||||||
resp, err := conn.Instances([]string{i.InstanceId}, ec2.NewFilter())
|
resp, err := conn.Instances([]string{i.InstanceId}, ec2.NewFilter())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("Error on InstanceStateRefresh: %s", err)
|
if ec2err, ok := err.(*ec2.Error); ok && ec2err.Code == "InvalidInstanceID.NotFound" {
|
||||||
return nil, "", err
|
// Set this to nil as if we didn't find anything.
|
||||||
|
resp = nil
|
||||||
|
} else {
|
||||||
|
log.Printf("Error on InstanceStateRefresh: %s", err)
|
||||||
|
return nil, "", err
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(resp.Reservations) == 0 || len(resp.Reservations[0].Instances) == 0 {
|
if resp == nil || len(resp.Reservations) == 0 || len(resp.Reservations[0].Instances) == 0 {
|
||||||
// Sometimes AWS just has consistency issues and doesn't see
|
// Sometimes AWS just has consistency issues and doesn't see
|
||||||
// our instance yet. Return an empty state.
|
// our instance yet. Return an empty state.
|
||||||
return nil, "", nil
|
return nil, "", nil
|
||||||
|
|
Loading…
Reference in New Issue