Skip to content

Fix TCP connection spike: disable HTTP keep-alive and add request timeouts on cached sessions#1

Draft
Copilot wants to merge 2 commits intomainfrom
copilot/fix-tcp-connection-issue
Draft

Fix TCP connection spike: disable HTTP keep-alive and add request timeouts on cached sessions#1
Copilot wants to merge 2 commits intomainfrom
copilot/fix-tcp-connection-issue

Conversation

Copy link

Copilot AI commented Mar 6, 2026

Every cached requests.Session holds a urllib3 connection pool (pool_connections=10, pool_maxsize=10 by default) of idle open TCP sockets. With a 30-minute cache TTL, connections accumulate under load until the OS exhausts file descriptors — system freezes. After TTL expiry the cleanup thread closes all sessions and releases sockets — system auto-recovers. Matches the described symptom exactly.

Changes

bit_login/login.py

  • Connection: close header on all sessions — urllib3 closes the TCP socket immediately after each response instead of returning it to the idle pool. Eliminates idle socket accumulation in cached sessions.
  • _TimeoutHTTPAdapter — thin HTTPAdapter subclass that injects a 30-second default timeout via kwargs.setdefault. Prevents hung connections from accumulating without modifying any call site. Mounted as separate instances for http:// and https://.
class _TimeoutHTTPAdapter(HTTPAdapter):
    def __init__(self, *args, **kwargs):
        self._default_timeout = kwargs.pop('timeout', 30)
        super().__init__(*args, **kwargs)

    def send(self, request, **kwargs):
        kwargs.setdefault('timeout', self._default_timeout)
        return super().send(request, **kwargs)

bit_login/config.py

  • Changed Connection: keep-aliveConnection: close in the base headers dict for consistency.

🔒 GitHub Advanced Security automatically protects Copilot coding agent pull requests. You can protect all pull requests by enabling Advanced Security for your repositories. Learn more about Advanced Security.

… in login sessions

Co-authored-by: flwfdd <36499196+flwfdd@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix issue with high TCP connection count leading to system freeze Fix TCP connection spike: disable HTTP keep-alive and add request timeouts on cached sessions Mar 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants