assert in util.c:189 on exit

Alan DeKok aland at ox.org
Fri Oct 7 17:54:33 CEST 2005


Joe Maimon <jmaimon at ttec.com> wrote:
> This morning logs look like this:
> 
> Fri Oct  7 08:29:29 2005 : Error: !!! ERROR !!! The server is blocked: 
> discarding new request 181169
...
> (any idea why? this never happened before [ before means cvs from 
> 20050316 ])

  I don't *think* any of the changes to threads.c would cause this
problem.  But that message is produced only when the request queue is
full.

  i.e. new requests are coming in faster than the server can process them.

> so I executed /etc/init.d/freeradius stop
> 
> and got the above assert.
> 
> Apparently a gracefull exit is hard to do if the server has blocked threads?

  Yes.  It tries to exit cleanly, but something calls request_free()
on a request currently being used by a thread.  The solution to that
problem is simply to *not* call request_free() when exiting.

  As for why it's blocked, see the rest of the debug log.  It *should*
tell you what's blocked, and where.

  Alan DeKok.



More information about the Freeradius-Devel mailing list