From: Dmitry Y. <fir...@ya...> - 2011-01-26 22:37:38
|
26.01.2011 18:32, Yi Lu wrote: > > 3 clients, each with 99 threads and each client thread sending a query to > server. So we could expect that there are no more than 300 simultaneous queries running, and total number of server threads should be a tiny bit more. So far it looks like the server cannot reuse the inactive thread found in the pool and thus keep creating new ones. Looking at Worker::wait() it seems that if it won't be woken up during the timeout (1 min), then the thread pool may get totally blocked, as both waiting and signaling are protected by the same mutex. I hope Vlad would comment on it. > Firebird 2.5 64-bit also creates a lot of threads (sometimes as many as > 800), but never leads to crash or "call _beginthreadex failed" error in the > log. > > When the same load is applied to FB 2.5 32-bit and the number of > fbserver.exe threads increases to more than 500, it is very likely to crash. No surprise in both cases, it has been already explained. Dmitry |