Thursday, 2022-10-06

vanougood morning Ironic o/00:28
opendevreviewMerged openstack/ironic stable/victoria: Do not reboot into nowhere after BIOS settings with fast-track  https://review.opendev.org/c/openstack/ironic/+/85941101:23
lecris[m]hjensas: about the ironic vs neutron dhcp issue [1], any ideas of how we can add the null character?05:48
lecris[m][1] https://bugs.launchpad.net/tripleo/+bug/199002805:48
lecris[m]Though it might be better to contact them at tripleo channel?05:49
vanouJayF: Sorry for delay. I had been away for a while... I'll check it and try it on local lab.05:53
vanouASAP05:53
opendevreviewKirill proposed openstack/ironic stable/wallaby: add vnc console  https://review.opendev.org/c/openstack/ironic/+/86055211:28
jandersajya dtantsur I got the SD resource from a Nokia machine: https://paste.openstack.org/show/bOGB1mJ3D2ZrStf2siUE/11:29
jandersit does have the attribute we are manipulating, so I suppose we could use the presence of the relevant attributes as a decision making factor11:29
dtantsurjanders: this is awesome, let's proceed then?11:51
jandersyeah I think so11:51
ajyajanders: sounds good. To reiterate, iDRAC has only BootSourceOverrideMode in /Settings resource if Settings are present at all.11:53
iurygregorygood morning Ironic11:57
jandersdtantsur ajya so - will go with the approach that if SettingsURI is specified by the BMC AND an attribute is listed under that SettingsURI, then we attempt to PATCH this attribute against the SettingsURI, alternatively we just patch the System resource, correct?12:11
jandersalso, on failure against SettingsURI, do we fail out or retry against the System resource (as per the current direction of the patch)?12:12
dtantsurjanders: do we have any hardware that needs retry?12:12
dtantsurafter what we've discovered?12:13
ajyajanders: I don't think retry will be necessary, at least for known systems 12:14
jandersI wasn't thinking specifically about a particular server, just thought perhaps that would help resiliency against future brokenness 12:15
jandersajya it wouldn't be necessary for the Nokia and Lenovo, agreed, was thinking hypothetical other systems12:16
janders(retry shouldn't break anything as we're not doing anything unusual to start withg)12:16
jandersbut I don't feel strongly about the retry part, if you folks reckon it's better to drop it I'm happy to do that12:17
ajyajanders: I rather think that such failures should be investigated as that would mean that new logic is not correct or BMC has a bug.12:21
jandersajya fair enough12:22
ajyaalso note that iDRAC returns different error id (PropertyUnknown) as Redfish spec isn't very specific about it. Unknown systems could return something else too 12:22
jandersyeah when I was thinking about the retry idea I figured we'd need to dillute the error checking (we used one specific to Lenovo failure mode, don't think it would apply to others)12:25
opendevreviewKirill proposed openstack/python-ironicclient stable/wallaby: Add graphical console interface  https://review.opendev.org/c/openstack/python-ironicclient/+/86056812:39
* TheJulia wipes sleep from eyes13:27
TheJuliagood morning13:27
dtantsurmorning TheJulia 13:30
JayFvanou: thanks; I hope you enjoyed your time away o/13:38
JayFI'm on openinfra live this morning, talking about Zed Ironic in ~22 minutes13:38
JayFif anyone wants to tune in :)13:38
* dtantsur is debugging some kubernetes insanity13:42
TheJuliaI get to have a meeting in a little bit :(13:43
TheJuliathursday meetings should be banned13:43
*** iurygregory_ is now known as iurygregory14:04
iurygregoryJayF, tks for doing this! 14:10
iurygregoryI hate the fact my parents are doing renovations in the house for the next 2 weeks -.-'14:10
TheJuliais there value in keeping the inspection data storage location migration tooling. It existed to allow data to be migrated from swift into a local database, but wondering if it is just cruft at this point14:17
dtantsurTheJulia: are there any issues with it?14:22
iurygregoryprobably worth an email in the list to see if people are using it... not sure14:22
dtantsurit's not horribly useful, but it's also not complete cruft14:22
TheJuliajust looking at the db cruft14:22
dtantsur(people may decide that the database no longer suits them and decide to migrate to swift, for example)14:22
TheJuliaI think it only allows swift to db, but I don't remember offhand14:22
TheJulialots of the migration stuff feels like magic14:28
* JayF nuked his keyboard 5 minutes before the presentation when he yeeted his tea everywhere :(14:53
JayFat least I recovered in time to present lol14:53
iurygregoryjesus, is so complicated to figure out why the rpm build is failing only because of some driver tests .-.15:04
TheJuliaiurygregory: would another set of eyes help?15:22
iurygregoryTheJulia, I can send you the link if you have some time 15:30
iurygregoryI think it's probably a broken dependency.. but couldn't reproduce the failure 15:31
opendevreviewJulia Kreger proposed openstack/ironic-inspector master: WIP: Use declarative reader/writer separation  https://review.opendev.org/c/openstack/ironic-inspector/+/46376815:44
TheJuliahmm.. functional tests seem broken, but progress()15:54
TheJuliaand they work if your local16:02
TheJulialovely!16:02
opendevreviewIury Gregory Melo Ferreira proposed openstack/ironic bugfix/20.2: [DNM] Testing something  https://review.opendev.org/c/openstack/ironic/+/86058716:03
kubajjdtantsur: TheJulia: I was looking at how the inspection works and figured that the periodic check result function waits until check status changes, right? This then needs to be stored in the database, but I have no clue how (I can't find where the value is used and written to the db).16:15
opendevreviewJulia Kreger proposed openstack/ironic-inspector master: WIP: Use declarative reader/writer separation  https://review.opendev.org/c/openstack/ironic-inspector/+/46376816:17
TheJuliakubajj: do you have an example I can look at?16:17
TheJuliaAlso, you may want to look at the patch I just uploaded. Making good progress :)16:17
kubajjTheJulia: https://github.com/openstack/ironic/blob/master/ironic/drivers/modules/inspector.py#L305 is the periodic function, check status is slightly below it16:18
kubajjWill have a look16:18
TheJuliakubajj: so... what actually changes states internally in ironic is https://github.com/openstack/ironic/blob/3b1504f4abeac357298ea967d63787f53aa977f6/ironic/drivers/modules/inspector.py#L36316:21
TheJuliaand it uses helpers16:21
TheJuliaso tasks can self change, the process_event() calls, and the error handlers use that16:22
opendevreviewMerged openstack/ironic bugfix/20.2: [iRMC] Add SNMPv3 authentication functionality  https://review.opendev.org/c/openstack/ironic/+/85921616:26
kubajjTheJulia: but what happens if everything goes right?16:27
kubajjFound it, it is the process_event('done'), right?16:28
TheJuliayup16:32
TheJuliaprocess event then moves the state to the successful completion state in the state machine16:32
TheJuliaI suspect the existing state machine is sufficiently modeled, as compared to inspector's own internal state machine16:34
kubajjis this state machine somewhere on conductor? (or who keeps track of it)16:34
TheJuliaconductor keeps track of it in ironic16:34
TheJuliaironic/common/states.py defines the state machine and ironic/conductor, specifically the task_manager stuffs handle interaction and movement through the state machine16:35
kubajjThanks, will have a look16:35
iurygregoryTheJulia, ok, we are not running py36 in bugfix/20.2.. yay?17:13
TheJuliatargetted to support 3.8....17:14
TheJuliaand 3.717:14
iurygregoryyeah, going to try to add the job to see the results XD17:14
opendevreviewIury Gregory Melo Ferreira proposed openstack/ironic bugfix/20.2: [DNM] Testing something  https://review.opendev.org/c/openstack/ironic/+/86058717:20
opendevreviewJulia Kreger proposed openstack/ironic-inspector master: WIP: Use declarative reader/writer separation  https://review.opendev.org/c/openstack/ironic-inspector/+/46376818:46
opendevreviewJulia Kreger proposed openstack/ironic-inspector master: WIP: Use declarative reader/writer separation  https://review.opendev.org/c/openstack/ironic-inspector/+/46376821:34
TheJuliayeah, I think I'm going to excise the internal version_id stuffs21:35
JayFTheJulia: have you gotten commitments from anyone else on reviewing the sqla 2.0 stuff? Or should I workflow them as I go through? 21:56
JayFand/or do they need to land atomically or semi-atomically21:56
TheJuliano explicit committments, they need to land in stacked order21:57
JayFOK; that's ambiguous for what I wanted to know:21:57
JayFshould I review all 3, and workflow all 3 only after I know they're all good to land21:58
JayFor as long as they land 1->2->3 (even with stuff between) it's OK21:58
* JayF suspects the latter given tests pass on each patch21:58
TheJuliaoh! so the allocations table one should likely go first22:13
TheJuliathen 1->2->3 as it makes sense22:13
JayFallocations table one? 22:15
JayFcan you link it up, I'm like 7/16 pages on phase 1 22:15
JayFor I'll find it if you don't22:16
JayFit wasn't marked prio iirc22:16
JayFhttps://review.opendev.org/c/openstack/ironic/+/86019822:16
JayFnope it was in my tabs list22:16
JayFGOT IT22:16
JayFTheJulia: ... that change is extremely problematic22:19
JayFTheJulia: can we chat about it sync? I think it'll be smoother if we do22:20
* JayF is unsure if you're aware of the ... insanity that is mysql variants and what `utf8` means22:20
JayFthis change is basically the opposite of what I expected :| 22:21
JayFthe more I think about this, the more bad the problem space and all the possible fixes are22:22
* JayF looks at https://design215.com/toolbox/utf8-4byte-characters.php to see if the 4th byte is worth fighting for22:24
JayFI think I'm coming to the conclusion that TheJulia's change is actually the least-terrible choice amung an array of terrible choices22:26
JayFTheJulia: I put a comment on it. I think we cannot get out from under the allocations table problem "quietly", and trying to fix it directly out from under the operator is likely to create more severe complications, unless I misunderstand something22:31
JayFrpittau: https://review.opendev.org/c/openstack/ironic/+/859250 can you look at my comment there when you get a chance? 22:37
JayFdtantsur: https://review.opendev.org/c/openstack/ironic/+/836966 you previously had comments on this; I think they are well enough out of date they are no longer relevent; but I'd rather not land this without your explicit thumbs-up that your concerns are resolved22:38
JayFdtantsur: (tl;dr: if you think it's OK now, just land it :D)22:39
TheJuliaJayF: I would be happy to chat now if you want22:42
TheJuliawe can't, it is mysql's architecture22:42
JayFDid you read the specific scenario I commented in the PR?22:42
TheJulianot yet, dealing with a board thing at the moment22:42
JayFTheJulia: then I know it's close to eod for both of us, why not read and respond async; I'll dedicate some time tomorrow afternoon to look at it together if your response doesn't set me straight :)22:43
JayFTheJulia: it all hovers around the "what-if" of a ironic operator already being on a mysql-like DB that believes utf8 means utf8mb422:43
TheJuliabut now I want to use hieroglyphs in server names... 22:44
JayFTheJulia: like I said, last time I stared down this issue was from using my standard MB4 test string (a poop emoji) in object names at like, 3 jobs ago22:44
TheJuliaheh22:44
TheJuliayeah, honestly... allocations being optional to use, I suspect either people are going to want to do a planned db change *or* ignore it if they know they are not ising it22:45
JayFthat is basically what I think the ideal solution is22:45
TheJuliabut come to think about it, we should likely issue an upgrade warning and link to docs22:45
JayFdo not try to paper over this quietly22:45
TheJuliawhich indicate how to fix it22:46
JayFWe cannot fix this quietly because we cannot assume all existing operator DBs are in a similar state22:46
TheJuliaoh, so... an operator explicitly can't use mysql in utf8mb422:46
TheJuliait won't work, our table creation points to utf8 being utf8mb3 today22:46
JayFI need to find the citations for this, but I believe mysql *variants* (which we may not officially support but are used) did that migration earlier22:47
TheJuliathe dump/load has what the prior was so it would re-create as is22:47
TheJuliaunfortunately alembic also has no primitives to support alter table charset/engine22:47
JayFAIUI no such primitives exist *at all* in mysql22:47
JayFyou have to dump and recreate table to change charset22:48
JayFat least that's what the state was last time I had to deal with a bug like this22:48
TheJuliaI know you can change the engine22:48
TheJuliaerr22:48
TheJuliacharset22:48
TheJuliathe engine is dump/load22:48
TheJuliaand modify the load file22:48
JayFI don't wanna say I don't believe you; but I absolutely have to see what release that support was added in 22:48
TheJuliabut realistically,, it shouldn't be a big deal. Things should just work and we can check what and warn I guess22:48
TheJuliathere are examples on changing charsets in the mysql docs, fwiw22:49
JayFack; I'll take a look22:49
TheJuliabut yeah, I'd rather just highlight, warn, and provide reference into how to fix it22:49
TheJuliaupgrade status being ideal for that actually22:49
JayFHonestly, reading that change22:50
JayFall I thought about is the places I've worked where staging and prod are /slightly different/22:50
JayFand char encoding being just a little off in one or the other, I'd be willing to guarantee has happened somewhere I worked before22:50
TheJulia"warning: your thing was created with [MyIASM|Latin1], you should like fix it if you actually use allocations"22:50
JayFso I have this story playing out of someone being ready to kick off their upgrade and getting screamed at by alembic :| 22:50
TheJuliayeah, which is likely why warning makes sense and if we detect where it might be a huge issue, we can also just change the warnign to an error22:51
TheJuliaso they don't go to the next version22:51
JayFI think I'd be more keen on that kind of approach22:51
TheJuliafwiw22:51
JayFwhen I've run Ironic in the past; I absolutely would rather a "stop and check this" in the release notes to trying to do it quietly22:51
TheJuliait is actually just a matter of taking what I posted, and adding a upgrade status check in22:51
JayFYou still think we should utf8->utf8mb3 in the migrations ?22:52
TheJuliasince there is not an actual alembic upgrade which would be impacted22:52
TheJuliaits a label for the creation aiui22:52
TheJuliaas a hint for sqlalchemy's dialect, nothing more22:52
TheJuliaso that is more for "when someone does a new install" so we don't create a 4 byte utf problem for themselves later22:53
JayFI think the scenario I want to test is a half-upgraded Ironic DB in utf822:53
JayFand see if it tries to change charset if I run a utf8mb3-explicit migration on it22:54
TheJuliathe mysql/mariadb pages I ran across highlighted utf8 is presently an alias for utf8mb322:54
TheJuliafwiw22:54
JayFI owe, for this discussion, finding proof that is not completely true for every mysql variant.22:54
JayFWhich may just be wrong and my memory is bad, that's an extremely likely possiblity :) 22:54
TheJuliaif you want, debian ships the hardcoded config to use utf8mb4 by default22:55
TheJuliabut notes they are the only folks that do that22:55
JayFThat may be exactly what I was thinking of22:55
JayFor something like dazzle (?) 22:55
TheJuliaand if you create a table as "utf8" on there, it uses "utf8mb3"22:55
JayFdrizzle?22:55
TheJuliadunno about drizzle22:56
JayFit's abandoned per the product page, as of 201222:56
JayFso that doesn't matter22:56
JayFack; I think if we put a warning it's fine, and I'll make time to do some testing to give myself some confidence too22:56
JayFI am extremely careful about DB migrations b/c like I said before; I think in most environments it's the one place in the code that never /really/ gets tested until it's run against someone's prod DB22:57
TheJuliaI completely agree, being someone who has written custom DB data migration tooling22:58
JayF+2 on all the SQLA2.0 stuff from me, btw22:59
JayFso if we can find a happy place here, we can bring your 747 full of work in to runway 202322:59
* JayF -> EOD23:02
TheJulialol23:31
TheJuliaJayF: I likely will be starting on inspector itself beyond updating it's overall interaction early next week. I'm likely going to kill an internal data model feature in the process which explains some of the headaches encountered in the past (and will make it simpler for the eventual migration into ironic.23:33
JayFI have a shallow understanding of that problem, basically just building up the DB scaffolding that it's needed for a while, but b/c it grew organically never got? That old patch from years ago?23:38
opendevreviewVerification of a change to openstack/ironic-python-agent bugfix/8.6 failed: Pin bugfix 8.6 ci jobs to zed  https://review.opendev.org/c/openstack/ironic-python-agent/+/85925323:39

Generated by irclog2html.py 2.17.3 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!