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