| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2022-03-23 | |||
| 01:09:26 | EugenMayer | since github does not let me resolve those symbols i cannot see what get_flavor will do if the referenced flavor is not present in nova_api::flavor but i can tell you that this will not work for xena at least | |
| 01:10:43 | EugenMayer | this cannot be rigbth | |
| 01:10:54 | EugenMayer | current_flavor['name'] is accessed, this is not part of instance_extras | |
| 01:11:22 | EugenMayer | most probably the data is expanded using the nova_api::flavor table? | |
| 01:12:02 | sean-k-mooney[m] | where are you seeing current_flaovr[name] | |
| 01:12:28 | sean-k-mooney[m] | and no once the instance object is created and save to the db we dont use the flaovr form the api db any more | |
| 01:12:48 | sean-k-mooney[m] | we should be either using the one in the request spec or the one in instance extra | |
| 01:13:08 | EugenMayer | https://github.com/openstack/nova/blob/master/nova/compute/api.py#L4162 | |
| 01:13:51 | sean-k-mooney[m] | current_flavor is instance.get_flavor | |
| 01:13:58 | EugenMayer | :) | |
| 01:14:09 | sean-k-mooney[m] | which get the filed form the instnace object | |
| 01:14:35 | sean-k-mooney[m] | the instnace object as i pointed too loads the flavor form the instance_extra table in the cell db | |
| 01:15:25 | EugenMayer | https://github.com/openstack/nova/blob/master/nova/compute/api.py#L4142 proves that new_flavor must match the interface of current_flavor, while new_flavor https://github.com/openstack/nova/blob/master/nova/compute/api.py#L4144 is a flavor entity .. and we can see | |
| 01:15:25 | EugenMayer | https://github.com/openstack/nova/blob/0d1dd103d1431400b04f5f3edcb0d48453a79151/nova/compute/flavors.py#L131 .. the comment of that message already tells at, it will use nova_apis database | |
| 01:16:08 | sean-k-mooney[m] | that method will yes but that is not what we are calling | |
| 01:16:39 | sean-k-mooney[m] | that is in the flavor api code | |
| 01:16:49 | sean-k-mooney[m] | that is just doing a lookup in the api db directly | |
| 01:16:54 | sean-k-mooney[m] | resize is not calling that | |
| 01:17:24 | sean-k-mooney[m] | well for the current_flavor | |
| 01:17:35 | sean-k-mooney[m] | it calls that for the new flavor that you are resizeing too | |
| 01:17:38 | EugenMayer | https://github.com/openstack/nova/blob/master/nova/compute/api.py#L4142 is telling us that whatever current_flavor is, it must match the same interface we load in https://github.com/openstack/nova/blob/master/nova/compute/api.py#L4144 | |
| 01:18:24 | sean-k-mooney[m] | that is cold migrate | |
| 01:18:35 | sean-k-mooney[m] | resize is used for both flavor resize and cold migration | |
| 01:19:06 | EugenMayer | and the latter is a fully loaded flavor from the nova_api::flavor table. And this explains why https://github.com/openstack/nova/blob/master/nova/compute/api.py#L4162 is the assumed, since 'name' is the field nova_api::flavor.name | |
| 01:19:10 | sean-k-mooney[m] | line 4142 is the cold migrate path | |
| 01:19:33 | sean-k-mooney[m] | 4144 is the resize and its loading the new flavor from the api db | |
| 01:19:38 | sean-k-mooney[m] | not the current flavor | |
| 01:19:44 | sean-k-mooney[m] | the new flavor must exist | |
| 01:19:56 | EugenMayer | maybe, but https://github.com/openstack/nova/blob/master/nova/compute/api.py#L4162 accesses a field that could never have been loaded from nova::instance_extra | |
| 01:20:23 | sean-k-mooney[m] | why? | |
| 01:20:32 | EugenMayer | there is no such field? | |
| 01:20:59 | sean-k-mooney[m] | the flaovr is stored as a json blob in the instance extra table | |
| 01:21:13 | sean-k-mooney[m] | so name would be in the blob not a colum in that table | |
| 01:22:19 | EugenMayer | i see that instance_extra::flavor is a json serialized model of the flavor | |
| 01:22:32 | sean-k-mooney[m] | yes | |
| 01:22:38 | sean-k-mooney[m] | we serialse the ovo | |
| 01:22:50 | sean-k-mooney[m] | and store it in the flaovr column | |
| 01:22:51 | EugenMayer | and there is the name field indeed | |
| 01:23:34 | sean-k-mooney[m] | so other then the new flavor we shoudl not have a depency on the old flavor exising | |
| 01:23:47 | EugenMayer | so this is deserialized. I understand. Then there is something else trying to access the 'flavor' of the 'old flavor' which leads to an exception | |
| 01:23:48 | sean-k-mooney[m] | in the api db | |
| 01:24:10 | EugenMayer | i see the idea here, got you. But there must be still a expectation left | |
| 01:24:39 | sean-k-mooney[m] | there may be an in correct lookup using the id or some other reference | |
| 01:24:53 | EugenMayer | i guess you can easily try that. Create an instance with a flavor, then change the flavor id in nova_api::flavor and you should no longer be able to resize the instance | |
| 01:25:14 | sean-k-mooney[m] | we could test it in a functional test | |
| 01:25:37 | sean-k-mooney[m] | create a flavor , boot an instnace ,delete the flavor then try to resize | |
| 01:25:42 | EugenMayer | you should see, when using `openstack server resize` - 409 | |
| 01:26:17 | sean-k-mooney[m] | well we should see a 200 :) but we might see a 409 indeed | |
| 01:26:26 | sean-k-mooney[m] | that would be a bug which we should fix | |
| 01:26:42 | EugenMayer | I would have loved to see a 200 :) | |
| 01:29:30 | sean-k-mooney[m] | so looking at the functional test quickly im not seeing a test for resizing after flavor delete in test_server.py | |
| 01:30:07 | sean-k-mooney[m] | we can try creating one tomorrow/later today and see if we can repoduce | |
| 01:31:26 | sean-k-mooney[m] | do you have teh stack trace by the way | |
| 01:32:20 | sean-k-mooney[m] | i can try and take a look at it in the morning its 01:30 here so i was just heading to sleep but i can take another look once im online tomorrow | |
| 01:32:39 | EugenMayer | well that's the funny thing, noboday on the 'user side' ever knows which sub-system is responsible here | |
| 01:32:52 | EugenMayer | so grabbing a stacktrace is not as easy as you might think :) | |
| 01:33:11 | EugenMayer | it's 2:30 here, so i'am with you | |
| 01:33:35 | EugenMayer | sure, i'll be online tomorrow, just mention me. Happy to help if i can. Thank you for your effort! | |
| 01:34:10 | sean-k-mooney[m] | EugenMayer: ah your in europe then i tought you were across the pond. ok ya ill see if i can put up a DNM patch with a simple resize test tomorrow and we will see if i can trigger it | |
| 01:34:46 | EugenMayer | sure! Have a good night then, i'am off to bed :) | |
| 02:51:36 | opendevreview | anguoming proposed openstack/nova master: fix the bug of the log line has no request_id info at source host when live migration https://review.opendev.org/c/openstack/nova/+/834677 | |
| 06:57:00 | opendevreview | melanie witt proposed openstack/nova master: block_device_info: Add swap to inline https://review.opendev.org/c/openstack/nova/+/826523 | |
| 06:57:00 | opendevreview | melanie witt proposed openstack/nova master: libvirt: Improve creating images INFO log https://review.opendev.org/c/openstack/nova/+/826524 | |
| 06:57:01 | opendevreview | melanie witt proposed openstack/nova master: libvirt: Remove defunct comment https://review.opendev.org/c/openstack/nova/+/826525 | |
| 06:57:01 | opendevreview | melanie witt proposed openstack/nova master: imagebackend: default by_name image_type to config correctly https://review.opendev.org/c/openstack/nova/+/826526 | |
| 06:57:02 | opendevreview | melanie witt proposed openstack/nova master: image_meta: Add ephemeral encryption properties https://review.opendev.org/c/openstack/nova/+/760454 | |
| 06:57:02 | opendevreview | melanie witt proposed openstack/nova master: BlockDeviceMapping: Add encryption fields https://review.opendev.org/c/openstack/nova/+/760453 | |
| 06:57:03 | opendevreview | melanie witt proposed openstack/nova master: BlockDeviceMapping: Add is_local property https://review.opendev.org/c/openstack/nova/+/764485 | |
| 06:57:03 | opendevreview | melanie witt proposed openstack/nova master: compute: Update bdms with ephemeral encryption details when requested https://review.opendev.org/c/openstack/nova/+/764486 | |
| 06:57:04 | opendevreview | melanie witt proposed openstack/nova master: virt: Add ephemeral encryption flag https://review.opendev.org/c/openstack/nova/+/760455 | |
| 08:23:13 | EugenMayer | sean-k-mooney[m] are you awake already? :) | |
| 08:24:51 | EugenMayer | sean-k-mooney[m] i can still reproduce it: Service is unavailable at this time. (HTTP 409) (Request-ID: req-686ad3ee-d15b-4361-94c8-5775092c4746) | |
| 08:25:34 | EugenMayer | i see "POST /v2.1/servers/acbf9ae7-8433-4b2f-bf61-66327ca134aa/action HTTP/1.1" 409 88 52160 "-" "python-novaclient" in the nova-api logs,nova-api error logs do not show anything | |
| 08:25:48 | Uggla | gibi, hi o/ | |
| 08:28:22 | gibi | Uggla: o/ | |
| 08:29:40 | EugenMayer | sean-k-mooney[m] i see only warnings about deprecations in horizon.log - i found some logs on the compute from yesterday failing to contact rabbitmq which are most probably unrelated: https://gist.github.com/EugenMayer/cf06fadc52c66018f09a470fe0ed260f - that's about what i could find | |
| 08:32:36 | gibi | Uggla: thanks again fort the docs :) | |
| 08:34:25 | Uggla | gibi, you are welcome. | |
| 09:00:44 | bauzas | gibi: \o | |
| 09:01:29 | gibi | bauzas: o/ | |
| 09:33:12 | opendevreview | ribaudr proposed openstack/nova master: Fix unit tests when they are run with OS_DEBUG=True https://review.opendev.org/c/openstack/nova/+/833115 | |
| 09:58:49 | opendevreview | Stephen Finucane proposed openstack/nova master: doc: Remove useless contributor/api-2 doc https://review.opendev.org/c/openstack/nova/+/828599 | |
| 10:59:39 | opendevreview | Rajat Dhasmana proposed openstack/nova master: Add support for volume backed server rebuild https://review.opendev.org/c/openstack/nova/+/820368 | |
| 10:59:39 | opendevreview | Rajat Dhasmana proposed openstack/nova master: Add conductor RPC interface for rebuild https://review.opendev.org/c/openstack/nova/+/831219 | |
| 10:59:40 | opendevreview | Rajat Dhasmana proposed openstack/nova master: Add API support for rebuilding BFV instances https://review.opendev.org/c/openstack/nova/+/830883 | |
| 11:05:49 | EugenMayer | when an instance keeps in the 'spawning' phase - where can i check for the cause? | |
| 11:09:52 | kashyap | gibi: Hey, on git/main with a patch, I see this: https://cpaste.org/?37b24bb8794dcdca#9jFENZMo38Bxjskev5QkLoGncaKucSgpx1tBHhvVKAYd | |
| 11:10:04 | kashyap | gibi: Am I missing anything trivial? os_traits is installed in my virtualenv. | |
| 11:36:49 | gibi | you probably have old os_traits lib in the venv | |
| 11:37:09 | opendevreview | Elod Illes proposed openstack/nova stable/xena: [stable-only] Set nova-tox-functional-centos8-py36 non-voting https://review.opendev.org/c/openstack/nova/+/834854 | |
| 11:38:06 | gibi | kashyap: you need 2.7.0 from os-traits https://github.com/openstack/os-traits/commits/2.7.0 | |
| 12:42:40 | opendevreview | Balazs Gibizer proposed openstack/nova master: Record SRIOV PF MAC in the binding profile https://review.opendev.org/c/openstack/nova/+/829248 | |
| 12:45:19 | kashyap | gibi: Darn lemme check | |
| 12:46:19 | kashyap | gibi: Hm, I do have it: | |
| 12:46:19 | kashyap | $> pip show os_traits | grep Version | |
| 12:46:20 | kashyap | Version: 2.7.0 | |
| 12:46:48 | gibi | that is strange | |
| 12:49:29 | gibi | https://paste.opendev.org/show/buddLlqeEzZc7ClpZWF3/ I can import that constant | |
| 12:51:23 | gibi | kashyap: could you try just import that constan in an interpreter started in that env? | |
| 12:54:12 | Uggla | I though a "reverify" comment would restart the CI... but it appears to not be the case. How to restart CI on a patches ? | |