[all] [taskflow] asyncore is removed in Python 3.12
Hi All, As noted in the following bug, taskflow uses asyncore, which is removed in Python 3.12. tasklfow needs to be switched to asyncio as a result. Does anyone happen to be working on this? https://bugs.launchpad.net/ubuntu/+source/python-taskflow/+bug/2024588 Thanks, Corey
On Wed, 2023-11-22 at 11:48 -0500, Corey Bryant wrote:
Hi All,
As noted in the following bug, taskflow uses asyncore, which is removed in Python 3.12. tasklfow needs to be switched to asyncio as a result. Does anyone happen to be working on this?
https://bugs.launchpad.net/ubuntu/+source/python-taskflow/+bug/2024588 you cannot generally mix asyncio and evnetlet so if taskflow is used in any project that uses eventlet today then that is not somethign that can be simply repelasced.
Thanks, Corey
Octavia is a heavy taskflow user and does not use eventlet. This issue has been on our radar since the Debian folks (thank you Zigo!) raised it in July[1]. Unfortunately we do not have anyone working on this at this time. Michael [1] https://bugs.launchpad.net/taskflow/+bug/2026183 On Wed, Nov 22, 2023 at 10:43 AM <smooney@redhat.com> wrote:
On Wed, 2023-11-22 at 11:48 -0500, Corey Bryant wrote:
Hi All,
As noted in the following bug, taskflow uses asyncore, which is removed in Python 3.12. tasklfow needs to be switched to asyncio as a result. Does anyone happen to be working on this?
https://bugs.launchpad.net/ubuntu/+source/python-taskflow/+bug/2024588 you cannot generally mix asyncio and evnetlet so if taskflow is used in any project that uses eventlet today then that is not somethign that can be simply repelasced.
Thanks, Corey
fyi... Unfortunately there are some projects (cinder, glance, magnum and probably watcher) using both eventlet and workflow. So based on the comment by Sean we can't just replace asyncore by asyncio. On 2023-11-23 05:39, Michael Johnson wrote:
Octavia is a heavy taskflow user and does not use eventlet. This issue has been on our radar since the Debian folks (thank you Zigo!) raised it in July[1]. Unfortunately we do not have anyone working on this at this time.
Michael
[1] https://bugs.launchpad.net/taskflow/+bug/2026183
On Wed, Nov 22, 2023 at 10:43 AM <smooney@redhat.com> wrote:
Hi All,
As noted in the following bug, taskflow uses asyncore, which is removed in Python 3.12. tasklfow needs to be switched to asyncio as a result. Does anyone happen to be working on this?
https://bugs.launchpad.net/ubuntu/+source/python-taskflow/+bug/2024588 you cannot generally mix asyncio and evnetlet so if taskflow is used in any project that uses eventlet today then that is not somethign
On Wed, 2023-11-22 at 11:48 -0500, Corey Bryant wrote: that can be simply repelasced.
Thanks, Corey
Looks like https://pypi.org/project/pyasyncore/ could be a stopgap measure. Dmitry On 11/23/23 11:29, kajinamit wrote:
fyi...
Unfortunately there are some projects (cinder, glance, magnum and probably watcher) using both eventlet and workflow. So based on the comment by Sean we can't just replace asyncore by asyncio.
On 2023-11-23 05:39, Michael Johnson wrote:
Octavia is a heavy taskflow user and does not use eventlet. This issue has been on our radar since the Debian folks (thank you Zigo!) raised it in July[1]. Unfortunately we do not have anyone working on this at this time.
Michael
[1] https://bugs.launchpad.net/taskflow/+bug/2026183
On Wed, Nov 22, 2023 at 10:43 AM <smooney@redhat.com> wrote:
Hi All,
As noted in the following bug, taskflow uses asyncore, which is removed in Python 3.12. tasklfow needs to be switched to asyncio as a result. Does anyone happen to be working on this?
https://bugs.launchpad.net/ubuntu/+source/python-taskflow/+bug/2024588 you cannot generally mix asyncio and evnetlet so if taskflow is used in any project that uses eventlet today then that is not somethign
On Wed, 2023-11-22 at 11:48 -0500, Corey Bryant wrote: that can be simply repelasced.
Thanks, Corey
On Thu, 2023-11-23 at 11:43 +0000, Dmitry Tantsur wrote:
Looks like https://pypi.org/project/pyasyncore/ could be a stopgap measure. ya i think that is the best short term solution. nice find.
Dmitry
On 11/23/23 11:29, kajinamit wrote:
fyi...
Unfortunately there are some projects (cinder, glance, magnum and probably watcher) using both eventlet and workflow. So based on the comment by Sean we can't just replace asyncore by asyncio.
On 2023-11-23 05:39, Michael Johnson wrote:
Octavia is a heavy taskflow user and does not use eventlet. This issue has been on our radar since the Debian folks (thank you Zigo!) raised it in July[1]. Unfortunately we do not have anyone working on this at this time.
Michael
[1] https://bugs.launchpad.net/taskflow/+bug/2026183
On Wed, Nov 22, 2023 at 10:43 AM <smooney@redhat.com> wrote:
Hi All,
As noted in the following bug, taskflow uses asyncore, which is removed in Python 3.12. tasklfow needs to be switched to asyncio as a result. Does anyone happen to be working on this?
https://bugs.launchpad.net/ubuntu/+source/python-taskflow/+bug/2024588 you cannot generally mix asyncio and evnetlet so if taskflow is used in any project that uses eventlet today then that is not somethign
On Wed, 2023-11-22 at 11:48 -0500, Corey Bryant wrote: that can be simply repelasced.
Thanks, Corey
On Thu, Nov 23, 2023 at 6:54 AM Dmitry Tantsur <dtantsur@protonmail.com> wrote:
Looks like https://pypi.org/project/pyasyncore/ could be a stopgap measure.
Dmitry
Thanks for pointing this out. I'll try to use this for the near term in ubuntu. Corey
On Thu, 2023-11-23 at 19:29 +0900, kajinamit wrote:
fyi...
Unfortunately there are some projects (cinder, glance, magnum and probably watcher) using both eventlet and workflow. So based on the comment by Sean we can't just replace asyncore by asyncio.
this is the relevent eventlet issue by the way https://github.com/eventlet/eventlet/issues/673#issuecomment-740429872 there use to be an out of tree event hub to make asyncio work with eventlest https://pypi.org/project/aioeventlet/ but that has been unsupported for years https://github.com/overcastcloud/aioeventlet gevent can be used in the same way and the lib for that is more recent although it has not been updated in a year https://github.com/gfmio/asyncio-gevent looking breifly at both libs it seasm like the code requried for a new eventlet hub that would support asicio is not that large but i would be lying if i said i understood the code im referencing so i dont actully know how much work it woudl be for use to create and maintian our own asicio eventlet hub in oslo.concurrency? but that might be an option. the aioeventlet version was 341 lines but i dont think it was really production ready. the author of the asyncio-gevent lib stated it was "production ready" in the asyncio on gevent mode https://github.com/gfmio/asyncio-gevent/issues/4#issuecomment-955776874 https://github.com/gfmio/asyncio-gevent#running-asyncio-on-gevent so that might be a better refernce of what woudl actully be required if we wanted to take the approch of runihng asyncio on the eventlet eventloop to resolve the incompatibality in the short term. the key part is this i think is settign the event loop policy to use the adapter/hub """ import gevent.monkey gevent.monkey.patch_all() import asyncio import asyncio_gevent asyncio.set_event_loop_policy(asyncio_gevent.EventLoopPolicy()) " internally asyncio_gevent.EventLoopPolicy is just orverireding the factory method for the eventloop https://github.com/gfmio/asyncio-gevent/blob/main/asyncio_gevent/event_loop_... and the eventloop impl is just """ class EventLoop(asyncio.SelectorEventLoop): """ An asyncio event loop that uses gevent for scheduling and runs in a spawned greenlet """ def __init__(self, selector=None): super().__init__(selector or gevent.selectors.DefaultSelector()) def run_forever(self): greenlet = gevent.spawn(super(EventLoop, self).run_forever) greenlet.join() """ https://github.com/gfmio/asyncio-gevent/blob/main/asyncio_gevent/event_loop.... once that is setup if you use asyncio to run things as normal, it whould end up using the gevent greenlets. we could likely do the saem with eventlet.
On 2023-11-23 05:39, Michael Johnson wrote:
Octavia is a heavy taskflow user and does not use eventlet. This issue has been on our radar since the Debian folks (thank you Zigo!) raised it in July[1]. Unfortunately we do not have anyone working on this at this time.
Michael
[1] https://bugs.launchpad.net/taskflow/+bug/2026183
On Wed, Nov 22, 2023 at 10:43 AM <smooney@redhat.com> wrote:
Hi All,
As noted in the following bug, taskflow uses asyncore, which is removed in Python 3.12. tasklfow needs to be switched to asyncio as a result. Does anyone happen to be working on this?
https://bugs.launchpad.net/ubuntu/+source/python-taskflow/+bug/2024588 you cannot generally mix asyncio and evnetlet so if taskflow is used in any project that uses eventlet today then that is not somethign
On Wed, 2023-11-22 at 11:48 -0500, Corey Bryant wrote: that can be simply repelasced.
Thanks, Corey
participants (5)
-
Corey Bryant
-
Dmitry Tantsur
-
kajinamit
-
Michael Johnson
-
smooney@redhat.com