I have been experiencing crashes as well under high accounting load 
(Solaris 7 , mysql accounting). It appears that the use of non thread-safe 
library functions are responsible for this.  I have replaced all the 
localtime() and ctime() calls with their POSIX thread safe counterparts 
(localtime_r() and ctime_r()) and radiusd has been running perfectly for 
the last 2 hours under constant heavy load from radclient (1000+ req/sec) 
whereas before it would crash within a few minutes.

There are a few other instances of non thread-safe library functions in the 
source (gmtime, rand and strtok), but they are used mainly at startup so 
they should not affect the stability, although to be correct, I think they 
should be replaced with the *_r versions as well.

I don't know how applicable these changes are to other OS's (Linux), but 
perhaps someone running FR on linux could try this and see if it helps.

Eddie


- 
List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html

Reply via email to