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