nova boot failure while the vm state/task_state is set by sync code during spawning

Bug #1388683 reported by Jerry Cai
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
powervc-driver
Fix Committed
High
Jerry Cai

Bug Description

For spawning, it will loop to check the powervc vm instance status, there will be a timing window that the VM because active, then the sync is running here, but the driver's spawning is till sleeping, then after this sync code run, nova framework will fail with above exception..

This sync code need to be retained there as the VM might stick with build/spawning state like the nova-powervc is abnormal killed..., the fix solution can be:
1. create a dict in sync code, and put such state instance id to this dict,
2. in next sync sycle, check if the instance is still in build/spawning, but the powervc state is in acitve/none, then update status and remove the id from the dict, this will delay the state updating in sync process to avoid the time window that driver.spawning is sleeping to poll the powervc instance state.

Jerry Cai (caimin)
Changed in powervc-driver:
assignee: nobody → Jerry Cai (caimin)
importance: Undecided → High
status: New → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to powervc-driver (master)

Fix proposed to branch: master
Review: https://review.openstack.org/132497

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to powervc-driver (master)

Reviewed: https://review.openstack.org/132497
Committed: https://git.openstack.org/cgit/stackforge/powervc-driver/commit/?id=9492f9637e315b0a456999efac6a214951eed66e
Submitter: Jenkins
Branch: master

commit 9492f9637e315b0a456999efac6a214951eed66e
Author: Jerry Cai <email address hidden>
Date: Mon Nov 3 11:13:20 2014 +0800

    nova boot failure while the vm state/task_state is set by sync code

    For spawning, it will loop to check the powervc vm instance status,
    there will be a timing window that the VM because active, then the sync
    is running here, but the driver's spawning is till sleeping, then after
    this sync code run, nova framework will fail with above exception..

    This sync code need to be retained there as the VM might stick with
    build/spawning state like the nova-powervc is abnormal killed...,
    the fix solution can be:
    1. create a dict in sync code, and put such state instance id to
    this dict,
    2. in next sync sycle, check if the instance is still in build/spawning,
     but the powervc state is in acitve/none, then update status and remove
    the id from the dict, this will delay the state updating in sync
    process to avoid the time window that driver.spawning is sleeping
    to poll the powervc instance state.

    Change-Id: I7fe9f5f2b48c9758bc102ebf209d631c0308a316
    Closes-Bug: 1388683

Changed in powervc-driver:
status: In Progress → Fix Committed
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to powervc-driver (stable/juno)

Fix proposed to branch: stable/juno
Review: https://review.openstack.org/132608

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to powervc-driver (stable/juno)

Reviewed: https://review.openstack.org/132608
Committed: https://git.openstack.org/cgit/stackforge/powervc-driver/commit/?id=89886e847e75d226e58c411714558129d9e950bb
Submitter: Jenkins
Branch: stable/juno

commit 89886e847e75d226e58c411714558129d9e950bb
Author: Jerry Cai <email address hidden>
Date: Mon Nov 3 11:13:20 2014 +0800

    nova boot failure while the vm state/task_state is set by sync code

    For spawning, it will loop to check the powervc vm instance status,
    there will be a timing window that the VM because active, then the sync
    is running here, but the driver's spawning is till sleeping, then after
    this sync code run, nova framework will fail with above exception..

    This sync code need to be retained there as the VM might stick with
    build/spawning state like the nova-powervc is abnormal killed...,
    the fix solution can be:
    1. create a dict in sync code, and put such state instance id to
    this dict,
    2. in next sync sycle, check if the instance is still in build/spawning,
     but the powervc state is in acitve/none, then update status and remove
    the id from the dict, this will delay the state updating in sync
    process to avoid the time window that driver.spawning is sleeping
    to poll the powervc instance state.

    Change-Id: I7fe9f5f2b48c9758bc102ebf209d631c0308a316
    Closes-Bug: 1388683
    (cherry picked from commit 9492f9637e315b0a456999efac6a214951eed66e)

tags: added: in-stable-juno
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.