I was trying to send a set of requests in series using radclient to determine the overhead with an external program. I use /bin/true as the external program. In standard mode, radiusd chokes after the first few requests, complaining about duplicate requests (there aren't duplicates as far as I can tell), and saying:


> Discarding duplicate request from client localhost:32770 - ID: 122 due to unfinished request 3
> WARNING: Unresponsive child (id 4101938096) for request 3


However, when ran as "radiusd -X" everything goes smoothly and all requests are replied to, without any delays.

The only thing that I can think of is that freeradius might be looking at the remote port/IP to decide on duplicates, and since I am running radclient sequentially, it gets the same port (for example 32770) for a while. I don't understand why it does not do this in debug mode though, so my guess could be completely off.

I have freeradius 1.0.1 on Fedora 3, and the only change from stock configuration is /etc/raddb/users where I have this at the top:

DEFAULT Auth-Type = Accept
        Exec-Program-Wait = "/bin/true",
        Fall-Through = 0

The test script looks like this:

echo -e 'User-Name = "user2"\nPassword = "p2"\nNAS-Port = "2"\nNAS-IP-Address = "127.0.0.2"\n' | radclient localhost auth testing123
echo -e 'User-Name = "user3"\nPassword = "p3"\nNAS-Port = "3"\nNAS-IP-Address = "127.0.0.3"\n' | radclient localhost auth testing123
[rinse and repeat for 4,5,6...]


Any ideas ?

--
L.C. (Laurentiu C. Badea)


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

Reply via email to