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.
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