if this method is ok,but the default queue size is 65536 pls check the code below in function request_enqueue() : if (thread_pool.queue_size >= 65536) { pthread_mutex_unlock(&thread_pool.mutex); /* * Mark the request as done. */ radlog(L_ERR|L_CONS, "!!! ERROR !!! The server is blocked: discarding new request %d", request->number); request->finished = TRUE; return; } The queue size is too big !! if thread's queus is full of auth packet or acct packet , the thread is busy processing the packets,the packet will time out by the thread clean process,so 65536 is too big for thread queue size. 2005/12/29, Frank Cusack <fcusack@fcusack.com>:
On December 29, 2005 3:45:12 PM +0800 Liu dejun <dejun.liu@gmail.com> wrote:
When lots of concurrent auth packets arrived at radius server .by default ,if radius server exceeds the max packet process thread ,it will discard the auth packet/ ... why not just add the auth packet to the queue of the thread if the active thread number exceed the total thread number?
good point.
-frank - List info/subscribe/unsubscribe? See http://www.freeradius.org/list/devel.html
-- Yesterday is a history. Tomorrow is a mystery. Today is a gift. That's why we call it "the Present".