* [Buildroot] [PATCH 1/1] support/scripts/pkg-stats: fix RuntimeError with python 3.14 asyncio
@ 2026-01-25 12:29 Julien Olivain via buildroot
2026-02-02 15:46 ` Vincent Fazio
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Julien Olivain via buildroot @ 2026-01-25 12:29 UTC (permalink / raw)
To: buildroot; +Cc: Sen Hastings, Julien Olivain
When running "make pkg-stats" on a host with Python 3.14 (e.g.
Fedora 43 for example), the execution fails with the error:
Checking URL status
Traceback (most recent call last):
File "/buildroot/support/scripts/pkg-stats", line 1387, in <module>
__main__()
~~~~~~~~^^
File "/buildroot/support/scripts/pkg-stats", line 1368, in __main__
loop = asyncio.get_event_loop()
File "/usr/lib64/python3.14/asyncio/events.py", line 715, in get_event_loop
raise RuntimeError('There is no current event loop in thread %r.'
% threading.current_thread().name)
RuntimeError: There is no current event loop in thread 'MainThread'.
This is due to a breaking change introduced in Python 3.14
asyncio.get_event_loop(). See [1]. Before Python 3.14, this call was
creating and setting an event loop if there was none. This situation
is now a runtime error.
In order to fix this issue with newer Python version, while keeping
backward compatibility, this commit replaces the code:
loop = asyncio.get_event_loop()
by an explicit event loop creation:
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
This commit was tested on a Fedora 43 host with Python-3.14.2, and
with the Buildroot Docker image plus the python3-aiohttp package
which is a Debian 12 with Python-3.11.2.
[1] https://docs.python.org/3.14/library/asyncio-eventloop.html#asyncio.get_event_loop
Signed-off-by: Julien Olivain <ju.o@free.fr>
---
support/scripts/pkg-stats | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/support/scripts/pkg-stats b/support/scripts/pkg-stats
index 7d9170e30f..d2d36257d9 100755
--- a/support/scripts/pkg-stats
+++ b/support/scripts/pkg-stats
@@ -1365,11 +1365,13 @@ def __main__():
pkg.set_developers(developers)
if "url" not in args.disable:
print("Checking URL status")
- loop = asyncio.get_event_loop()
+ loop = asyncio.new_event_loop()
+ asyncio.set_event_loop(loop)
loop.run_until_complete(check_package_urls(packages, verbose=args.verbose))
if "upstream" not in args.disable:
print("Getting latest versions ...")
- loop = asyncio.get_event_loop()
+ loop = asyncio.new_event_loop()
+ asyncio.set_event_loop(loop)
loop.run_until_complete(check_package_latest_version(packages, verbose=args.verbose))
if "cve" not in args.disable and args.nvd_path:
print("Checking packages CVEs")
--
2.52.0
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [Buildroot] [PATCH 1/1] support/scripts/pkg-stats: fix RuntimeError with python 3.14 asyncio
2026-01-25 12:29 [Buildroot] [PATCH 1/1] support/scripts/pkg-stats: fix RuntimeError with python 3.14 asyncio Julien Olivain via buildroot
@ 2026-02-02 15:46 ` Vincent Fazio
2026-02-04 8:26 ` Thomas Petazzoni via buildroot
2026-02-13 19:37 ` Thomas Perale via buildroot
2 siblings, 0 replies; 4+ messages in thread
From: Vincent Fazio @ 2026-02-02 15:46 UTC (permalink / raw)
To: Julien Olivain, buildroot@buildroot.org; +Cc: Sen Hastings
> -----Original Message-----
> From: buildroot <buildroot-bounces@buildroot.org> On Behalf Of Julien
> Olivain via buildroot
> Sent: Sunday, January 25, 2026 6:30 AM
> To: buildroot@buildroot.org
> Cc: Sen Hastings <sen@hastings.org>; Julien Olivain <ju.o@free.fr>
> Subject: [External] - [Buildroot] [PATCH 1/1] support/scripts/pkg-stats: fix
> RuntimeError with python 3.14 asyncio
>
> When running "make pkg-stats" on a host with Python 3.14 (e.g.
> Fedora 43 for example), the execution fails with the error:
>
> Checking URL status
> Traceback (most recent call last):
> File "/buildroot/support/scripts/pkg-stats", line 1387, in <module>
> __main__()
> ~~~~~~~~^^
> File "/buildroot/support/scripts/pkg-stats", line 1368, in __main__
> loop = asyncio.get_event_loop()
> File "/usr/lib64/python3.14/asyncio/events.py", line 715, in
> get_event_loop
> raise RuntimeError('There is no current event loop in thread %r.'
> % threading.current_thread().name)
> RuntimeError: There is no current event loop in thread 'MainThread'.
>
> This is due to a breaking change introduced in Python 3.14
> asyncio.get_event_loop(). See [1]. Before Python 3.14, this call was
> creating and setting an event loop if there was none. This situation
> is now a runtime error.
>
> In order to fix this issue with newer Python version, while keeping
> backward compatibility, this commit replaces the code:
>
> loop = asyncio.get_event_loop()
>
> by an explicit event loop creation:
>
> loop = asyncio.new_event_loop()
> asyncio.set_event_loop(loop)
>
> This commit was tested on a Fedora 43 host with Python-3.14.2, and
> with the Buildroot Docker image plus the python3-aiohttp package
> which is a Debian 12 with Python-3.11.2.
Should we add `python3-aiohttp` to the Dockerfile (in a separate patch)?
>
> [1] https://docs.python.org/3.14/library/asyncio-
> eventloop.html#asyncio.get_event_loop
>
> Signed-off-by: Julien Olivain <ju.o@free.fr>
Tested-by: Vincent Fazio <vfazio@xes-inc.com>
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [Buildroot] [PATCH 1/1] support/scripts/pkg-stats: fix RuntimeError with python 3.14 asyncio
2026-01-25 12:29 [Buildroot] [PATCH 1/1] support/scripts/pkg-stats: fix RuntimeError with python 3.14 asyncio Julien Olivain via buildroot
2026-02-02 15:46 ` Vincent Fazio
@ 2026-02-04 8:26 ` Thomas Petazzoni via buildroot
2026-02-13 19:37 ` Thomas Perale via buildroot
2 siblings, 0 replies; 4+ messages in thread
From: Thomas Petazzoni via buildroot @ 2026-02-04 8:26 UTC (permalink / raw)
To: Julien Olivain; +Cc: buildroot, Sen Hastings
Hello,
On Sun, Jan 25, 2026 at 01:29:38PM +0100, Julien Olivain via buildroot wrote:
> When running "make pkg-stats" on a host with Python 3.14 (e.g.
> Fedora 43 for example), the execution fails with the error:
Thanks for the patch, applied!
Thomas
--
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [Buildroot] [PATCH 1/1] support/scripts/pkg-stats: fix RuntimeError with python 3.14 asyncio
2026-01-25 12:29 [Buildroot] [PATCH 1/1] support/scripts/pkg-stats: fix RuntimeError with python 3.14 asyncio Julien Olivain via buildroot
2026-02-02 15:46 ` Vincent Fazio
2026-02-04 8:26 ` Thomas Petazzoni via buildroot
@ 2026-02-13 19:37 ` Thomas Perale via buildroot
2 siblings, 0 replies; 4+ messages in thread
From: Thomas Perale via buildroot @ 2026-02-13 19:37 UTC (permalink / raw)
To: Julien Olivain; +Cc: Thomas Perale, buildroot
In reply of:
> When running "make pkg-stats" on a host with Python 3.14 (e.g.
> Fedora 43 for example), the execution fails with the error:
>
> Checking URL status
> Traceback (most recent call last):
> File "/buildroot/support/scripts/pkg-stats", line 1387, in <module>
> __main__()
> ~~~~~~~~^^
> File "/buildroot/support/scripts/pkg-stats", line 1368, in __main__
> loop = asyncio.get_event_loop()
> File "/usr/lib64/python3.14/asyncio/events.py", line 715, in get_event_loop
> raise RuntimeError('There is no current event loop in thread %r.'
> % threading.current_thread().name)
> RuntimeError: There is no current event loop in thread 'MainThread'.
>
> This is due to a breaking change introduced in Python 3.14
> asyncio.get_event_loop(). See [1]. Before Python 3.14, this call was
> creating and setting an event loop if there was none. This situation
> is now a runtime error.
>
> In order to fix this issue with newer Python version, while keeping
> backward compatibility, this commit replaces the code:
>
> loop = asyncio.get_event_loop()
>
> by an explicit event loop creation:
>
> loop = asyncio.new_event_loop()
> asyncio.set_event_loop(loop)
>
> This commit was tested on a Fedora 43 host with Python-3.14.2, and
> with the Buildroot Docker image plus the python3-aiohttp package
> which is a Debian 12 with Python-3.11.2.
>
> [1] https://docs.python.org/3.14/library/asyncio-eventloop.html#asyncio.get_event_loop
>
> Signed-off-by: Julien Olivain <ju.o@free.fr>
Applied to 2025.02.x & 2025.11.x. Thanks
> ---
> support/scripts/pkg-stats | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/support/scripts/pkg-stats b/support/scripts/pkg-stats
> index 7d9170e30f..d2d36257d9 100755
> --- a/support/scripts/pkg-stats
> +++ b/support/scripts/pkg-stats
> @@ -1365,11 +1365,13 @@ def __main__():
> pkg.set_developers(developers)
> if "url" not in args.disable:
> print("Checking URL status")
> - loop = asyncio.get_event_loop()
> + loop = asyncio.new_event_loop()
> + asyncio.set_event_loop(loop)
> loop.run_until_complete(check_package_urls(packages, verbose=args.verbose))
> if "upstream" not in args.disable:
> print("Getting latest versions ...")
> - loop = asyncio.get_event_loop()
> + loop = asyncio.new_event_loop()
> + asyncio.set_event_loop(loop)
> loop.run_until_complete(check_package_latest_version(packages, verbose=args.verbose))
> if "cve" not in args.disable and args.nvd_path:
> print("Checking packages CVEs")
> --
> 2.52.0
>
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-02-13 19:39 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-01-25 12:29 [Buildroot] [PATCH 1/1] support/scripts/pkg-stats: fix RuntimeError with python 3.14 asyncio Julien Olivain via buildroot
2026-02-02 15:46 ` Vincent Fazio
2026-02-04 8:26 ` Thomas Petazzoni via buildroot
2026-02-13 19:37 ` Thomas Perale via buildroot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.