Earlier  
Posted Nick Remark
#openstack-nova - 2022-08-30
19:20:46 sean-k-mooney[m] i dont think it would be that hard to test this although i have not really done much with tempest. lets see if there is a simiar test we can modify
19:21:39 dansmith no,
19:21:44 dansmith I'n not saying we should waste time on a test
19:21:59 dansmith I'm saying we *could* easily write a legit test that *will* fail on a grenade job because this is broken
19:22:14 dansmith that should be our *semantic test* for "is this something we should merge"
19:23:02 dansmith sean-k-mooney[m]: this also has a bit of a race sort of condition in it
19:23:11 dansmith if I do a hard reboot with new user data,
19:23:20 sean-k-mooney[m] ah right i think you confinced me already that we should not merge it as is
19:23:22 dansmith the API will write the user data to the instance record, then go to make the rpc call
19:23:31 dansmith if rabbit is down, or the compute is down, the rpc call will fail,
19:24:33 dansmith well, I guess it will still see the dirty flag in that case, but only if they do another hard reboot
19:24:44 dansmith point being, the pre-update of the user data is presumptuous
19:24:45 sean-k-mooney[m] yes
19:24:55 dansmith not easy to resolve that at this point though
19:25:03 sean-k-mooney[m] the dirty flag was intneded to say regenerate the config drive the next time you hard reboot
19:25:46 sean-k-mooney[m] which made sense when the intent was to allow update with config drive
19:25:48 dansmith another interesting wrinkle in that case,
19:25:55 dansmith is that we'll set that flag even if the compute is way too old,
19:25:57 sean-k-mooney[m] since it was lazy
19:26:16 dansmith then they reboot, nothing happens.. then 6mo later when the operator upgrades that compute .. poof, user data changes
19:26:33 sean-k-mooney[m] yes but when the compute is eventually updated it will regenerate the config on the next reboot
19:27:48 dansmith right, but that could be many months later
19:27:56 dansmith which could be quite confusing for someone,
19:28:15 dansmith especially if they wrote something to test, tried to set it via hard reboot, it seemed to allow it but never worked, shrugged and went off,
19:28:24 dansmith then 6mo later it changes suddenly...
19:28:38 dansmith that user_data script might have been untested, they couldn't test it, so they assumed no harm
19:29:08 sean-k-mooney[m] it could. so orginally the problem of how/when to regnerate the conf dirver came up a few months ago after the spec review
19:29:27 dansmith I upgraded my +0 to -1: https://review.opendev.org/c/openstack/nova/+/816157
19:29:32 sean-k-mooney[m] and at the time the ideia of the dirity flag was disucsed to allow this
19:29:59 sean-k-mooney[m] its obvious we should have intoduced the rpc bump now
19:30:15 dansmith yeah I understand the "lazy do it later" aspect, but if it's broken and doesn't get honored right away, that "later" being a half year or more seems like more harm than good
19:30:25 sean-k-mooney[m] but orgianlly i tought that lazy rebuild was actully desirebale
19:30:39 sean-k-mooney[m] ack
19:30:51 dansmith lazy is good as long as it's not TOO LAZY :P
19:31:53 sean-k-mooney[m] the rebuild series has both a compute service bump and rpc bump right
19:32:22 dansmith yes
19:32:30 sean-k-mooney[m] so eihter way it will have to be updated when this is adressed
19:32:38 dansmith yes
19:32:50 sean-k-mooney[m] so 6.1 would be for update_userdata and 6.2 for rebuild
19:33:02 dansmith yeah
19:33:09 dansmith are you thinking be sneaky and combine? I dunno how I feel about that
19:33:30 sean-k-mooney[m] no
19:33:53 sean-k-mooney[m] 6.1 for extending hard_reboot
19:34:01 sean-k-mooney[m] and 6.2 for extending rebuild
19:34:08 sean-k-mooney[m] not cominign both into 6.1
19:34:18 sean-k-mooney[m] since there in different patches that would be odd
19:34:23 dansmith ack, yep, that's what i'll be, and of course service versions for each bump
19:34:35 dansmith *it'll
19:34:39 sean-k-mooney[m] and we should not squash them obviously since the patches are unrelated
19:35:11 dansmith no, I just thought you were about to "get creative" :)
19:35:29 sean-k-mooney[m] hehe not with correctness
19:35:49 sean-k-mooney[m] out side of a bug fix…
19:36:59 sean-k-mooney[m] jhartkopf: ^
19:37:09 sean-k-mooney[m] not sure you were following that
19:38:17 dansmith not online, AFAICT
19:39:00 dansmith ugh,
19:39:11 dansmith all of the virt and rpc stuff that the rebuild patches touch will conflict out
19:39:18 dansmith I so wish luck had landed these in opposite order
19:46:56 sean-k-mooney[m] by the way apprently the matix bridge does not actullly only show you the currently online people
19:47:24 sean-k-mooney[m] which is why jhartkopf auto completed for me even if they are not here
19:51:26 dansmith sean-k-mooney[m]: https://termbin.com/q3ev
19:51:32 dansmith I think that's basically what needs to happen
19:52:43 dansmith I wish we could get a read on this from melwitt and gibi so I should know if I should spend my evening trying to get this all changed and tested
19:53:31 sean-k-mooney[m] ignoring your base64 nits that looks about right
19:54:57 dansmith it also seems like the tests on this are pretty lacking, no?
19:55:04 dansmith like, there are no tests on the virt driver changes?
19:55:10 sean-k-mooney[m] im currently trying to set up a devstack env i dont currently have one to test it. we do still have 2 days for code frezee
19:55:42 dansmith like, no test that I see that actually checks that the libvirt driver will honor the flag
19:56:03 opendevreview Rico Lin proposed openstack/nova master: Add traits for viommu model https://review.opendev.org/c/openstack/nova/+/844507
19:56:19 gibi I'm not sure I have enough brain left today for this. But I have at least two comments to the above 1) I don't think this is a rebuild feature it is tight to hard reboot 2) I think we prevented the possible upgrade issue with the capability trait.
19:56:43 ricolin sean-k-mooney[m]: just update the viommu traits patch :)
19:56:45 gibi I cannot argue that this can be done differently
19:57:08 gibi and dansmith you are right that the system metadata dependency makes it at least a grey interface
19:57:42 gibi it is sad that we figured out this issue late in the cycle
19:58:12 dansmith gibi: I don't understand what you mean by #1, but yeah I guess you're right on the trait.. that's preeety thin though :)
19:59:02 gibi #1 is probably just a missunderstanding from
19:59:03 gibi 20:58 < dansmith> rebuild is basically growing a new feature, and we need to pass it a flag,
20:00:03 sean-k-mooney[m] the trait wont be reported on a non upgraded compute yes
20:00:14 sean-k-mooney[m] which might help for the upgrade chase specifically
20:00:26 dansmith gibi: oh yeah I meant reboot there sorry
20:00:27 gibi on the flag itself. The RPC flag vs the persisted field has some semantic difference. If we update the user_data in the DB in the API layer then pass a flag to regenerate the config drive via the RPC then a lost RPC means that the DB data and the config data got out of sync
20:01:24 dansmith gibi: but we can and should revert if we're reporting failure to the user
20:01:30 sean-k-mooney[m] so im not sure if we should revert
20:01:32 dansmith because if this happens because of the lack of a trait or version,
20:01:34 gibi the reboot RPC is a cast
20:01:45 gibi so if the RPC lost the API wont notice
20:01:46 sean-k-mooney[m] the reason for that is todya id we update instnace metadata
20:01:48 dansmith then it will pop into being in six months and be very confusing
20:01:52 sean-k-mooney[m] we dont update the config drive
20:02:04 sean-k-mooney[m] unless you do a cross cell migration
20:02:23 sean-k-mooney[m] so you can have a delta between the metadta api and the config drive today
20:02:31 melwitt ugh, my irc client had "froze" not receiving new messages for only this network and I didn't realize it until now. had to close and reopen the client to receive and send messages
20:03:02 dansmith gibi: ack, not for a version conflict, but for an actual lost RPC we'd get out of sync.. I'm not sure if that's better or worse than queuing an update for six months later on a different version of the software, but fair point
20:03:35 gibi yeah, both case seems problematic
20:03:39 dansmith indeed
20:03:55 melwitt I just skimmed through yalls review comments from today a little while ago and don't have a handle yet on what's going on. I will read further and add a comment once I understand it
20:04:23 dansmith I guess the trait eliminates the acute concern of this being actually broken, but I'm still concerned about setting the precedent for shadow RPC interfaces in metadata, even if protected by a flag like that
20:04:24 gibi could we do both the DB update and the config driver regeneration from the nova-compute service?
20:04:33 sean-k-mooney[m] do we consider the user_data to be higher imporantce to be updated then other info in the config drive
20:04:36 dansmith it's what we have versioning for and how we do math about "can we do this now or not"

Earlier   Later