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.