2019-08-29 09:12:19 |
Fan Zhang |
bug |
|
|
added bug |
2019-08-29 09:12:31 |
Fan Zhang |
nova: assignee |
|
Fan Zhang (fanzhang) |
|
2019-08-29 09:13:38 |
Fan Zhang |
description |
When confirming or reverting a VERIFY_RESIZE instance, nova does't clear
requested_destinatoin and ignore_hosts of instance's RequestSpec. It will
cause the failure of rebuilding instance, because requested_destination
and ignore_hosts affect the scheduling in rebuilding process.
We have two compute nodes, let's call them hostA and hostB, and we have an
instance built on hostA, then:
1. migrate instance from hostA to hostB, and wait for instance status changing
to VERIFY_RESIZE. Now instance RequestSpec's requested_destination is hostB,
ignore_hosts equals ['hostA'] as default CONF.allow_resize_to_same_host is False.
2. confirming or reverting the resize does nothing about instance RequestSpec.
3. rebuild instance with new image, nova set request_spec.force_hosts and
request_spec.force_nodes with current hostA [1]. Scheduler get hostB as matching
one, and striping hostA as ignoring one. Then no force host or force node matched,
NoValidHost expcetion is raised [2].
[1].https://github.com/openstack/nova/blob/eb6fcb21917d56e4e287513c1159ad4656382714/nova/compute/api.py#L3362
[2].https://github.com/openstack/nova/blob/eb6fcb21917d56e4e287513c1159ad4656382714/nova/scheduler/host_manager.py#L569-L588 |
When confirming or reverting a VERIFY_RESIZE instance, nova does't clear
requested_destinatoin and ignore_hosts of instance's RequestSpec. It will
cause the failure of rebuilding instance, because requested_destination
and ignore_hosts affect the scheduling in rebuilding process.
We have two compute nodes, let's call them hostA and hostB, and we have an
instance built on hostA, then:
1. migrate instance from hostA to hostB, and wait for instance status changing to VERIFY_RESIZE. Now instance RequestSpec's requested_destination is hostB,
ignore_hosts equals ['hostA'] as default CONF.allow_resize_to_same_host is False.
2. confirming or reverting the resize does nothing about instance RequestSpec.
3. rebuild instance with new image, nova set request_spec.force_hosts and
request_spec.force_nodes with current hostA [1]. Scheduler get hostB as matching one, and striping hostA as ignoring one. Then no force host or force node matched, NoValidHost expcetion is raised [2].
Out release is queens-17.0.3, but I checked code on master, it has the
same issue.
[1].https://github.com/openstack/nova/blob/eb6fcb21917d56e4e287513c1159ad4656382714/nova/compute/api.py#L3362
[2].https://github.com/openstack/nova/blob/eb6fcb21917d56e4e287513c1159ad4656382714/nova/scheduler/host_manager.py#L569-L588 |
|
2019-08-29 09:23:22 |
Fan Zhang |
summary |
Resize/Cold-migrate doesn't clean request_spec requested_destination and ignore_hosts |
Resize/Cold-migrate doesn't clear request_spec requested_destination and ignore_hosts |
|
2019-08-29 09:28:26 |
OpenStack Infra |
nova: status |
New |
In Progress |
|
2019-08-29 09:30:36 |
Fan Zhang |
description |
When confirming or reverting a VERIFY_RESIZE instance, nova does't clear
requested_destinatoin and ignore_hosts of instance's RequestSpec. It will
cause the failure of rebuilding instance, because requested_destination
and ignore_hosts affect the scheduling in rebuilding process.
We have two compute nodes, let's call them hostA and hostB, and we have an
instance built on hostA, then:
1. migrate instance from hostA to hostB, and wait for instance status changing to VERIFY_RESIZE. Now instance RequestSpec's requested_destination is hostB,
ignore_hosts equals ['hostA'] as default CONF.allow_resize_to_same_host is False.
2. confirming or reverting the resize does nothing about instance RequestSpec.
3. rebuild instance with new image, nova set request_spec.force_hosts and
request_spec.force_nodes with current hostA [1]. Scheduler get hostB as matching one, and striping hostA as ignoring one. Then no force host or force node matched, NoValidHost expcetion is raised [2].
Out release is queens-17.0.3, but I checked code on master, it has the
same issue.
[1].https://github.com/openstack/nova/blob/eb6fcb21917d56e4e287513c1159ad4656382714/nova/compute/api.py#L3362
[2].https://github.com/openstack/nova/blob/eb6fcb21917d56e4e287513c1159ad4656382714/nova/scheduler/host_manager.py#L569-L588 |
When confirming or reverting a VERIFY_RESIZE instance, nova does't clear
requested_destinatoin and ignore_hosts of instance's RequestSpec. It will
cause the failure of rebuilding instance, because requested_destination
and ignore_hosts affect the scheduling in rebuilding process.
We have two compute nodes, let's call them hostA and hostB, and we have an
instance built on hostA, then:
1. migrate instance from hostA to hostB, and wait for instance status changing to VERIFY_RESIZE. Now instance RequestSpec's requested_destination is hostB,
ignore_hosts equals ['hostA'] as default CONF.allow_resize_to_same_host is False.
2. confirming or reverting the resize does nothing about instance RequestSpec.
3. rebuild instance with new image, nova set request_spec.force_hosts and
request_spec.force_nodes with current hostA [1]. Scheduler get hostB as matching one, and striping hostA as ignoring one. Then no force host or force node matched, then we get 0 hosts to filter [2].
Out release is queens-17.0.3, but I checked code on master, it has the
same issue.
[1].https://github.com/openstack/nova/blob/eb6fcb21917d56e4e287513c1159ad4656382714/nova/compute/api.py#L3362
[2].https://github.com/openstack/nova/blob/eb6fcb21917d56e4e287513c1159ad4656382714/nova/scheduler/host_manager.py#L569-L588 |
|
2019-08-29 09:30:54 |
Fan Zhang |
description |
When confirming or reverting a VERIFY_RESIZE instance, nova does't clear
requested_destinatoin and ignore_hosts of instance's RequestSpec. It will
cause the failure of rebuilding instance, because requested_destination
and ignore_hosts affect the scheduling in rebuilding process.
We have two compute nodes, let's call them hostA and hostB, and we have an
instance built on hostA, then:
1. migrate instance from hostA to hostB, and wait for instance status changing to VERIFY_RESIZE. Now instance RequestSpec's requested_destination is hostB,
ignore_hosts equals ['hostA'] as default CONF.allow_resize_to_same_host is False.
2. confirming or reverting the resize does nothing about instance RequestSpec.
3. rebuild instance with new image, nova set request_spec.force_hosts and
request_spec.force_nodes with current hostA [1]. Scheduler get hostB as matching one, and striping hostA as ignoring one. Then no force host or force node matched, then we get 0 hosts to filter [2].
Out release is queens-17.0.3, but I checked code on master, it has the
same issue.
[1].https://github.com/openstack/nova/blob/eb6fcb21917d56e4e287513c1159ad4656382714/nova/compute/api.py#L3362
[2].https://github.com/openstack/nova/blob/eb6fcb21917d56e4e287513c1159ad4656382714/nova/scheduler/host_manager.py#L569-L588 |
When confirming or reverting a VERIFY_RESIZE instance, nova does't clear
requested_destinatoin and ignore_hosts of instance's RequestSpec. It will
cause the failure of rebuilding instance, because requested_destination
and ignore_hosts affect the scheduling in rebuilding process.
We have two compute nodes, let's call them hostA and hostB, and we have an
instance built on hostA, then:
1. migrate instance from hostA to hostB, and wait for instance status changing to VERIFY_RESIZE. Now instance RequestSpec's requested_destination is hostB,
ignore_hosts equals ['hostA'] as default CONF.allow_resize_to_same_host is False.
2. confirming or reverting the resize does nothing about instance RequestSpec.
3. rebuild instance with new image, nova set request_spec.force_hosts and
request_spec.force_nodes with current hostA [1]. Scheduler get hostB as matching one, and striping hostA as ignoring one. Then no force host or force node matched, then we get 0 hosts to filter [2]. Eventually get
NoValidHost exception.
Out release is queens-17.0.3, but I checked code on master, it has the
same issue.
[1].https://github.com/openstack/nova/blob/eb6fcb21917d56e4e287513c1159ad4656382714/nova/compute/api.py#L3362
[2].https://github.com/openstack/nova/blob/eb6fcb21917d56e4e287513c1159ad4656382714/nova/scheduler/host_manager.py#L569-L588 |
|