| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2023-09-01 | |||
| 14:01:20 | bauzas | dansmith: shouldn't need to update node, right? | |
| 14:01:27 | bauzas | dansmith: it's not changing | |
| 14:01:47 | bauzas | but, compute_id, mmmm, yeah you're right :( | |
| 14:02:04 | dvo-plv | I would like to talk regarding our proposal | |
| 14:02:22 | dansmith | bauzas: if compute_id is changing then node is changing, however, we're changing host to point to a different node, right? | |
| 14:02:40 | dvo-plv | Currently I see two option. 1 we move back to the separate mech driver. 2 we generate socket in the OpenStack and pass it to the dpdk | |
| 14:03:02 | bauzas | dansmith: well, the compute node uuid is the ironic node uuid | |
| 14:03:13 | bauzas | so, it shouldn't be changing, right? | |
| 14:03:17 | dvo-plv | I belive that 2 option is more suitable for you | |
| 14:03:55 | dansmith | okay I see, we're moving the node between services... | |
| 14:04:04 | dvo-plv | So, how do you see it in terms of the OpenStack, out dpdk team currently analyze this approach with our pmd driver | |
| 14:04:33 | bauzas | dansmith: correct, that being said, now I wonder about compute_id | |
| 14:04:58 | dansmith | bauzas: compute_id should match the node, so only change one if the other | |
| 14:05:15 | bauzas | ah, I was about looking on your series | |
| 14:05:35 | dvo-plv | I belive that using common option vhost-server-path is not acceptable in case dpdk port type, so we should create the new one, and it also will be appropriate parameter | |
| 14:05:53 | bauzas | (b/c while I reviewed it, honestly, I didn't thought about Ironic) | |
| 14:06:59 | sean-k-mooney | dvo-plv: ya so option 2 woudl be my prefernce. but add a new dpdkarg or extra_config to hold the path | |
| 14:07:29 | sean-k-mooney | dvo-plv: we have kind of a chicken and egg problem | |
| 14:07:41 | dansmith | sean-k-mooney: really? we have no jobs without cinder? | |
| 14:07:48 | sean-k-mooney | dansmith: apprently | |
| 14:07:59 | sean-k-mooney | dansmith: its enabled by default in the devstack base job | |
| 14:08:24 | dansmith | sean-k-mooney: that doesn't make sense to me.. if we have no cinder, we should have no bdms with type==volume | |
| 14:09:07 | sean-k-mooney | dvo-plv: os-vif does not have a way to return data ot nova, nova need to knwo the socket path to put it in the libvirt xml so qemu cna create it, and neutron does not knwo what vendor nic is being used | |
| 14:09:13 | bauzas | dansmith: ok, indeed compute_id == compute_node.id (found it in the code) so are you +W then ? | |
| 14:09:28 | bauzas | dansmith: see https://bugs.launchpad.net/nova/+bug/2033752 | |
| 14:09:43 | dansmith | bauzas: it was already +W, I just -Wd to make sure we weren't missing something | |
| 14:10:15 | sean-k-mooney | dansmith: hum... that is a very good point | |
| 14:10:22 | sean-k-mooney | oh | |
| 14:10:33 | sean-k-mooney | https://review.opendev.org/c/openstack/nova/+/893502/4/nova/compute/manager.py#4217 | |
| 14:10:42 | sean-k-mooney | dansmith: that line is alwasy called | |
| 14:10:47 | dansmith | ah | |
| 14:10:49 | bauzas | dansmith: the problem is with https://github.com/openstack/nova/blob/master/nova/compute/manager.py#L4209 | |
| 14:11:09 | bauzas | everytime we call it | |
| 14:11:16 | dansmith | so let's put a check to not do anything else if no bdms_to_delete right? | |
| 14:11:36 | dansmith | if not bdms_to_delete: return | |
| 14:11:37 | bauzas | no, because we could have none BDMs | |
| 14:11:49 | bauzas | while there could be dangling volume attachments | |
| 14:11:54 | sean-k-mooney | i mean i can adda that as well | |
| 14:12:00 | bauzas | but, I looked at shutdown | |
| 14:12:07 | sean-k-mooney | are you suggesting removing the check for if cinder exists | |
| 14:12:11 | dansmith | bauzas: that's to delete attachments cinder thinks we have? | |
| 14:12:21 | sean-k-mooney | or just also adding a second check on line 4216 | |
| 14:12:32 | dvo-plv | sean-k-mooney, If we extend this field with socket, it will be acceptable, right ? https://github.com/openstack/os-vif/blob/master/vif_plug_ovs/ovsdb/ovsdb_lib.py#L184 | |
| 14:12:38 | dansmith | bauzas: isn't that wrong anyway? | |
| 14:12:59 | dansmith | bauzas: what if we have a multi-attach volume, with one instance and one standalone attachment for an externally-managed database server or something? | |
| 14:13:15 | sean-k-mooney | dvo-plv: i think that would be the correct approch yes | |
| 14:13:29 | sean-k-mooney | and if other vendors then want to integrate they just need to supprot that too | |
| 14:14:07 | bauzas | dansmith: on the first way, I'm okay with the verification : if we have nova attachments, then we can verify whether cinder also has them | |
| 14:14:07 | dvo-plv | okay, great, we will rework this solution. Do I need to udpate spec file ? | |
| 14:14:30 | bauzas | dansmith: on the other way, we could have cinder attachments while we wouldn't see BDMs | |
| 14:14:43 | dansmith | bauzas: right, but that's valid in the real world right? | |
| 14:15:05 | sean-k-mooney | dvo-plv: yes but not entirly because of this. last week was the non-client lib freeze so os-vif is frozen for bobcat and yesterday was the feature freeze for nova so the spec need to be reposposed for next cycle | |
| 14:15:13 | dansmith | bauzas: or, I guess we're filtering by only attachments for that instance, so maybe that's okay | |
| 14:15:33 | sean-k-mooney | dvo-plv: so it would be nice to note this in that when you reporpose the spec | |
| 14:15:46 | bauzas | dansmith: well, if you see my comments, I was torn | |
| 14:16:10 | bauzas | I wonder whether it's possible to have dangled volume attachments for this instance while we no longer have the BDMs | |
| 14:16:29 | bauzas | in order to remove the stale cinder attachments | |
| 14:16:42 | dansmith | bauzas: we should only do that if they specify our instance in the attachment | |
| 14:16:54 | sean-k-mooney | bauzas: if you try to attach a volume to an isntace via cinder it will create that case | |
| 14:17:10 | sean-k-mooney | fortunetly that is now blokcked without a service token | |
| 14:18:09 | sean-k-mooney | i.e. if a attachment extis for a voluem that we do not have a bdm for. you either did a db restore or messed with the nova db or you use cidner api to create it directly which we never supported | |
| 14:19:03 | sean-k-mooney | dansmith: bauzas: i have not been fully following your conversation but im planning to finish in the next hour or so | |
| 14:19:14 | sean-k-mooney | with that in mind is there a direction we want to take to unblock things | |
| 14:19:34 | sean-k-mooney | revert? proceed with patch? or is there a change you woudl like me to make quickly? | |
| 14:19:43 | dansmith | stale attachments are the only *legit* way to get there now, but that can certainly happen | |
| 14:19:45 | sean-k-mooney | alternitivly im fine with someone else takeing over this | |
| 14:19:47 | dvo-plv | okay, I got it | |
| 14:19:50 | dvo-plv | thanks | |
| 14:20:09 | dansmith | sean-k-mooney: bauzas I'd be okay with revert and fix, but if not, sean-k-mooney's patch needs some change I think | |
| 14:20:21 | dansmith | I can make the change if bauzas is around to approve, but melwitt is out today and monday all of the US is off | |
| 14:20:26 | dansmith | so a fast revert might be more prudent | |
| 14:20:38 | bauzas | dansmith: that's what it's doing now, right? we ask Cinder to tell us if we have volume attachments for this instance | |
| 14:20:57 | dansmith | bauzas: yeah, I'm just now reading it.. that wasn't in the version I last reviewed | |
| 14:21:09 | bauzas | but, how can we make this call conditional? I don't see | |
| 14:21:30 | bauzas | that's why wrapping the exception seems the easiest path to me | |
| 14:21:30 | dansmith | well, one thing we could do is just not do that healing at all if the instance has no volume bdms | |
| 14:21:49 | bauzas | dansmith: but we wouldn't fix the problem of a stale volume attach | |
| 14:22:10 | bauzas | and looking at other pieces of code, we just blindly catch the keystone exception actually | |
| 14:22:12 | sean-k-mooney | bauzas: in the event there are no other cinder voluem on the instance | |
| 14:22:13 | dansmith | bauzas: yep, we just need to make a call | |
| 14:22:42 | bauzas | dansmith: example with shutdown https://github.com/openstack/nova/blob/master/nova/compute/manager.py#L3173-L3178 | |
| 14:23:04 | dansmith | bauzas: yep, we could just wrap all of that function in that check and move on.. perhaps that's safest | |
| 14:23:27 | bauzas | that's what I originally ask to auniyal but then sean-k-mooney and I discussed on having a better helper | |
| 14:23:29 | dansmith | but we need to not log that on every single reboot for people that have no cinder at all, which is what sean-k-mooney's patch will currently do | |
| 14:23:48 | sean-k-mooney | ah i can drop the log | |
| 14:23:56 | sean-k-mooney | i didnt have it orgianlly | |
| 14:23:59 | bauzas | dansmith: to not help the problem, we don't cache the cinder client | |
| 14:24:16 | bauzas | dansmith: we're really instantiating it at every call we make | |
| 14:24:35 | sean-k-mooney | dansmith: this is the log you are refering too right https://review.opendev.org/c/openstack/nova/+/893502/4/nova/compute/manager.py#4193 | |
| 14:24:37 | dansmith | bauzas: are we? | |
| 14:24:41 | bauzas | yes | |
| 14:24:50 | dansmith | sean-k-mooney: the one with the ugly parens, yeah :) | |
| 14:25:11 | bauzas | dansmith: eg. https://github.com/openstack/nova/blob/master/nova/volume/cinder.py#L863 | |
| 14:25:44 | dansmith | bauzas: ack | |
| 14:26:56 | dansmith | bauzas: you need to re-+W the ironic manage one | |
| 14:27:35 | opendevreview | Danylo Vodopianov proposed openstack/nova master: Packed virtqueue support was added. https://review.opendev.org/c/openstack/nova/+/876075 | |
| 14:28:41 | opendevreview | sean mooney proposed openstack/nova master: only attempt to clean up dangling bdm if cinder is installed https://review.opendev.org/c/openstack/nova/+/893502 | |
| 14:28:41 | bauzas | dansmith: ack, will | |
| 14:30:31 | dansmith | man I hate wasting vertical space on dangling parens | |
| 14:31:14 | sean-k-mooney | i have kind of started to do that because of ifs but ya i prefer not to wast it either | |