python / python/cpython

Python interpreter sometimes crashes when a pytest test access `socket.getfqdn` or `socket.getaddrinfo` on MacOS

オープン
#136,385 コメント 2 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

extension-modules topic-socket type-crash
主要言語
Python
スター
77.2k
フォーク
35.9k
PR マージ指標
PR 指標を取得中

説明

Crash report

What happened?

We have a Django app and run tests using pytest. Once every ~20 runs the Python interpreter crashes with Fatal Python error: Aborted. The Python interpreter crashes when trying to access socket.getfqdn or socket.getaddrinfo functions.

This only seems to happen on MacOS and we haven't seen this failure when running the same test suite on Linux (GitHub Actions).

I've also tried to isolate the problem but wasn't able to reproduce the issue by having a simple program that calls getfqdn directly with or without pytest.

Here is a stack trace when getaddrinfo crashes:

apps/integrations/render/tests/test_views.py .........Fatal Python error: Aborted

Current thread 0x000000020bac9f00 (most recent call first):
  File "/opt/homebrew/Cellar/python@3.13/3.13.5/Frameworks/Python.framework/Versions/3.13/lib/python3.13/socket.py", line 977 in getaddrinfo
  File "/opt/homebrew/Cellar/python@3.13/3.13.5/Frameworks/Python.framework/Versions/3.13/lib/python3.13/socket.py", line 840 in create_connection
  File "/Users/nejcambrozic/code/app/.venv/lib/python3.13/site-packages/httpcore/_backends/sync.py", line 208 in connect_tcp
  File "/Users/nejcambrozic/code/app/.venv/lib/python3.13/site-packages/httpcore/_sync/connection.py", line 124 in _connect
  File "/Users/nejcambrozic/code/app/.venv/lib/python3.13/site-packages/httpcore/_sync/connection.py", line 78 in handle_request
  File "/Users/nejcambrozic/code/app/.venv/lib/python3.13/site-packages/httpcore/_sync/connection_pool.py", line 236 in handle_request
  File "/Users/nejcambrozic/code/app/.venv/lib/python3.13/site-packages/httpx/_transports/default.py", line 250 in handle_request
  File "/Users/nejcambrozic/code/app/.venv/lib/python3.13/site-packages/httpx/_client.py", line 1014 in _send_single_request
  File "/Users/nejcambrozic/code/app/.venv/lib/python3.13/site-packages/httpx/_client.py", line 979 in _send_handling_redirects
  File "/Users/nejcambrozic/code/app/.venv/lib/python3.13/site-packages/httpx/_client.py", line 942 in _send_handling_auth
  File "/Users/nejcambrozic/code/app/.venv/lib/python3.13/site-packages/httpx/_client.py", line 914 in send
  File "/Users/nejcambrozic/code/app/.venv/lib/python3.13/site-packages/httpx/_client.py", line 825 in request
  File "/Users/nejcambrozic/code/app/.venv/lib/python3.13/site-packages/httpx/_api.py", line 109 in request
  File "/Users/nejcambrozic/code/app/apps/integrations/render/client.py", line 57 in request
  File "/Users/nejcambrozic/code/app/.venv/lib/python3.13/site-packages/stamina/_core.py", line 756 in sync_inner
  File "/Users/nejcambrozic/code/app/apps/integrations/render/views.py", line 22 in fetch_workspace_data
  File "/Users/nejcambrozic/code/app/apps/integrations/render/views.py", line 62 in get_workspace_choices
  File "/Users/nejcambrozic/code/app/apps/integrations/render/views.py", line 57 in __init__
  File "/Users/nejcambrozic/code/app/apps/integrations/render/views.py", line 115 in edit
  File "/Users/nejcambrozic/code/app/apps/organizations/decorators.py", line 38 in _inner

Here is a stack trace example when getfqdn crashed:

apps/organizations/tests/test_organizations_middleware.py ....Fatal Python error: Aborted

Current thread 0x000000020a5b1f00 (most recent call first):
  File "/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/socket.py", line 807 in getfqdn
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/django/core/mail/utils.py", line 18 in get_fqdn
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/django/core/mail/utils.py", line 14 in __str__
  File "/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/email/utils.py", line 311 in make_msgid
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/django/core/mail/message.py", line 287 in message
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/django/core/mail/backends/locmem.py", line 30 in send_messages
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/django/core/mail/message.py", line 307 in send
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/django/core/mail/__init__.py", line 92 in send_mail
  File "/Users/anzepecar/watchpointlabs/app/apps/organizations/invitations.py", line 16 in send_invitation
  File "/Users/anzepecar/watchpointlabs/app/apps/organizations/views/manage_organization_views.py", line 127 in resend_invitation
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/django/views/decorators/http.py", line 64 in inner
  File "/Users/anzepecar/watchpointlabs/app/apps/organizations/decorators.py", line 38 in _inner
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/django/core/handlers/base.py", line 197 in _get_response
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/django/core/handlers/exception.py", line 55 in inner
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/django_browser_reload/middleware.py", line 48 in __call__
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/django/core/handlers/exception.py", line 55 in inner
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/zeal/middleware.py", line 22 in middleware
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/django/core/handlers/exception.py", line 55 in inner
  File "/Users/anzepecar/watchpointlabs/app/watchpoint_labs/middleware.py", line 53 in __call__
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/django/core/handlers/exception.py", line 55 in inner
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/auditlog/middleware.py", line 67 in __call__
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/django/core/handlers/exception.py", line 55 in inner
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/django/utils/deprecation.py", line 120 in __call__
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/django/core/handlers/exception.py", line 55 in inner
  File "/Users/anzepecar/watchpointlabs/app/watchpoint_labs/middleware.py", line 20 in __call__
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/django/core/handlers/exception.py", line 55 in inner
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/django/utils/deprecation.py", line 120 in __call__
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/django/core/handlers/exception.py", line 55 in inner
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/django/utils/deprecation.py", line 120 in __call__
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/django/core/handlers/exception.py", line 55 in inner
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/django/utils/deprecation.py", line 120 in __call__
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/django/core/handlers/exception.py", line 55 in inner
  File "/Users/anzepecar/watchpointlabs/app/apps/web/middleware/htmx.py", line 11 in __call__
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/django/core/handlers/exception.py", line 55 in inner
  File "/Users/anzepecar/watchpointlabs/app/apps/web/middleware/locale.py", line 42 in __call__
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/django/core/handlers/exception.py", line 55 in inner
  File "/Users/anzepecar/watchpointlabs/app/apps/web/middleware/locale.py", line 17 in __call__
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/django/core/handlers/exception.py", line 55 in inner
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/django/utils/deprecation.py", line 120 in __call__
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/django/core/handlers/exception.py", line 55 in inner
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/allauth/usersessions/middleware.py", line 18 in __call__
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/django/core/handlers/exception.py", line 55 in inner
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/allauth/account/middleware.py", line 36 in middleware
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/django/core/handlers/exception.py", line 55 in inner
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/django_htmx/middleware.py", line 39 in __call__
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/django/core/handlers/exception.py", line 55 in inner
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/django/utils/deprecation.py", line 120 in __call__
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/django/core/handlers/exception.py", line 55 in inner
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/django/utils/deprecation.py", line 120 in __call__
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/django/core/handlers/exception.py", line 55 in inner
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/django/utils/deprecation.py", line 120 in __call__
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/django/core/handlers/exception.py", line 55 in inner
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/django/utils/deprecation.py", line 120 in __call__
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/django/core/handlers/exception.py", line 55 in inner
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/django/utils/deprecation.py", line 120 in __call__
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/django/core/handlers/exception.py", line 55 in inner
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/whitenoise/middleware.py", line 123 in __call__
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/django/core/handlers/exception.py", line 55 in inner
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/django/utils/deprecation.py", line 120 in __call__
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/django/core/handlers/exception.py", line 55 in inner
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/django/core/handlers/base.py", line 140 in get_response
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/django/test/client.py", line 186 in __call__
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/django/test/client.py", line 1082 in request
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/django/test/client.py", line 671 in generic
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/django/test/client.py", line 499 in post
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/django/test/client.py", line 1153 in post
  File "/Users/anzepecar/watchpointlabs/app/apps/organizations/tests/test_organizations_middleware.py", line 51 in test_organization_admin_view
  File "/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/unittest/case.py", line 606 in _callTestMethod
  File "/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/unittest/case.py", line 651 in run
  File "/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/unittest/case.py", line 707 in __call__
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/django/test/testcases.py", line 376 in _setup_and_call
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/django/test/testcases.py", line 321 in __call__
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/pytest_django/plugin.py", line 573 in non_debugging_runtest
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/_pytest/runner.py", line 178 in pytest_runtest_call
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/pluggy/_callers.py", line 121 in _multicall
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/pluggy/_manager.py", line 120 in _hookexec
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/pluggy/_hooks.py", line 512 in __call__
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/_pytest/runner.py", line 246 in <lambda>
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/_pytest/runner.py", line 344 in from_call
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/_pytest/runner.py", line 245 in call_and_report
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/_pytest/runner.py", line 136 in runtestprotocol
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/_pytest/runner.py", line 117 in pytest_runtest_protocol
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/pluggy/_callers.py", line 121 in _multicall
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/pluggy/_manager.py", line 120 in _hookexec
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/pluggy/_hooks.py", line 512 in __call__
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/_pytest/main.py", line 367 in pytest_runtestloop
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/pluggy/_callers.py", line 121 in _multicall
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/pluggy/_manager.py", line 120 in _hookexec
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/pluggy/_hooks.py", line 512 in __call__
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/_pytest/main.py", line 343 in _main
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/_pytest/main.py", line 289 in wrap_session
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/_pytest/main.py", line 336 in pytest_cmdline_main
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/pluggy/_callers.py", line 121 in _multicall
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/pluggy/_manager.py", line 120 in _hookexec
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/pluggy/_hooks.py", line 512 in __call__
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/_pytest/config/__init__.py", line 175 in main
  File "/Users/anzepecar/watchpointlabs/app/.venv/lib/python3.13/site-packages/_pytest/config/__init__.py", line 201 in console_main
  File "/Users/anzepecar/watchpointlabs/app/.venv/bin/pytest", line 10 in <module>

Extension modules: _brotli, _time_machine, yaml._yaml, greenlet._greenlet, tornado.speedups, regex._regex, websockets.speedups, psycopg_binary.pq, psycopg_binary._psycopg, _cffi_backend, charset_normalizer.md, snowflake.connector.nanoarrow_arrow_iterator, markupsafe._speedups, multidict._multidict, yarl._quoting_c, propcache._helpers_c, aiohttp._http_writer, aiohttp._http_parser, aiohttp._websocket.mask, aiohttp._websocket.reader_c, frozenlist._frozenlist, fontTools.misc.bezierTools, PIL._imaging, fontTools.varLib.iup, sqlalchemy.cyextension.collections, sqlalchemy.cyextension.immutabledict, sqlalchemy.cyextension.processors, sqlalchemy.cyextension.resultproxy, sqlalchemy.cyextension.util, ujson, asyncpg.pgproto.pgproto, asyncpg.protocol.protocol, maxminddb.extension (total: 33)

I'm also attaching the Problem Details and System Configuration output from the Python quit unexpectedly dialog on MacOS:

problem-details.txt

CPython versions tested on:

3.13

Operating systems tested on:

macOS

Output from running 'python -VV' on the command line:

Python 3.13.5 (v3.13.5:6cb20a219a8, Jun 11 2025, 12:23:45) [Clang 16.0.0 (clang-1600.0.26.6)]

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

まず getfqdn と getaddrinfo の socket.py エントリポイントから始め、次に報告された 2 つの macOS クラッシュトレースと、テストパス apps/integrations/render/tests/test_views.py および apps/organizations/tests/test_organizations_middleware.py を比較します。再現可能な CPython の失敗を特定し、リグレッションカバレッジを文書化できれば完了です。現在のレポートにはスタンドアロンの reproducer がありません。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
macos, python
領域
networking, operating-systems
issue の種類
バグ
難易度
5/5
見積もり時間
1週間以上
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
25/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。