Assertion failed in request_list.c
Alan DeKok
aland at ox.org
Sun Sep 18 03:29:28 CEST 2005
"Alexander Voropay" <alec at 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.
More information about the Freeradius-Devel
mailing list