strange behavior in proxy when some backend servers down

Alan DeKok aland at deployingradius.com
Sat Jul 11 14:44:46 CEST 2009


travis+ml-freeradius-users at subspacefield.org wrote:
> IIUC, the desired behavior is that it tries one backend server, and
> fails, marks it as a zombie, and then upon receiving another request
> from the user logging in, it should try a different backend server.

  See recent threads on this list...

  It mostly does that.  If you are testing with ONE request at a time,
you might see behavior you don't expect.  If you have MANY requests
simultaneously, they do get switched from one home server to another.

> What we're seeing is that once no response comes back from a server,
> it marks the server as a zombie, but it marks the request as completed.

  i.e. "the proxy responds to the client".

  The request is marked as completed ONLY because it responds to the client.

> Subsequent authentication requests that come in are looked up in the
> response hash, finds that the response has been completed, and ignores
> the request.

  It ONLY ignores the request if you configure the "do not respond"
policy.  If you want it to continue processing requests... DON'T set the
"do not respond" policy.

> I could use any help in tracking this down.  If it requires a code
> change to fix, I'll be contributing that back to the project.
> 
> Does anyone have any suggestions on how to track this down?

  The source code is publicly available.  You can use gdb and code
introspection to see what it's doing.  See src/main/event.c for the
internal state machine.

  Alan DeKok.



More information about the Freeradius-Users mailing list