cloudstack-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Prachi Damle (JIRA)" <j...@apache.org>
Subject [jira] [Resolved] (CLOUDSTACK-5895) CreateVolumeFromSnapshot can fail in a multiple pod environment with tagged storagepool
Date Fri, 17 Jan 2014 22:32:19 GMT

     [ https://issues.apache.org/jira/browse/CLOUDSTACK-5895?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Prachi Damle resolved CLOUDSTACK-5895.
--------------------------------------

    Resolution: Fixed

> CreateVolumeFromSnapshot can fail in a multiple pod environment with tagged storagepool
> ---------------------------------------------------------------------------------------
>
>                 Key: CLOUDSTACK-5895
>                 URL: https://issues.apache.org/jira/browse/CLOUDSTACK-5895
>             Project: CloudStack
>          Issue Type: Bug
>      Security Level: Public(Anyone can view this level - this is the default.) 
>          Components: Management Server
>    Affects Versions: 4.2.0
>            Reporter: Prachi Damle
>            Assignee: Prachi Damle
>            Priority: Critical
>             Fix For: 4.3.0
>
>
> Failed to create volume from snapshot.
> REPRO STEPS
> =======================
> SetUp: Use a setup having multiple pods.
> 1. Tag two primary storages in the same cluster with two different tag's say one for
root disk 'ROOT_DISK' and another for data disk 'DATA_DISK'.
> 2. Create corresponding compute offering and disk offering .
> 3. Launch an instance using the above created compute offering
> 4. Add the data disk later.
> 5. Create a snapshot of the data disk and try to create a volume out of it.
> It appears that no Storagepool is found suitable to create the volume. But the bug is
actually caused because of the code below which skips the volume creation even if a suitable
storage pool is found:
> Root cause of the issue is this bug in VolumeManagerImpl:
> // Determine what pod to store the volume in
> while ((pod = findPod(null, null, dc, account.getId(), podsToAvoid)) != null) {
> podsToAvoid.add(pod.first().getId());
> // Determine what storage pool to store the volume in
> while ((pool = findStoragePool(dskCh, dc, pod.first(), null, null, null, poolsToAvoid))
!= null)
> { break; }
> }
> The 'findStoragePool' calls the Allocators that returns suitable pool - the inner loop
ends - but the outer loops continues to find another pod until no pod is left.
> This is the bug causing the create Volume from Snapshot usecase fail - and it will affect
always in such a setup.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Mime
View raw message