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:
parent
7eb7e10be8
commit
b3dbc7c5e3
@ -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)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user