Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork33.7k
Closed
Description
Crash report
What happened?
Love eager task factory, but it's crashing one of my tests. I'm usinguvicorn andfastapi to host an API, and testing it withhttpx running in the same event loop. This reliably produces a segfault.
It seems to only happen with streaming responses.
Here's a minimal code example:
importasyncioimporthttpximportuvicornfromfastapiimportFastAPIfromstarlette.responsesimportStreamingResponseasyncdefmain():loop=asyncio.get_running_loop()loop.set_task_factory(asyncio.eager_task_factory)app=FastAPI()@app.get("/")asyncdefget():asyncdef_():yield"1"returnStreamingResponse(_(), )server=uvicorn.Server(uvicorn.Config(app,host="0.0.0.0",port=8080, ) )asyncio.create_task(server.serve())client=httpx.AsyncClient()awaitclient.get("http://localhost:8080")if__name__=="__main__":asyncio.run(main())
CPython versions tested on:
3.12
Operating systems tested on:
macOS
Output from running 'python -VV' on the command line:
Python 3.12.3 | packaged by conda-forge | (main, Apr 15 2024, 18:35:20) [Clang 16.0.6 ]
Linked PRs
Metadata
Metadata
Assignees
Labels
Projects
Status
Done