ENOENT error breaks update_status() of libvirt driver
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Fix Released
|
Undecided
|
Qin Zhao |
Bug Description
ENOENT error breaks update_status() during PowerKVM testing. It should be a bug of libvirt driver.
Exception log:
2014-08-15 16:03:59.038 42817 ERROR nova.openstack.
ca1e93fe7eeb/disk'
2014-08-15 16:03:59.038 42817 TRACE nova.openstack.
2014-08-15 16:03:59.038 42817 TRACE nova.openstack.
2014-08-15 16:03:59.038 42817 TRACE nova.openstack.
2014-08-15 16:03:59.038 42817 TRACE nova.openstack.
2014-08-15 16:03:59.038 42817 TRACE nova.openstack.
2014-08-15 16:03:59.038 42817 TRACE nova.openstack.
2014-08-15 16:03:59.038 42817 TRACE nova.openstack.
2014-08-15 16:03:59.038 42817 TRACE nova.openstack.
2014-08-15 16:03:59.038 42817 TRACE nova.openstack.
2014-08-15 16:03:59.038 42817 TRACE nova.openstack.
2014-08-15 16:03:59.038 42817 TRACE nova.openstack.
2014-08-15 16:03:59.038 42817 TRACE nova.openstack.
2014-08-15 16:03:59.038 42817 TRACE nova.openstack.
2014-08-15 16:03:59.038 42817 TRACE nova.openstack.
2014-08-15 16:03:59.038 42817 TRACE nova.openstack.
2014-08-15 16:03:59.038 42817 TRACE nova.openstack.
2014-08-15 16:03:59.038 42817 TRACE nova.openstack.
2014-08-15 16:03:59.038 42817 TRACE nova.openstack.
2014-08-15 16:03:59.038 42817 TRACE nova.openstack.
2014-08-15 16:03:59.038 42817 TRACE nova.openstack.
2014-08-15 16:03:59.038 42817 TRACE nova.openstack.
2014-08-15 16:03:59.038 42817 TRACE nova.openstack.
2014-08-15 16:03:59.038 42817 TRACE nova.openstack.
2014-08-15 16:03:59.038 42817 TRACE nova.openstack.
2014-08-15 16:03:59.038 42817 TRACE nova.openstack.
tags: | added: icehouse-backport-potential |
Changed in nova: | |
milestone: | none → juno-3 |
status: | Fix Committed → Fix Released |
Changed in nova: | |
milestone: | juno-3 → 2014.2 |
If errno is ENOENT, the code will print a warning and continue to raise the exception. I feel the correct behavior is not throwing this exception.
except OSError as e:
LOG. warn(_LW( 'Periodic task is updating the host stat, '
'it is trying to get disk %(i_name)s, '
'but disk file was removed by concurrent '
'operation s such as resize.'),
{'i_ name': dom.name()})
LOG. warn(_LW( 'Periodic task is updating the host stat, '
'it is trying to get disk %(i_name)s, '
'but access is denied. It is most likely '
'due to a VM that exists on the compute '
'node but is not managed by Nova.'),
{'i_name' : dom.name()})
else:
raise
if e.errno == errno.ENOENT:
if e.errno == errno.EACCES: