Segfault in uvloop 0.22.1
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 38/100
- Type d'issue
- Bug
- Clarté
- Plutôt claire
- Activité
- Calme
- Stack technique
- python
- Domaine
- backend, networking
Piste de recherche
Commencez par reproduire le crash avec Python 3.12.12, uvloop 0.22.1 et python -X faulthandler -m uvicorn --loop uvloop app:app, puis comparez-le avec --loop asyncio. Réduisez l’environnement au minimum et obtenez le coredump si possible ; le travail est terminé lorsque la cause liée à uvloop est identifiée et qu’il est vérifié que la même application ne provoque plus de segfault.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Hi, I see a sefault in uviloop in my fastapi app. I can reproduce it 100% of the time inside the container.
The app is run with
python -X faulthandler -m uvicorn --loop uvloop app:app
If I switch to --loop asyncio I do not get a segfault.
Fatal Python error: Segmentation fault
Thread 0x00007fb2e380f700 (most recent call first):
File "/opt/app-root/.pixi/envs/default/lib/python3.12/threading.py", line 359 in wait
File "/opt/app-root/.pixi/envs/default/lib/python3.12/threading.py", line 655 in wait
File "/opt/app-root/.pixi/envs/default/lib/python3.12/site-packages/opentelemetry/sdk/_shared_internal/__init__.py", line 159 in worker
File "/opt/app-root/.pixi/envs/default/lib/python3.12/threading.py", line 1012 in run
File "/opt/app-root/.pixi/envs/default/lib/python3.12/threading.py", line 1075 in _bootstrap_inner
File "/opt/app-root/.pixi/envs/default/lib/python3.12/threading.py", line 1032 in _bootstrap
Current thread 0x00007fb74a920400 (most recent call first):
File "/opt/app-root/.pixi/envs/default/lib/python3.12/site-packages/starlette/middleware/base.py", line 120 in wrap
File "/opt/app-root/.pixi/envs/default/lib/python3.12/site-packages/starlette/middleware/base.py", line 125 in receive_or_disconnect
File "/opt/app-root/.pixi/envs/default/lib/python3.12/site-packages/starlette/requests.py", line 228 in stream
File "/opt/app-root/.pixi/envs/default/lib/python3.12/site-packages/fastapi/routing.py", line 373 in app
File "/opt/app-root/.pixi/envs/default/lib/python3.12/site-packages/fastapi/routing.py", line 106 in app
File "/opt/app-root/.pixi/envs/default/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42 in wrapped_app
File "/opt/app-root/.pixi/envs/default/lib/python3.12/site-packages/fastapi/routing.py", line 120 in app
File "/opt/app-root/.pixi/envs/default/lib/python3.12/site-packages/starlette/routing.py", line 290 in handle
File "/opt/app-root/.pixi/envs/default/lib/python3.12/site-packages/starlette/routing.py", line 736 in app
File "/opt/app-root/.pixi/envs/default/lib/python3.12/site-packages/starlette/routing.py", line 716 in __call__
File "/opt/app-root/.pixi/envs/default/lib/python3.12/site-packages/fastapi/middleware/asyncexitstack.py", line 18 in __call__
File "/opt/app-root/.pixi/envs/default/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42 in wrapped_app
File "/opt/app-root/.pixi/envs/default/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 63 in __call__
File "/opt/app-root/.pixi/envs/default/lib/python3.12/site-packages/starlette_exporter/middleware.py", line 405 in __call__
File "/opt/app-root/.pixi/envs/default/lib/python3.12/site-packages/starlette/middleware/base.py", line 144 in coro
File "/opt/app-root/.pixi/envs/default/lib/python3.12/asyncio/runners.py", line 118 in run
File "/opt/app-root/.pixi/envs/default/lib/python3.12/asyncio/runners.py", line 195 in run
File "/opt/app-root/.pixi/envs/default/lib/python3.12/site-packages/uvicorn/server.py", line 67 in run
File "/opt/app-root/.pixi/envs/default/lib/python3.12/site-packages/uvicorn/main.py", line 593 in run
File "/opt/app-root/.pixi/envs/default/lib/python3.12/site-packages/uvicorn/main.py", line 423 in main
File "/opt/app-root/.pixi/envs/default/lib/python3.12/site-packages/click/core.py", line 824 in invoke
File "/opt/app-root/.pixi/envs/default/lib/python3.12/site-packages/click/core.py", line 1269 in invoke
File "/opt/app-root/.pixi/envs/default/lib/python3.12/site-packages/click/core.py", line 1406 in main
File "/opt/app-root/.pixi/envs/default/lib/python3.12/site-packages/click/core.py", line 1485 in __call__
File "/opt/app-root/.pixi/envs/default/lib/python3.12/site-packages/uvicorn/__main__.py", line 4 in <module>
File "<frozen runpy>", line 88 in _run_code
File "<frozen runpy>", line 198 in _run_module_as_main
Extension modules: uvloop.loop, httptools.parser.parser, httptools.parser.url_parser, websockets.speedups, psutil._psutil_linux, _brotli, zstandard.backend_c, gssapi.raw._enum_extensions.ext_dce, gssapi.raw._enum_extensions.ext_iov_mic, gssapi.raw.oids, gssapi.raw.types, gssapi.raw.cython_converters, gssapi.raw.misc, gssapi.raw.names, gssapi.raw.creds, gssapi.raw.chan_bindings, gssapi.raw.sec_contexts, gssapi.raw.message, gssapi.raw.exceptions, gssapi.raw.ext_s4u, gssapi.raw.ext_cred_store, gssapi.raw.ext_rfc4178, gssapi.raw.ext_rfc5587, gssapi.raw.ext_rfc5588, gssapi.raw.ext_rfc5801, gssapi.raw.ext_cred_imp_exp, gssapi.raw.mech_krb5, gssapi.raw.ext_password, gssapi.raw.ext_password_add, gssapi.raw.ext_dce_aead, gssapi.raw.ext_dce, gssapi.raw.ext_iov_mic, gssapi.raw.ext_krb5, gssapi.raw.ext_rfc6680, gssapi.raw.ext_rfc6680_comp_oid, gssapi.raw.ext_ggf, gssapi.raw.ext_set_cred_opt, _cffi_backend, work._ruamel_yaml, _ruamel_yaml, multidict._multidict, yarl._quoting_c, propcache._helpers_c, aiohttp._http_writer, aiohttp._http_parser, aiohttp._websocket.mask, aiohttp._websocket.reader_c, frozenlist._frozenlist, numpy._core._multiarray_umath, numpy.linalg._umath_linalg, pyarrow.lib, sqlalchemy.cyextension.collections, sqlalchemy.cyextension.immutabledict, sqlalchemy.cyextension.processors, sqlalchemy.cyextension.resultproxy, sqlalchemy.cyextension.util, greenlet._greenlet, pyodbc, numpy.random._common, numpy.random.bit_generator, numpy.random._bounded_integers, numpy.random._pcg64, numpy.random._mt19937, numpy.random._generator, numpy.random._philox, numpy.random._sfc64, numpy.random.mtrand, pandas._libs.tslibs.ccalendar, pandas._libs.tslibs.np_datetime, pandas._libs.tslibs.dtypes, pandas._libs.tslibs.base, pandas._libs.tslibs.nattype, pandas._libs.tslibs.timezones, pandas._libs.tslibs.fields, pandas._libs.tslibs.timedeltas, pandas._libs.tslibs.tzconversion, pandas._libs.tslibs.timestamps, pandas._libs.properties, pandas._libs.tslibs.offsets, pandas._libs.tslibs.strptime, pandas._libs.tslibs.parsing, pandas._libs.tslibs.conversion, pandas._libs.tslibs.period, pandas._libs.tslibs.vectorized, pandas._libs.ops_dispatch, pandas._libs.missing, pandas._libs.hashtable, pandas._libs.algos, pandas._libs.interval, pandas._libs.lib, pyarrow._compute, pandas._libs.ops, pandas._libs.hashing, pandas._libs.arrays, pandas._libs.tslib, pandas._libs.sparse, pandas._libs.internals, pandas._libs.indexing, pandas._libs.index, pandas._libs.writers, pandas._libs.join, pandas._libs.window.aggregations, pandas._libs.window.indexers, pandas._libs.reshape, pandas._libs.groupby, pandas._libs.json, pandas._libs.parsers, pandas._libs.testing, pyarrow._feather, _cyutility, scipy._cyutility, scipy._lib._ccallback_c, scipy.sparse._sparsetools, _csparsetools, scipy.sparse._csparsetools, google._upb._message, confluent_kafka.cimpl (total: 117)
Segmentation fault (core dumped)
Environment (abridged)
arrow_odbc 7.0.4 py312h4413252_1
fastapi 0.124.2 hc0e8453_0
orjson 3.11.4 py312h868fb18_1
pyodbc 5.3.0 py312h1289d80_0
pytest 8.4.2 pyhcf101f3_1
pytest-asyncio 0.25.3 pyh29332c3_0
python 3.12.12 hd63d673_1_cpython
simdutf 5.4.15 h5888daf_0
sqlalchemy 2.0.45 py312h4c3975b_0
uvicorn 0.38.0 pyh31011fe_0
uvloop 0.22.1 py312h4c3975b_1
I wasn't able to get a coredump because I don't have access but could possibly get one if required.
- Langage dominant
- Cython
- Étoiles
- 11.9k
- Forks
- 615
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Préparer son environnement
Nous n'avons pas encore vérifié les fichiers d'installation de ce projet. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de MagicStack/uvloop
-
License not clearOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
MagicStack/uvloop#759 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
MagicStack/uvloop#741 · 2 réactions ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
MagicStack/uvloop#702 · 8 commentaires · 9 réactions ·
-
Difficulté 4/5 3-5 jours Accessibilité débutants 25/100
MagicStack/uvloop#766 ·
-
Directly constructed subprocess pipe protocols segfault when callbacks use a non-process ownerOuverte
Difficulté 4/5 3-5 jours Accessibilité débutants 52/100
MagicStack/uvloop#765 ·
Toutes les issues de MagicStack/uvloop
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
openfoodfacts/score-my-recipe#80 ·
Les mainteneurs répondent en général sous 2 jours
-
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
snapshot-labs/stamp#702 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 86/100
-
Cainophile EXIT handler crashes on its own password redaction and logs the DB password in clear textOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 2 jours
-
Dev worker sometimes never starts: `runScript`'s `withUtf8` waits on the stdin GHCi is readingOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
digitallyinduced/ihp#2832 ·
Les mainteneurs répondent en général sous 1 jour