You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cloudstack.apache.org by "ASF subversion and git services (JIRA)" <ji...@apache.org> on 2014/01/17 20:38:23 UTC

[jira] [Commented] (CLOUDSTACK-5895) CreateVolumeFromSnapshot can fail in a multiple pod environment with tagged storagepool

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

ASF subversion and git services commented on CLOUDSTACK-5895:
-------------------------------------------------------------

Commit 8a20d89d14d909077df0674a902c0eda4206be15 in branch refs/heads/master from [~prachidamle]
[ https://git-wip-us.apache.org/repos/asf?p=cloudstack.git;h=8a20d89 ]

CLOUDSTACK-5895: CreateVolumeFromSnapshot can fail in a multiple pod environment with tagged storagepool

Changes:
- After finding the storagepool suitable to create the volume, we should not look for more pods


> 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)