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/
see the code below in version 1.0.5

int thread_pool_addrequest(REQUEST *request, RAD_REQUEST_FUNP fun)
{
    /*
     *    If the thread pool is busy handling requests, then
     *    try to spawn another one.
     */
    if (thread_pool.active_threads == thread_pool.total_threads) {
        if (spawn_thread(request->timestamp) == NULL) {
            radlog(L_INFO,
                   "The maximum number of threads (%d) are active, cannot spawn new thread to handle request",
                   thread_pool.max_threads);
            return 0;
        }
    }

    /*
     *    Add the new request to the queue.
     */
    request_enqueue(request, fun);

    return 1;
}

why not just add the auth packet to the queue of the thread if the active thread number exceed the total thread number?






--
Yesterday is a history.
Tomorrow is a mystery.
Today is a gift.
That's why we call it "the Present".