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