No cleanup for abandoned EAP requests in radiusd

Alan DeKok aland at deployingradius.com
Wed Jun 23 12:48:25 CEST 2010


Kunal Solanki wrote:
> I have been using freeradius version 2.1.4 and when I upgraded to 2.1.7
> I am facing issues of high memory usage by radiusd. In 2.1.4 also the
> memory usage was quite high under high load but it used to come down
> after some time when abandoned requests are cleaned up. The cleanup
> trigger is not timer based in freeradius and is part of ongoing
> requests. In 2.1.7 version somehow this cleanup doesn't happen
> effectively and looks like for the same EAP requests a lot of dangling
> handlers are created which are not getting cleaned.

  You can instrument the code to see when they're getting cleaned up.
Or, edit it to clean up *more* of them at a time.

> I tried to cleanup
> old handlers in src/modules/rlm_eap/mem.c but that causes other
> side-affects of requests being present and no matching session state
> variable found for that.

  Uh... all you need to do is to change the "for" loop in
eaplist_expire, to loop over more entries.

> I believe in src/main/event.c we should have some sought of cleanup for
> the old requests itself.

  No.  The server event loop doesn't deal with modules.

  Alan DeKok.



More information about the Freeradius-Devel mailing list