Framed-IP-Address accounted in Hex

Graeme Hinchliffe graeme.hinchliffe at zeninternet.co.uk
Tue Jul 11 12:51:59 CEST 2006


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





More information about the Freeradius-Users mailing list