Authentication-Results: mail-b.sr.ht; dkim=none Received: from smtpservice.6wind.com (unknown [185.13.181.2]) by mail-b.sr.ht (Postfix) with ESMTP id 99C2F11EE5E for <~rjarry/dlrepo@lists.sr.ht>; Wed, 25 May 2022 12:55:15 +0000 (UTC) Received: from korn.dev.6wind.com (korn.dev.6wind.com [10.17.1.74]) by smtpservice.6wind.com (Postfix) with ESMTP id C71CC600ED; Wed, 25 May 2022 14:55:14 +0200 (CEST) From: Julien Floret To: ~rjarry/dlrepo@lists.sr.ht Cc: julien.floret@6wind.com, Thomas Faivre Subject: [PATCH dlrepo] auth: handle connection error to ldap server Date: Wed, 25 May 2022 14:54:56 +0200 Message-Id: <20220525125456.23567-1-julien.floret@6wind.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit While attempting to connect to the ldap server, catch bonsai.ConnectionError to avoid getting this kind of backtrace: dlrepo[603976]: Error handling request Traceback (most recent call last): File "/usr/lib/python3/dist-packages/aiohttp/web_protocol.py", line 435, in _handle_request resp = await request_handler(request) File "/usr/lib/python3/dist-packages/aiohttp/web_app.py", line 504, in _handle resp = await handler(request) File "/usr/lib/python3/dist-packages/aiohttp/web_middlewares.py", line 117, in impl return await handler(request) File "/usr/lib/python3/dist-packages/dlrepo/views/auth.py", line 31, in middleware await backend.check(request) File "/usr/lib/python3/dist-packages/dlrepo/views/auth.py", line 203, in check login, groups = await self.check_basic_auth(request) File "/usr/lib/python3/dist-packages/dlrepo/views/auth.py", line 168, in check_basic_auth groups = await self.get_user_groups_from_ldap(login, password) File "/usr/lib/python3/dist-packages/dlrepo/views/auth.py", line 86, in get_user_groups_from_ldap async with client.connect(is_async=True, timeout=self.TIMEOUT) as conn: File "/usr/lib/python3/dist-packages/bonsai/asyncio/aioconnection.py", line 25, in __aenter__ return await self.__open_coro File "/usr/lib/python3/dist-packages/bonsai/asyncio/aioconnection.py", line 59, in _poll raise exc File "/usr/lib/python3/dist-packages/bonsai/asyncio/aioconnection.py", line 54, in _poll return await asyncio.wait_for(fut, timeout) File "/usr/lib/python3.9/asyncio/tasks.py", line 481, in wait_for return fut.result() File "/usr/lib/python3/dist-packages/bonsai/asyncio/aioconnection.py", line 40, in _ready res = super().get_result(msg_id) bonsai.errors.ConnectionError: Connect error. (unknown error code) (0xFFF5 [-11]) Signed-off-by: Julien Floret Acked-by: Thomas Faivre --- dlrepo/views/auth.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/dlrepo/views/auth.py b/dlrepo/views/auth.py index b2f74277dea8..6c2a904dc939 100644 --- a/dlrepo/views/auth.py +++ b/dlrepo/views/auth.py @@ -120,6 +120,9 @@ class AuthBackend: except bonsai.AuthenticationError as e: LOG.debug("authentication failed for %s: %s", login, e) return [] + except bonsai.ConnectionError as e: + LOG.error("failed to connect to ldap server: %s", e) + return [] return groups -- 2.30.2