diff --git a/compute/src/main/java/org/zstack/compute/vm/VmInstanceBase.java b/compute/src/main/java/org/zstack/compute/vm/VmInstanceBase.java index 9ceb8000912..1c7651f3b7f 100755 --- a/compute/src/main/java/org/zstack/compute/vm/VmInstanceBase.java +++ b/compute/src/main/java/org/zstack/compute/vm/VmInstanceBase.java @@ -2798,11 +2798,15 @@ protected void scripts() { sql(VmNicVO.class).eq(VmNicVO_.vmInstanceUuid, self.getUuid()).hardDelete(); sql(VolumeVO.class).eq(VolumeVO_.vmInstanceUuid, self.getUuid()) .eq(VolumeVO_.type, VolumeType.Root) - .hardDelete(); + .delete(); sql(VmCdRomVO.class).eq(VmCdRomVO_.vmInstanceUuid, self.getUuid()).hardDelete(); - sql(VmInstanceVO.class).eq(VmInstanceVO_.uuid, self.getUuid()).hardDelete(); + sql(VmInstanceVO.class).eq(VmInstanceVO_.uuid, self.getUuid()).delete(); } }.execute(); + dbf.eoCleanup(VmInstanceVO.class, self.getUuid()); + if (inv.getRootVolumeUuid() != null) { + dbf.eoCleanup(VolumeVO.class, inv.getRootVolumeUuid()); + } callVmJustAfterDeleteFromDbExtensionPoint(inv, accountUuid); } else if (deletionPolicy == VmInstanceDeletionPolicy.Delay) { changeVmStateInDb(VmInstanceStateEvent.destroyed);