From fc297b4ba4c61febeb2d8f5d718f2955c6bbea0a Mon Sep 17 00:00:00 2001 From: Alek Kowalczyk Date: Mon, 24 Jun 2024 10:35:02 +0200 Subject: [PATCH] gh-112169: Documented getaddrinfo/getnameinfo default loop executor usage and implications. (#112191) Co-authored-by: Guido van Rossum Co-authored-by: Kumar Aditya Co-authored-by: Carol Willing --- Doc/library/asyncio-eventloop.rst | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Doc/library/asyncio-eventloop.rst b/Doc/library/asyncio-eventloop.rst index 374e789e91e790..1d79f78e8e1b67 100644 --- a/Doc/library/asyncio-eventloop.rst +++ b/Doc/library/asyncio-eventloop.rst @@ -1155,6 +1155,14 @@ DNS Asynchronous version of :meth:`socket.getnameinfo`. +.. note:: + Both *getaddrinfo* and *getnameinfo* internally utilize their synchronous + versions through the loop's default thread pool executor. + When this executor is saturated, these methods may experience delays, + which higher-level networking libraries may report as increased timeouts. + To mitigate this, consider using a custom executor for other user tasks, + or setting a default executor with a larger number of workers. + .. versionchanged:: 3.7 Both *getaddrinfo* and *getnameinfo* methods were always documented to return a coroutine, but prior to Python 3.7 they were, in fact,