| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2022-12-07 | |||
| 12:00:47 | sahid_ | instead of for TODO(name) or FIXME(name), which make sense has there is an action behind it | |
| 12:00:50 | sean-k-mooney | i kind of like having the name so i know who to ask about the note | |
| 12:01:10 | sean-k-mooney | sahid_: well the name is not ment to represent who is going to work on it | |
| 12:01:18 | sahid_ | yes i would have use git blame, but if we can't I understand | |
| 12:01:18 | sean-k-mooney | for TODO() and FIXME() | |
| 12:01:39 | sean-k-mooney | so the libvirt driver and compute manager often time out on github | |
| 12:02:06 | sean-k-mooney | so while i coudl do blame locally it does not work well for github/gitia | |
| 12:06:45 | sahid_ | BTW gibi, very impressive work | |
| 12:09:05 | gibi | sahid_: thanks, it was fun to get through it. I learned many things about our PCI codepath during that | |
| 12:09:32 | sahid_ | I imagine :-) | |
| 12:13:57 | sean-k-mooney | gibi: im sure you now have the scares on your soul to prove it too :P | |
| 12:14:17 | sean-k-mooney | gibi: with that said its both better and worse then it appears at first glance | |
| 12:14:48 | sean-k-mooney | once you wrap your head aroudn teh design its elegant in a way in how the virt driver bits are entirly abstracted | |
| 12:15:10 | sean-k-mooney | but there is a lot of other questionable choices that you ahve rectifed along the way | |
| 13:22:06 | gibi | sean-k-mooney: I agree with you I think the overal desing is OK, it just has a step learning curve | |
| 13:36:47 | sean-k-mooney | its proably comperable to emac/vims | |
| 13:36:56 | sean-k-mooney | which is not something to strive for | |
| 15:40:47 | sahid | o/ bauzas do you think we could discuss whehter the impl can get the Priority-Review bit as the spec received it? https://review.opendev.org/c/openstack/nova-specs/+/857838 | |
| 16:29:11 | opendevreview | Konrad Gube proposed openstack/nova-specs master: Use extend volume migration https://review.opendev.org/c/openstack/nova-specs/+/855490 | |
| 16:30:09 | opendevreview | Konrad Gube proposed openstack/nova-specs master: Use extend volume completion action https://review.opendev.org/c/openstack/nova-specs/+/855490 | |
| 16:47:09 | gibi | bauzas: zuul is happy now on https://review.opendev.org/c/openstack/nova/+/864014 | |
| 16:47:49 | bauzas | gibi: sent to the gate | |
| 16:47:54 | gibi | bauzas: thansk!~ | |
| 16:47:58 | gibi | thanks even :) | |
| 16:48:55 | kgube_ | sean-k-mooney, I rewrote the spec to reflect the current proposal in Cinder: https://review.opendev.org/c/openstack/nova-specs/+/855490 | |
| 17:00:35 | sean-k-mooney | thansk i should have time to review it tomorrow | |
| 17:26:21 | melwitt | bauzas: fyi auniyal has joined the bug triage rotation and put his name on the roster to help out | |
| 17:26:44 | bauzas | all cool | |
| 17:33:01 | gmann | bauzas: can you please check the 2023.1 testing runtime updates changes (few are trivial: update python classifier) https://review.opendev.org/c/openstack/nova/+/861111 https://review.opendev.org/c/openstack/osc-placement/+/861470 https://review.opendev.org/c/openstack/placement/+/861471 https://review.opendev.org/c/openstack/os-traits/+/861466 https://review.opendev.org/c/openstack/python-novaclient/+/861469 | |
| 17:33:14 | gmann | and adding focal job in nova, the first link | |
| 17:43:30 | sean-k-mooney | melwitt: nice find https://review.opendev.org/c/openstack/nova/+/866090/1/nova/volume/cinder.py#578 | |
| 17:45:01 | melwitt | sean-k-mooney: thanks for looking :) | |
| 17:45:06 | sean-k-mooney | melwitt: for api calls in functinal test we should be intersepting the calls in the cinder fixutre | |
| 17:45:56 | sean-k-mooney | so yes the get shoudl either be mocked in the fixutre or via requests later | |
| 17:46:59 | sean-k-mooney | its currently calling https://review.opendev.org/c/openstack/nova/+/866090/1/nova/volume/cinder.py#491 right | |
| 17:47:43 | melwitt | sean-k-mooney: I'm actually not sure if mocking 'nova.volume.cinder.API.attachment_get' would avoid the problem ... currently I have mocked 'nova.volume.cinder.API.get' (higher level). I can try mocking at the lower level and see what happens | |
| 17:48:12 | melwitt | yes that's right | |
| 17:48:17 | sean-k-mooney | what i dont really understand is why is this failing on python 27 | |
| 17:48:25 | sean-k-mooney | but not py3 | |
| 17:48:40 | melwitt | me neither. I googled a lot too and didn't find anything useful. you might have better luck | |
| 17:48:42 | sean-k-mooney | did the signiture of somethign change | |
| 17:49:33 | melwitt | I didn't think so... but the place it's failing is in deepcopy when it tries to "reconstruct the object" which is something I don't completely understand | |
| 17:50:11 | sean-k-mooney | do you know where that deep copy happens | |
| 17:50:25 | sean-k-mooney | i assume one of the fixtures right | |
| 17:50:31 | melwitt | yes it's in _untranslate_volume_summary_view | |
| 17:50:48 | melwitt | in nova/volume/cinder.py | |
| 17:50:50 | melwitt | no | |
| 17:51:06 | sean-k-mooney | oh right | |
| 17:51:28 | sean-k-mooney | i see and calling deepcopy on MagicMock is causing issue | |
| 17:51:50 | melwitt | yeah. but there are other tests that have the same thing afaict and don't fail. I don't get it | |
| 17:52:02 | melwitt | *other tests in the same test file | |
| 17:52:37 | melwitt | it's just this one test | |
| 17:52:53 | sean-k-mooney | its this depcopy ? d['volume_image_metadata'] = copy.deepcopy(vol.volume_image_metadata) | |
| 17:53:02 | melwitt | yes | |
| 17:53:06 | sean-k-mooney | https://github.com/openstack/nova/blob/90c0c687a487601e009c72f60c88be92f6a55264/nova/volume/cinder.py#L319 | |
| 17:53:20 | melwitt | that's the one | |
| 17:54:35 | sean-k-mooney | which was added 10 years ago https://github.com/openstack/nova/commit/fb32f1ed9be3e4f2f46d5aea405c62ef21397640 | |
| 17:56:17 | sean-k-mooney | i think that maybe we have a self erference in the MagicMock in this case | |
| 17:56:59 | sean-k-mooney | liek perhaps the one you get form an exception traceback on python2.7 that does not happen in python3 | |
| 17:57:18 | sean-k-mooney | the deepcopy seams to be getting stuck in a loop right | |
| 17:57:29 | sean-k-mooney | if i rememerb the error or was that not the issue | |
| 17:57:30 | melwitt | yes | |
| 17:57:37 | melwitt | it looks like a loop | |
| 17:58:37 | melwitt | but it only loops a handful of times before it fails on something's __init__ | |
| 17:59:04 | sean-k-mooney | well that might not be a loop exactly | |
| 17:59:17 | sean-k-mooney | i mean it might be looping over the filed or it could be recusing | |
| 17:59:29 | sean-k-mooney | but ya it fails on an __init__ call at some point | |
| 17:59:32 | melwitt | here's the trace if you want to see https://storage.bhs.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_80f/866090/1/check/openstack-tox-py27/80f58ef/testr_results.html | |
| 18:00:28 | melwitt | yeah I would think it's recursing | |
| 18:00:30 | sean-k-mooney | so i am wondering if we just need to set volume_image_metadata to something | |
| 18:01:59 | melwitt | that might do it. I was trying to pick the "most right" way to address it. I guessed mocking get() | |
| 18:03:49 | sean-k-mooney | ya i was wondering about get or _untranslate_volume_summary_view | |
| 18:04:12 | sean-k-mooney | but also wondering if we can do something in the fixture to not have it be a magic mock | |
| 18:04:21 | sean-k-mooney | like initalise the field to a {} | |
| 18:05:56 | sean-k-mooney | melwitt: https://github.com/openstack/nova/commit/22e9d22369d34e150855eb1710b371e80d17ebb0 | |
| 18:06:47 | sean-k-mooney | thats in yoga | |
| 18:07:15 | sean-k-mooney | actully might need to go a bit futher back | |
| 18:07:28 | sean-k-mooney | but the volume_image_metadata is not empty there | |
| 18:10:34 | sean-k-mooney | melwitt: train is before stephen split out the test fixutres into there own module | |
| 18:11:02 | sean-k-mooney | so im wonderign are you just missign something that there on xena | |
| 18:11:47 | sean-k-mooney | or in ussuri sorry | |
| 18:11:56 | sean-k-mooney | names hard | |
| 18:12:32 | melwitt | I dunno, I don't see that CinderFixture is used anywhere for these tests? | |
| 18:12:52 | melwitt | even on master | |
| 18:13:23 | sean-k-mooney | actully | |
| 18:13:34 | sean-k-mooney | again i keep forgeting this works on python 3 | |
| 18:13:49 | sean-k-mooney | so likely 1 this is just not mocked properly | |
| 18:14:05 | sean-k-mooney | and 2 the deepcopy and majicmock issue was proably fixed in python 3 | |
| 18:14:41 | melwitt | it even works in other tests with that path in the same file on python 2 | |
| 18:15:09 | sean-k-mooney | ya | |
| 18:15:20 | sean-k-mooney | although those were calling idffernt methods like terminate right | |
| 18:15:39 | sean-k-mooney | or was it working in other cases wehre there was a deepcopy | |
| 18:16:01 | melwitt | double checking.. | |
| 18:16:09 | sean-k-mooney | melwitt: in anycase yes i think treaking this on train is vaild. | |
| 18:16:43 | melwitt | sean-k-mooney: like this one, it doesn't fail https://github.com/openstack/nova/blob/master/nova/tests/unit/volume/test_cinder.py#L717 | |
| 18:16:45 | sean-k-mooney | we might also want to fix this on master but not really sure how to go about that | |
| 18:16:51 | melwitt | and it's pretty much exactly the same | |
| 18:17:02 | sean-k-mooney | but it does not raise | |
| 18:17:27 | melwitt | it raises the first call | |
| 18:17:30 | sean-k-mooney | and as i said im wondering if this is the issue with excptions have a circurlar dep | |