Wednesday, 2023-08-09

JayFJames is a long time OpenStacker! It's goood to hear about that. That's where I'm from :D 01:14
JayFthank you for the service steps julia, I'll review tomorrow01:14
opendevreviewJulia Kreger proposed openstack/ironic-python-agent master: WIP: Add get_service_steps logic to the agent  https://review.opendev.org/c/openstack/ironic-python-agent/+/89086401:18
opendevreviewTianqi Xiao proposed openstack/networking-generic-switch master: Add package definition for the tempest_plugin module  https://review.opendev.org/c/openstack/networking-generic-switch/+/89086501:23
JayFHmm. re: my devstack troubles, I have a lot of angry ovsdb_monitor log messages in q-svc logs saying there are no hosts in the hash ring02:35
rpittaugood morning ironic! o/07:00
rpittauJayF mmalchuk, I expect to see some improvements soon on Bifrost CI, the new package is ready but not published yet, you can follow the progress here https://bugs.launchpad.net/neutron/+bug/202933507:03
mmalchukrpittau so, CI still broken?07:30
mmalchukmorning \o07:30
rpittaummalchuk: unfortunately it is still broken07:36
* mmalchuk sad07:36
rpittaummalchuk: there's a lot of pressure for that to be verified, lot of bug reports, so I expect the fixed package to show very soon, the new build is actually already available07:37
rpittauhttps://kojihub.stream.centos.org/koji/buildinfo?buildID=3570507:37
mmalchukrpittau and there need a time to sync mirrors when released07:38
rpittauyeah07:38
mmalchukso not today?07:38
rpittaunot sure :/07:40
mmalchuk:/07:40
kubajjGood morning Ironic o/07:53
rpittauhey kubajj :)08:40
arne_wiebalckGood morning rpittau, kubajj and Ironic o/10:14
rpittauhey arne_wiebalck :)10:14
kubajjHi arne_wiebalck 10:15
*** toheeb__ is now known as toheeb11:39
iurygregorygood morning Ironic11:44
opendevreviewRiccardo Pittau proposed openstack/ironic master: [trivial] Remove todo note that was already done  https://review.opendev.org/c/openstack/ironic/+/89091212:33
rpittauhey iurygregory :)12:33
iurygregoryo/12:34
arne_wiebalckhey iurygregory o/13:26
TheJulia good morning13:37
rpittauhey TheJulia :)13:48
iurygregoryhey hey arne_wiebalck o/13:57
mmalchukrpittau any CI updates?13:57
rpittaummalchuk: nope :/13:57
mmalchuksad13:57
mmalchukhi TheJulia 13:57
iurygregorygood morning TheJulia =)13:57
rpittauI'm waiting for the new systemd pkg to show up here https://mirror.rackspace.com/centos-stream/9-stream/BaseOS/x86_64/os/Packages/, or at least here https://mirror.stream.centos.org/9-stream/BaseOS/x86_64/os/Packages/13:57
mmalchukit already built? bot not in place?14:02
rpittauthe pkg has not been tagged for release yet https://kojihub.stream.centos.org/koji/buildinfo?buildID=3570514:04
dtantsurit's possible that they tag things on certain days..14:10
TheJuliaor they had to push async updates which might have bumped things for a day14:13
TheJuliathe new intel cpu register vulnerability comes to mind14:13
TheJuliaI guess it is good I went on vacation last week....14:30
rpittauvacation is always good :)14:32
mmalchukits bad to back from vacation)14:41
mmalchukdon't want to work))14:42
JayFTheJulia: this is your morning reminder to try to carve out some time to test sharding 14:43
JayFI'm not going to be around around until this afternoon. I have a medical appointment.14:43
TheJuliaJayF: ack!14:44
TheJuliaJayF: test or review what was done :)15:05
opendevreviewJulia Kreger proposed openstack/ironic-python-agent master: WIP: Add get_service_steps logic to the agent  https://review.opendev.org/c/openstack/ironic-python-agent/+/89086415:44
rpittaugood night! o/15:53
opendevreviewAlex Welsh proposed openstack/bifrost master: Replace Cirros references with generic descriptors  https://review.opendev.org/c/openstack/bifrost/+/88394316:12
JayFTheJulia: yes 😁16:16
TheJuliak16:17
dkingJayF: Could you tell me how to have a collector run again inside of the IPA image after it has run and failed? I would like to be able to update code locally and run it exactly as it would be run.16:31
dkingPreviously, I had just been opening up a python REPL and loading the collector package and running that, but I think that there is some difference happening when inside of the ironic-python-agent. 16:32
dkingOh, I just saw the above. Would anybody else happen to know how to do that?16:33
NobodyCamGood morning Ironic Folks16:40
NobodyCamoff the all question, is sushy release tied to openstack release, I.e. Can one run latest sushy with ussuri ironic?16:41
TheJuliaSo... technically no, realistically, there may be a break since ussuri was ... what sushy 2.x ?16:47
TheJuliaJust not tested is maybe the best answer16:47
NobodyCam+++ Thank you17:08
dkingIs anybody currently here terribly familiar with the ironic-python-agent code?17:11
JayFI'm here now17:11
JayFbut I'm not sure I understand your original ask at 163117:11
dkingCurrently, I'm attempting to modify my custom collector locally and re-run it inside of ironic-python-agent without having to build a new image, PXE again, etc.17:12
JayFoooh17:13
dkingI know how to run the custom collector directly through the python REPL, but I am seeing an error that I can only seem to replicate so far in the logs from the initial ironic-python-agent run of the collector.17:13
JayFyeah python repl is probably a reasonable approach to that17:13
JayFcan you share the err log?17:14
JayFthere used to be a developer mode for IPA - standalone - but that was removed when we added agent token because it was at the intersection of security-risky and technically-hard17:14
dkingUnfortunately, the error message itself isn't terribly verbose:  Aug  9 12:12:45 localhost ironic-python-agent[1437]: 2023-08-09 12:12:45.249 1437 ERROR ironic_python_agent.utils [-] collector ark failed: not all arguments converted during string formatting#033[00m17:16
JayFoh, that *is* potentially useful17:16
JayFcan you share the code in question?17:16
JayFthat's going to be something weird in a format string17:17
JayFI think17:17
JayFyou are likely missing an int() or a str() somewhere in a logging call, f string, or .format() call17:17
dkingThat would seem to imply that there's some string formatting issue, and maybe a missing variable. I suspect, though I can't confirm it yet, that it has something to do with eventlet and how I tried to patch my code to work around some issues with proxy URLs.17:18
JayFYeah if you show me the code I strongly suspect I could spot it17:19
dkingThis is probably going to get rather involved, unfortunately. Would it be preferable to move this into a direct message?17:19
JayFI prefer in public so others can learn; if the code in question is private  I can take a cursory look but won't be able to look in depth17:19
dkingOkay, I'm good with that. First, what's the pastebin URL again?17:20
dkingI think that I can limit what I share enough that it won't be a problem.17:20
JayFyou can use any pastebin you want, I usually use gist.github.com I think there's an openstack one though17:22
JayFyeah https://paste.openstack.org17:22
dkingOh, I just managed to add in some extra debugging, and I found what I suspected. I'm having trouble connecting to a URL (in particular, using pynetbox) which is using a proxy URL. The error message above is really just secondary, and probably related to how I log an error somewhere.17:25
JayFthat sounds like it fits17:25
JayFI'll note that if you're experiencing a bug around proxy support, reporting it upstream might save you a patch :) 17:25
dkingSo, the context here is that I'm running code that had previously worked in a new environment where it requires the specific  requests to use a proxy URL (set with the `https_proxy` environment variable). This works fine for curl and even inside python using `requests.get(...)`. The problem occurs when I try to use pynetbox.17:26
JayFah, so basically your custom collector introduces a library that doesn't respect proxy17:30
JayFI would strongly suggest trying to find a different library. What are you using pynetbox for, exactly?17:30
dkingWhen I try to use pynetbox, the URLs gave an issue in Python's ssl.py calling the same super() over 400 times before giving up. The "fix" for this issue was to run `eventlet.monkey_patch()` before loading pynetbox. This works great inside of the REPL where it was failing too, but for some reason, when it is run inside of ironic-python-agent, I am now seeing a connection error.17:30
dkingI do some magic updating the server and NetBox using data from both.17:31
dkingWith pynetbox by itself, there's no problem, even inside the running node. It only seems to happen when pynetbox is run in ironic-python-agent. Also, I see that the "fix" involved the module eventlet, which is a dependency of ironic-python-agent, probably rewriting the connection code somewhere.17:32
JayFIt sounds like you're in the neighborhood17:33
JayFeventlet 10000% for sure does monkey patch python modules to make them more green17:34
JayFincluding ssl, socket, etc17:34
JayFthat can break some modules, depending on what they are doing17:34
dkingIs there a way to "ungreen" that stuff? I'm guessing it has something to do with SSL, and in this case, particularly with using a proxy URL.17:37
JayFNo; and you don't want that even if you think you do -- imagine how much I/O IPA does -- reading/writing images, etc17:38
dkingI'm even open to a dirty fix. 17:38
JayFif you ungreen it it turns into a giant freeze pop from all the I/O :D 17:38
JayFthe fix is answer the question of what pynetbox gets you17:38
JayFand find a library, or implement natively, whatever value it's giving you17:38
JayFbecause not supporting http proxys is a smell to start with, which makes me suspect the eventlet incompatability will not be easy to find (I've literally spent multiple-weeks chasing this kind of issue in IPA in the past)17:39
dkingWell, pynetbox supports proxies. Again, it's only a problem when running pynetbox from ironic-python-agent.17:45
JayFYou still have never addressed the primary question17:47
JayF> answer the question of what pynetbox gets you17:47
JayFliterally, say it out loud17:47
JayFwe might suggest a different library :D 17:47
dkingIt gets met he ability to easily and concisely collect data from NetBox and update data from NetBox.17:48
dkingIf you know of something else, that might be nice.17:48
JayFoh, netbox is a thing?17:49
JayFoh yikes17:49
dkingOh, yeah. It's a service to manage your infrastructure. I suppose that I just assumed you'd be familiar with it.17:50
JayFI have no real answer for you then :( It's likely going to take engineering work to figure out the incompatability17:50
JayFIf I were in your shoes I'd do the following:17:50
JayF1) Try to make a minimal python test case to reproduce. Like eventlet monkey patch, setup the proxy, demonstrate the failure, and file it as an issue with upstream netbox17:50
dkingYeah, probably digging into what exactly IPA does with eventlet, or what eventlet does to ssl.py, etc. And then try to figure out what pynetbox actually needs from it.17:50
JayFno, going that direction will not likely give you anything but pain (IPA<>Eventlet) 17:51
JayFlooking at how eventlet breaks the tool is useful17:51
JayFbut I think the minimal reproducer is a prereq to getting there17:51
JayFbut 2) I'd work around by shipping a separate python script which I'd shell out to17:51
JayFand/or shipping a netbox CLI and shelling out to it to get your work done17:52
dkingyeah, I might put in an ugly temporary path where the "collector" just calls out to a shell script that runs the actual collector. Because it runs fine.17:54
dkingJayF: So, in the meantime, is there a way for me to cause the ironic-python-agent to re-run the collector?18:12
JayFYou'd have to re-inspect via Ironic API, I believe18:14
JayFInspection is not my strength :) 18:14
* TheJulia is under a rock today, sorry18:37
dkingJayF: So.... does ironic-python-agent pick up environment variables from /etc/environment?18:40
JayFit runs outta a systemd unit18:43
JayFwhich usually doesn't load /etc/environment on most distros18:44
dkingThat was my problem currently. However, I still think I needed eventlet.monkey_patch() to get this far. 18:44
dkingOkay, so a separate issue, still regarding inspection, though. I finally got that node to run the collector. Now, it's in state "inpsect wait", the last logs in IPA show that it is listening, and in the ironic API logs, I see that it's making POST requests with 202 responses, but that's been going for a while, and I suspect that it's going to timeout. Another node already did.19:20
dkingCould it be that it's having trouble powering off the node?19:21
TheJuliapossibly19:55
TheJuliaso inspector will try to ask ironic to power it of I think19:56
TheJuliabut there is a weird path in there I don't quite remember19:56
dkingOkay. I think I got it. It was just an error I introduced. Still, I would be interested in knowing how to troubleshoot that part of the process better in the future.19:59
TheJuliaWithout asking more questions I won’t be able to provide an easy answer to that :)20:07
TheJuliaAnyway, need to go get a passport photo taken20:07
JayFI will say, some of it is just hard when you're troubleshooting actual-hardware things20:07

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