bbot icon indicating copy to clipboard operation
bbot copied to clipboard

Unhandled error: engine.py:82:_infinite_retry()

Open liquidsec opened this issue 10 months ago • 1 comments

Seeing the same thing originating from several modules, not specific to certspotter. Anything using the web helper I think.

2025-03-01 07:48:11,644 [TRACE] bbot.modules.certspotter logger.py:162 Traceback (most recent call last):
  File "/usr/local/lib/python3.11/asyncio/tasks.py", line 490, in wait_for
    return fut.result()
           ^^^^^^^^^^^^
asyncio.exceptions.CancelledError

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/redacted/bbot/bbot/core/engine.py", line 77, in _infinite_retry
    return await asyncio.wait_for(callback(*args, **kwargs), timeout=interval)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/asyncio/tasks.py", line 492, in wait_for
    raise exceptions.TimeoutError() from exc
TimeoutError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/redacted/bbot/bbot/modules/templates/subdomain_enum.py", line 121, in query
    response = await request_fn(query)
               ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/redacted/bbot/bbot/modules/base.py", line 1158, in api_request
    r = await self.helpers.request(**kwargs)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/redacted/bbot/bbot/core/helpers/web/web.py", line 122, in request
    result = await self.run_and_return("request", *args, **kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/redacted/bbot/bbot/core/engine.py", line 163, in run_and_return
    binary = await self._infinite_retry(socket.recv, _context=f"waiting for return value from {fn_str}")
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/redacted/bbot/bbot/core/engine.py", line 82, in _infinite_retry
    raise TimeoutError(f"Timed out after {(max_retries + 1) * interval:,} seconds {context}")
TimeoutError: Timed out after 600 seconds waiting for return value from request((), {'timeout': 40, 'headers': {}, 'url': 'https://api.certspotter.com/v1/issuances?domain=REDACTED&include_subdomains=true&expand=dns_names'})

liquidsec avatar Mar 01 '25 08:03 liquidsec

This is probably the same bug frontend ran into, where certspotter held up the scan. Most likely a deadlock in httpx, another nail in its coffin.

TheTechromancer avatar Mar 02 '25 02:03 TheTechromancer