1
0
mirror of https://github.com/OpenNebula/one.git synced 2025-03-21 14:50:08 +03:00

M #-: Fix race condition cloning VM disks

This commit is contained in:
Ruben S. Montero 2021-03-30 17:05:39 +02:00
parent 7eb7e10be8
commit b3dbc7c5e3
No known key found for this signature in database
GPG Key ID: A0CEA6FA880A1D87

View File

@ -2075,21 +2075,21 @@ void LifeCycleManager::trigger_disk_lock_success(int vid)
trigger([this, vid] {
set<int> ids;
if ( auto vm = vmpool->get_ro(vid) )
{
if ( vm->get_state() != VirtualMachine::CLONING &&
vm->get_state() != VirtualMachine::CLONING_FAILURE )
{
return;
}
auto vm = vmpool->get(vid);
vm->get_cloning_image_ids(ids);
}
else
if (!vm)
{
return;
}
if ( vm->get_state() != VirtualMachine::CLONING &&
vm->get_state() != VirtualMachine::CLONING_FAILURE )
{
return;
}
vm->get_cloning_image_ids(ids);
vector<tuple<int, string, string>> ready;
set<int> error;
@ -2120,12 +2120,6 @@ void LifeCycleManager::trigger_disk_lock_success(int vid)
}
}
auto vm = vmpool->get(vid);
if (!vm)
{
return;
}
for (const auto& rit : ready)
{