itamarst | hello! JayF sent me here, and wanted to share some things I've been working on | 14:07 |
---|---|---|
itamarst | 1. Trying to upgrade pysnmp to newer version in ironic. pysnmp 7 uses asyncio, so that means ironic needs to support asyncio, which means it needs to use asyncio eventlet hub | 14:08 |
itamarst | 2. When I enabled asyncio eventlet hub in ironic, the tests immediately hit an issue in oslo.log where PipeMutex (which is monkeypatched into stdlib logging) doesn't work with asyncio hub. I have code that fixes the oslo.log code, but | 14:09 |
itamarst | 3. I also found a bug in the eventlet asyncio hub; a fix has been merged. | 14:09 |
itamarst | so order of operation will need to be (A) new asyncio release (B) update version on eventlet wherever these dependency versions are recorded (not really an openstack developer so I dunno) (C) get fix merged into oslo.log (D) look at ironic changes | 14:11 |
itamarst | in practice there may be more blockers, so I will continue running ironic tests on asyncio hub and see if there are more problems | 14:12 |
itamarst | (correction: not "(A) new asyncio release", but rather "(A) new eventlet release") | 14:12 |
hberaud[m] | o/ | 15:00 |
hberaud[m] | Welcome here itamarst | 15:00 |
hberaud[m] | I think there is a "E" step | 15:01 |
sean-k-mooney | itamarst: on point c | 15:01 |
sean-k-mooney | fixign the pipemutex is prebaly best doen by removing it or reimpelmeting it | 15:01 |
hberaud[m] | our requirement upgrade is for now blocked by a neutron job problem https://review.opendev.org/c/openstack/requirements/+/933257 | 15:01 |
sean-k-mooney | the reason it causes issues today is the shareing of the file descriptors between threads | 15:02 |
hberaud[m] | so until the neutron cross-job is fixed we are not able to bump the global requirements | 15:02 |
hberaud[m] | s/until/while/ | 15:02 |
sean-k-mooney | that forced a workaroudn to disabel that proection for exsiting users os simpley disabling it for asynico hub does nto change teh fact that its unsafe today | 15:03 |
hberaud[m] | s/is fixed/is not fixed/ | 15:03 |
sean-k-mooney | hberaud[m]: ya that partly blocked behind os-vif as well but im oging to disable the flaky test to unblock that | 15:03 |
hberaud[m] | cool | 15:03 |
sean-k-mooney | the eventlet bump it blocked by neutron and oslo bump it blocked by droping netifaces in os-vif | 15:04 |
itamarst | sean-k-mooney: I reimplemented pipemutex for the asyncio case | 15:08 |
sean-k-mooney | itamarst: i woudl like to have an impleation that works without asyncio too | 15:08 |
sean-k-mooney | does it have a depency on asyncio? | 15:08 |
itamarst | so the reason that exists at all is because of eventlet | 15:09 |
itamarst | i.e. it's monkeypatched into logging stdlib because of eventlet | 15:09 |
sean-k-mooney | yes but the imeplemation uses a debug option that is not intened for use in production | 15:09 |
itamarst | so I made a version for asyncio eventlet hub (that doesn't use debug issue) | 15:09 |
itamarst | but if you didn't use eventlet at all you'd just not monkeypatch | 15:10 |
sean-k-mooney | it was added to solve a bug in how oslo.log worked but that bugfix intoduced another bug | 15:10 |
sean-k-mooney | sure there are 2 iessues. one the pipemutex that was added to work around a diffent bug uses a debug flag that should not be used in production code | 15:11 |
sean-k-mooney | second that flag is not supproted with teh asyncio hub | 15:11 |
sean-k-mooney | so it blocks usign eventlet with the asyncio hub currently | 15:11 |
sean-k-mooney | and wehn using the eventlet native hub its runing evently in an unsafe debug mode | 15:12 |
itamarst | I am only focusing on the second issue, yes | 15:12 |
JayF | So itamarst pushed the fix for (2) above here: https://review.opendev.org/c/openstack/oslo.log/+/935800 | 15:58 |
JayF | if we can get that reviewed and landed, I'll take the action to port that fix into the swift version of that pipemutex | 15:58 |
itamarst | that's a different fix actually | 15:59 |
JayF | oh, really? | 15:59 |
itamarst | yeah that's deadlocks in non-asyncio (default, current) hub | 16:00 |
itamarst | which hopefully don't happen in practice but hey who knows | 16:00 |
JayF | ah yeah, that's obviously clear upon seeing it | 16:00 |
itamarst | the fix for (2) is a whole new lock implementation | 16:00 |
JayF | I may have not actually read the patch yet this morning 🙈 | 16:00 |
JayF | that sounds ... horrible | 16:02 |
hberaud[m] | itamarst, JayF do you mind if I attach your patch to the topic "eventlet-removal"? https://review.opendev.org/q/topic:%22eventlet-removal%22 | 16:02 |
JayF | Please do that | 16:03 |
hberaud[m] | 👍️ | 16:03 |
JayF | sometimes you have to add some eventlet [unit test support] to remove some eventlet :) | 16:03 |
hberaud[m] | This is the magic of eventlet | 16:04 |
JayF | another channel I'm in was conjecturing about the alternate future | 16:04 |
JayF | where 'eventlet' (really, it's model) became the stdlib | 16:04 |
hberaud[m] | well, when you start to fork all the deprecated stdlib module into eventlet you are becoming the stdlib | 16:06 |
hberaud[m] | this is how eventlet work actually... | 16:06 |
JayF | Oh yeah, but the implications of it being just the stdlib *everyone uses* would be neat | 16:10 |
Generated by irclog2html.py 2.17.3 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!