On maandag 19 november 2018 12:40:20 CET Darren Govoni wrote:
> Hi,
> I am using twisted to run my Flask app via WSGI like so.
>
> twistd --pidfile $PORT/pidfile -l $PORT/logfile -n web --port
> tcp:$PORT --wsgi my.app
>
> Naturally, I have functions representing routes that enter and exit
> just fine.
>
> However, I notice the twisted daemon process is :"gathering threads".
> Eventually system runs out of them.
>
> Here's a full status for one twisted server. 504 threads???
I have a server running inside twistd which uses exactly 1 thread after
running for a few weeks, so the problem may not be in twistd itself.
I'm using a reverse-proxy HTTP setup though, not WSGI. Maybe the problem
is specific to WSGI, Flask or your application?
Twisted's WSGI support definitely uses threads (as this is essentially a requirement of WSGI). It uses the reactor thread pool (if you launch it from the CLI with twistd) which used to be limited to 10 threads. I don't know if the same limit is in place these days.
Jean-Paul