exabgp 4.2.21 fails with py3.12
elajkat opened this issue · 11 comments
Hi,
We use exabgp for openstack/networking-bagpipe, currently 4.2.21 is pulled in and we started to test with py3.12 to have early warning for issues.
We see the following traceback with py3.12:
File "/home/lajoskatona/github/networking-bagpipe/.tox/py312/lib/python3.12/site-packages/exabgp/configuration/environment.py", line 318, in <module>
from exabgp.vendoring.six.moves import configparser as ConfigParser
ModuleNotFoundError: No module named 'exabgp.vendoring.six.moves'
Example log can be found in Openstack CI (after few weeks these will be deleted):
https://storage.gra.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_6ed/periodic-weekly/opendev.org/openstack/networking-bagpipe/master/openstack-tox-py312/6ed9024/job-output.txt
Just the traceback in a paste:
https://paste.opendev.org/show/bjcWycvJyWU4mut1rVoW/
I was able to reproduce the issue in a local env (Ubuntu 22.04) with py3.12 installed with pyenv.
$ pyenv latest 3.12
3.12.3
$ python3 --version
Python 3.12.3
$ git clone https://opendev.org/openstack/networking-bagpipe
....
$ cd networking-bagpipe
# Here I have to play a little to have all dependency like sqlite3 added to python, but I suppose any env with py312 works for the reproduction.
$ tox -epy312
.....
File "/home/lajoskatona/github/networking-bagpipe/.tox/py312/lib/python3.12/site-packages/exabgp/configuration/environment.py", line 318, in <module>
from exabgp.vendoring.six.moves import configparser as ConfigParser
ModuleNotFoundError: No module named 'exabgp.vendoring.six.moves'
================================================================================
The above traceback was encountered during test discovery which imports all the found test modules in the specified test_path.
ERROR: InvocationError for command /home/lajoskatona/github/networking-bagpipe/.tox/py312/bin/stestr run (exited with code 100)
__________________________________________________________________________________________ summary ___________________________________________________________________________________________
ERROR: py312: commands failed
$
Thanks I will check it and come back with feedback.
Thanks the above pr and using branch 4.2 really solves the issue.
When we can expect a new release? (It is not that urgent officially we just experimentally test with py3.12, though some vendors use py3.12)
When we can expect a new release?
I don't think there is any schedule. Last estimate I recall seeing from Thomas was when he responded to a different issue was that a new tag for the 4.2 branch was waiting on his available time to review/revise/revert a RIB patch. As exabgp is not a fully resourced project, when that time might be found is unknowable. Only the very fortunate open source developers find enough round tuits.
Thanks for your efforts.
Thank you, @garybuhrmaster, for your help. I will leave this issue open until I can correctly resolve it.
Python 3.12 "breaks" the testing suite; this was fixed in the master but will need backporting.
Async servers do not close/return if an async function ends when run as a service and does not close the underlying writer. It was not necessary before 3.12.
This also need backporting to 4.2
3.12 was added to the CI. @elajkat are you happy to close this issue?
no news - good news.
@thomas-mangin : I checked it, locally 4.2.22 was pulled and I suppose openstack CI will use the same, thanks it is perfect.
I did not backport the change to 4.2.22 but if it is important for openstack, happy to do it. Sorry, i am mixing 3.6 and 3.12 - 3.12 is fine.