Commit: 3e2a02d5ab4195bb1be9b94f5ca6777f0dce5dd8
Author: Alexandr Nevenchannyy <email address hidden>
Date: Fri Oct 9 12:23:42 2015
libvirt: Kill rsync/scp processes before deleting instance
In the resize operation, during copying files from source to
destination compute node scp/rsync processes are not aborted after
the instance is deleted because linux kernel doesn't delete instance
files physically until all processes using the file handle is closed
completely. Hence rsync/scp process keeps on running until it
transfers 100% of file data.
Added new module instancejobtracker to libvirt driver which will add,
remove or terminate the processes running against particular instances.
Added callback methods to execute call which will store the pid of
scp/rsync process in cache as a key: value pair and to remove the
pid from the cache after process completion. Process id will be used to
kill the process if it is running while deleting the instance. Instance
uuid is used as a key in the cache and pid will be the value.
Note: The required unit-tests are manually added to the below path,
as new path for unit-tests is not present in stable/juno release.
nova/tests/virt/libvirt/test_driver.py
nova/tests/virt/libvirt/test_utils.py
SecurityImpact
Closes-bug: #1466077
Change-Id: Ic19dbaef2d0a131bfbb6320bc369d5c678bcbe3d
(cherry picked from commit 3ab1faf96ee868375ea2397010161309b016cc10)
Reviewed: https:/ /review. fuel-infra. org/12551 ci/fuel- 6.1/2014. 2
Submitter: mos-infra-ci <>
Branch: openstack-
Commit: 3e2a02d5ab4195b b1be9b94f5ca677 7f0dce5dd8
Author: Alexandr Nevenchannyy <email address hidden>
Date: Fri Oct 9 12:23:42 2015
libvirt: Kill rsync/scp processes before deleting instance
In the resize operation, during copying files from source to
destination compute node scp/rsync processes are not aborted after
the instance is deleted because linux kernel doesn't delete instance
files physically until all processes using the file handle is closed
completely. Hence rsync/scp process keeps on running until it
transfers 100% of file data.
Added new module instancejobtracker to libvirt driver which will add,
remove or terminate the processes running against particular instances.
Added callback methods to execute call which will store the pid of
scp/rsync process in cache as a key: value pair and to remove the
pid from the cache after process completion. Process id will be used to
kill the process if it is running while deleting the instance. Instance
uuid is used as a key in the cache and pid will be the value.
Conflicts:
nova/tests/ unit/virt/ libvirt/ test_driver. py
nova/tests/ unit/virt/ libvirt/ test_utils. py
nova/virt/ libvirt/ driver. py
nova/virt/ libvirt/ utils.py
Note: The required unit-tests are manually added to the below path, virt/libvirt/ test_driver. py virt/libvirt/ test_utils. py
as new path for unit-tests is not present in stable/juno release.
nova/tests/
nova/tests/
SecurityImpact
Closes-bug: #1466077
Change-Id: Ic19dbaef2d0a13 1bfbb6320bc369d 5c678bcbe3d 75ea23970101613 09b016cc10)
(cherry picked from commit 3ab1faf96ee8683