cloudstack-issues mailing list archives

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

    [ https://issues.apache.org/jira/browse/CLOUDSTACK-9570?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15817587#comment-15817587
] 

ASF GitHub Bot commented on CLOUDSTACK-9570:
--------------------------------------------

Github user mike-tutkowski commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/1735#discussion_r94659104
  
    --- Diff: server/src/com/cloud/api/ApiResponseHelper.java ---
    @@ -526,16 +529,18 @@ public static DataStoreRole getDataStoreRole(Snapshot snapshot,
SnapshotDataStor
             }
     
             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: https://issues.apache.org/jira/browse/CLOUDSTACK-9570
>             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="4.9.1.0-SNAPSHOT">
>    <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
(v6.3.4#6332)

Mime
View raw message