Bug 1253338

Summary: [API] restore snapshot via API results in snapshot being stuck on "In preview" status
Product: [Retired] oVirt Reporter: sefi litmanovich <slitmano>
Component: ovirt-engine-coreAssignee: Moti Asayag <masayag>
Status: CLOSED CURRENTRELEASE QA Contact: sefi litmanovich <slitmano>
Severity: urgent Docs Contact:
Priority: unspecified    
Version: 3.6CC: amureini, bugs, ecohen, gklein, juan.hernandez, lsurette, oourfali, rbalakri, tnisan, yeylon
Target Milestone: ---Keywords: AutomationBlocker, Regression
Target Release: 3.6.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard: infra
Fixed In Version: 3.6.0-12 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-11-04 11:40:39 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: Infra RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
restore snapshot relevant part in engine log none

Description sefi litmanovich 2015-08-13 13:54:35 UTC
Created attachment 1062591 [details]
restore snapshot relevant part in engine log

Description of problem:

trying to restore snapshot via rest api results in snapshot being stuck on "In preview" status

Version-Release number of selected component (if applicable):

ovirt-engine-3.6.0-0.0.master.20150804111407.git122a3a0.el6.noarch

How reproducible:

always

Steps to Reproduce:
1. Create a vm with disk
2. Create snapshot.
3. restore snapshot:

POST https://{engin}/ovirt-engine/api/vms/{vm_id}/snapshots/{snapshot_id}/restore

body:

<action>
    <async>false</async>
    <grace_period>
        <expiry>10</expiry>
    </grace_period>
    <restore_memory>false</restore_memory>
</action>

Actual results:

snapshot is stuck on "In preview" mode forever.

Expected results:

snapshot moves to "In previewe" and shortly after commits the snapshot.

Comment 1 Juan Hernández 2015-08-17 17:09:41 UTC
The "restore" operation is performed by the RESTAPI in two sequential steps:

1. The RESTAPI runs the "TryBackToAllSnapshotsOfVm" command and waits for the completion of the job by this operation.

2. The RESTAPI runs the "RestoreAllSnapshot" action.

What happens in this case is that the job returned by the "TryBackToAllSnapshotsOfVm" command never finishes, it is always in status "STARTED", thus the RESTAPI will never get out of step 1.

Note also that ideally the RESTAPI shouldn't coordinate two backend actions, like in this case. Consider adding a single backend command that performs these two steps.

Comment 2 Juan Hernández 2015-08-18 08:30:14 UTC
Moving to "infra", as it looks like a generic caching issue in the DAO layer. See bug 1254230, which is probably a duplicate.

Comment 3 sefi litmanovich 2015-09-20 13:32:19 UTC
Verified according to steps in the description.
rhevm-3.6.0-0.16.master.el6.noarch

Comment 4 Sandro Bonazzola 2015-11-04 11:40:39 UTC
oVirt 3.6.0 has been released on November 4th, 2015 and should fix this issue.
If problems still persist, please open a new BZ and reference this one.