damani[m] | ralonsoh, i updated the patch https://review.opendev.org/c/openstack/oslo.service/+/951505 | 08:29 |
---|---|---|
ralonsoh | damani[m], thanks! tkajinam ^ | 08:29 |
ralonsoh | damani[m], hi! I've tested the patch again and is working fine, thanks! | 10:21 |
ralonsoh | I have another issue | 10:21 |
ralonsoh | https://bugs.launchpad.net/oslo.service/+bug/2113775 | 10:21 |
ralonsoh | example: https://paste.opendev.org/show/bUT6iZcmkwwlri4LrI6Q/ | 10:21 |
hberaud[m] | itamarst: just finished to read your blog post, that's really interesting (https://pythonspeed.com/articles/python-multiprocessing/), now I'm gonna go to check the updates in the recent conversations on the eventlet side (I was on PTO since few days so I'm a bit out dated with recent messages) | 12:34 |
zigo | Any progress on adressing https://github.com/eventlet/eventlet/issues/1032 ? | 13:04 |
hberaud[m] | itamarst: Concerning your warning about oslo.service, I think you are right about the impact of fork into oslo.service, and more broadly into OpenStack. I think we have to ensure that `ProcessLauncher`, `PeriodicTasks`, `ThreadGroup` do a `from multiprocessing import get_context; with get_context("spawn").Pool() as pool:` in some ways. We can observe that the ProcessLauncher allow to run a service in a forked process | 13:13 |
hberaud[m] | https://opendev.org/openstack/oslo.service/src/branch/master/oslo_service/backend/threading/service.py#L213 If we setup some centralized logging configuration and if a new process is launched in fork mode, by using oslo.service to launch this process, then the Openstack service could face deadlocks. This new process will inherit the logging setup with logging queues containing locks but no active thread to drain/process | 13:13 |
hberaud[m] | them. The same kind of preventing should be applied at the users level (the services using of the oslo.service lib) | 13:13 |
itamarst | hberaud[m]: I made progress yesterday, I think I have fork() "working" on Python 3.13 | 13:13 |
hberaud[m] | awesome | 13:13 |
itamarst | in eventlet. it broken 3.12 and earlier though 😢 | 13:13 |
itamarst | so that's next | 13:13 |
itamarst | hberaud[m]: re fork in oslo.service, the docs had a justification involving "lots of stuff we want to run don't pickle" | 13:14 |
hberaud[m] | zigo: no sorry I just went back from PTO, I still need to rewind on the past week to see the various conversations | 13:14 |
itamarst | (lacking fork(), there's the issue of how to pass objects to a subprocess) | 13:15 |
itamarst | I think that's hopefully solvable with cloudpickle | 13:15 |
itamarst | other options are possible but might involve more API change, understanding that code is on my todo list once i'm done with eventlet side | 13:16 |
hberaud[m] | ack | 13:16 |
hberaud[m] | will try to have a look to cloudpickle to get a better understanding of that point | 13:17 |
hberaud[m] | concerning the docs justification you pointed out, I think they are mostly related to the previous version of the implementation of oslo.service because the new doc version is still "work in progress", so I think we have to confirm that this pickle comment still factual with the new implementation. I guess it is still accurate. | 13:21 |
hberaud[m] | s/comment still factual/comment is still factual/ | 13:21 |
hberaud[m] | zigo: so concerning this python 3.13 story I think you need to read that discussion https://github.com/eventlet/eventlet/issues/1030 | 13:37 |
zigo | hberaud[m]: What would help would be a quick way to reproduce. | 13:39 |
zigo | Not involving Nova. | 13:39 |
zigo | Then maybe Stefano can help ... | 13:39 |
hberaud[m] | Any help is welcome | 13:39 |
hberaud[m] | Itamar proposed a new tiny reproducer, but if Stefano have some extra scenario, then, that would definitely reinforce our testing against the observed behavior. | 13:42 |
zigo | Right. | 13:50 |
zigo | tumbleweed: Itamar proposed a small reproducer with eventlet fork() at https://github.com/eventlet/eventlet/issues/1030 | 13:50 |
zigo | Woops wrong chan. | 13:51 |
itamarst | I have also opened a PR to fix the eventlet issue | 16:07 |
itamarst | but | 16:07 |
itamarst | it's a "fix". fork() is asking for disaster, it should not be used with Python | 16:07 |
Generated by irclog2html.py 4.0.0 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!