cloudstack-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <>
Subject [jira] [Commented] (CLOUDSTACK-9570) Bug in listSnapshots for snapshots with deleted data stores
Date Wed, 11 Jan 2017 08:02:58 GMT


ASF GitHub Bot commented on CLOUDSTACK-9570:

Github user mike-tutkowski commented on a diff in the pull request:
    --- Diff: server/src/com/cloud/api/ ---
    @@ -526,16 +529,18 @@ public static DataStoreRole getDataStoreRole(Snapshot snapshot,
             long storagePoolId = snapshotStore.getDataStoreId();
    -        DataStore dataStore = dataStoreMgr.getDataStore(storagePoolId, DataStoreRole.Primary);
    --- End diff --
    Another possibility here is that we could simply still try to retrieve "dataStore" and
then perform this check:
             DataStore dataStore = dataStoreMgr.getDataStore(storagePoolId, DataStoreRole.Primary);
             if (dataStore == null) {
                 return DataStoreRole.Image;
    If "dataStore" equals null, then it was removed, which should only be something that happened
when unmanaged storage is being used (thus when the the snapshot resides on secondary storage).

> Bug in listSnapshots for snapshots with deleted data stores
> -----------------------------------------------------------
>                 Key: CLOUDSTACK-9570
>                 URL:
>             Project: CloudStack
>          Issue Type: Bug
>      Security Level: Public(Anyone can view this level - this is the default.) 
>          Components: API
>            Reporter: Nicolas Vazquez
>            Assignee: Nicolas Vazquez
> h3. Actual behaviour
> If there is snapshot on a data store that is removed, {{listSnapshots}} still tries to
enumerate it and gives error (in this example data store 2 has been removed):
> {code:xml|title=/client/api?command=listSnapshots&isrecursive=true&listall=true|borderStyle=solid}
> <listsnapshotsresponse cloud-stack-version="">
>    <errorcode>530</errorcode>
>    <cserrorcode>4250</cserrorcode>
>    <errortext>Unable to locate datastore with id 2</errortext>
> </listsnapshotsresponse>
> {code}
> h3. Reproduce error
> This steps can be followed to reproduce issue:
> * Take a snapshot of a volume (this creates a references for primary storage and secondary
storage in snapshot_store_ref table
> * Simulate retiring primary data storage where snapshot is cached (in this example X
is a fake data store and Y is snapshot id):
> {{UPDATE `cloud`.`snapshot_store_ref` SET `store_id`='X', `state`="Destroyed" WHERE `id`='Y';}}
> * List snapshots
> {{/client/api?command=listSnapshots&isrecursive=true&listall=true}}

This message was sent by Atlassian JIRA

View raw message