mirror of
https://github.com/apache/cloudstack.git
synced 2025-11-02 11:52:28 +01:00
CLOUDSTACK-7683: hold a db lock during vm expunge
This commit is contained in:
parent
885bba926c
commit
812b0122e2
@ -1703,6 +1703,10 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
|
||||
|
||||
@Override
|
||||
public boolean expunge(UserVmVO vm, long callerUserId, Account caller) {
|
||||
vm = _vmDao.acquireInLockTable(vm.getId());
|
||||
if (vm == null) {
|
||||
return false;
|
||||
}
|
||||
try {
|
||||
List<VolumeVO> rootVol = _volsDao.findByInstanceAndType(vm.getId(), Volume.Type.ROOT);
|
||||
// expunge the vm
|
||||
@ -1739,6 +1743,8 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
|
||||
} catch (ConcurrentOperationException e) {
|
||||
s_logger.warn("Concurrent operations on expunging " + vm, e);
|
||||
return false;
|
||||
} finally {
|
||||
_vmDao.releaseFromLockTable(vm.getId());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user