"Alexander Voropay" <alec@artcoms.ru> wrote:
The FreeRadius sources is from the CVS a week ago.
I can't use FreeRADIUS on the heavy load at all... It dies **every** 2..3 min :( There is no such problem under lite load (upto ~1req/ per sec.).
The CVS head is unstable, and may not always work. That being said, I'm *very* unhappy with the code in request_list.c. Given that I wrote most of it, it's really bad. I'm in the process of re-writing it, so that all edge conditions are taken care of.
Is there any way to avoid this problem ?
In the short term, delete the assertion.
It seems there is some problems with main request queue list. May be, some atomic locking around list access will save us ?
There's no need, because only one thread ever accesses it. The problem lies elsewhere.
Could you add some debug info (request queue status/statistics) in the 'assert' ?
Go ahead.
I've noticed one static definition of the array :
=== src/main/request_list.c: 57 ======== struct request_list_t { REQUESTINFO request_list[256]; ===========
May be, it exceeds a limit on the heavy load ?
No. That's used for something else. Alan DeKok.