On 7 Jul 2006, at 17:46, Alan DeKok wrote:
Are dictionaries loaded each time a child is started? or just once
and then kept in memory?

  The server doesn't start any children.  The dictionaries are loaded
once, and cached as long as it's running.

Hi,
Have been digging through the source for FreeRADIUS 1.1.2. As I am understanding it from my quick dig through. value_pair defaults to octets as the datatype for a given attribute, this is then looked up a bit further on and set to the correct type via the dictionary. Dict.c refers to a function in lib/hash.c and at the top of this source file is the line :

"Non-thread-safe split-ordered hash table"

Is there a chance that on a fast loaded box that threads are accessing the dictionary index which is being dynamically modified (it would appear) and using non-valid memory for their lookup ? resulting in the value being kept as octet and the symptoms we are seeing?

The most common under heavy load was session ID but we are still seeing the IP address being set as a hex value also, these cases have only been spotted due to the error logging of postgres or the errors it has generated in sub-systems working on the accounting data.

I have reduced the number of updates per hour and these problems have almost completely vanished.

Thanks

Graeme


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

Reply via email to