python / python/cpython

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

Abierto
#136,385 2 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

extension-modules topic-socket type-crash
Lenguaje dominante
Python
Estrellas
77.2k
Forks
35.9k
Métricas de merge de PR
Métricas de PR pendientes

Descripción

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)]

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza con los puntos de entrada de socket.py para getfqdn y getaddrinfo; después, compara las dos trazas de error de macOS notificadas y las rutas de pruebas apps/integrations/render/tests/test_views.py y apps/organizations/tests/test_organizations_middleware.py. Se considera terminado cuando se haya identificado un fallo reproducible de CPython y documentado la cobertura de regresión; al informe le falta actualmente un reproducer independiente.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
macos, python
Área
networking, operating-systems
Tipo de issue
Error
Dificultad
5/5
Tiempo estimado
Más de una semana
Estado de actividad
Estancado
Claridad
Necesita aclaración
Aptitud para principiantes
25/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.