Seg-fault with proxy and fail-overs

Chris Moules chris at gms.lu
Wed Mar 4 16:57:59 CET 2009


Alan DeKok wrote:
> Chris Moules wrote:
>> OK, I have re-done the debugging. This time I have left gdb running in
>> case you want more output.
> 
>   Thanks...  if you could also show:
> 
> (gdb) p/x request->proxy
> 
>   That would confirm my suspicions.

OK, here you go:

(gdb) p/x *request
$1 = {magic = 0xdeadbeef, packet = 0x0, proxy = 0xeebff0, reply = 0x0, proxy_reply = 0x0, config_items = 0x0, username = 0x0, 
password = 0x0, root = 0x0,
   data = 0x0, client = 0x0, child_pid = 0x0, timestamp = 0x49ae6bd4, number = 0x4, listener = 0x0, proxy_listener = 0xee5700, 
simul_max = 0x0,
   simul_count = 0x0, simul_mpp = 0x0, options = 0x0, module = 0x42f4ed, component = 0x42f4ed, received = {tv_sec = 0x0, tv_usec 
= 0x0}, when = {
     tv_sec = 0x49ae6bd8, tv_usec = 0x1060e}, delay = 0x0, master_state = 0x0, child_state = 0x3, priority = 0x0, ev = 0xeec6b0, 
next_when = {tv_sec = 0x0,
     tv_usec = 0x0}, next_callback = 0x0, in_request_hash = 0x0, in_proxy_hash = 0x1, home_server = 0xddcc50, home_pool = 0x0, 
proxy_when = {tv_sec = 0x0,
     tv_usec = 0x0}, num_proxied_requests = 0x0, num_proxied_responses = 0x1, server = 0x0, parent = 0x0, radlog = 0x414cb0, coa 
= 0x0,
   num_coa_requests = 0x0}

(gdb) p/x request->proxy
$2 = 0xeebff0

> 
>   i.e. When it determines that the home server is down, it starts
> pinging it with internally generated packets.  Those packets don't have
> some fields that are required for "normal" packets.

OK, so that is why it only dies when the server replies to a 'are you there' packet after it has died / zombied.

> 
>   I've committed fixes to git that will fix this.  To grab them, do:
> 
> $ git pull
> $ cd src/main
> $ make radiusd
> $ make install
> 
>   You don't need to re-install any of the modules.
> 
>   Thanks for the report.
> 
>   Alan DeKok.
> -
> List info/subscribe/unsubscribe? See http://www.freeradius.org/list/devel.html
> 

I will end up rebuilding new packages. This is not a problem. You have already commited the couple of patches that I needed to 
get the build working. There have been a few more patches since. I may wait with this until tomorrow however. My client does not 
like things going wrong at just-before-home-time ;)

Thanks for the support on this!

Regards

Chris



More information about the Freeradius-Devel mailing list