Mother wrote:
> I am seeing a strange situation. I receive an accounting-stop request
> from a NAS, and FreeRADIUS (1.1.7 against Oracle) updates the
> corresponding radacct record. However, the NAS is not receiving the ack,
> and thus re-sends the stop request. On the second request, FreeRADIUS
> tries to do an update query again, and then, an insert query, with the
> stop message details (i.e. only a stop time, reason idle-timeout, etc.),
> which fails.

  Why?

> After the third request from the NAS (and corresponding
> update followed by insert), Oracle throws a unique constraint violation
> error, and the server freezes.

  Weird.

> Questions:
> 
> 1. Why is FreeRADIUS failing to see that this request was already
> acknowledged, i.e. it has been updated on the database, and just sends
> an ACK, rather than trying to insert a new record?

  Because RADIUS doesn't work like that.  Accounting requests are never
re-sent, so *all* accounting requests are "brand new", and have to be
treated that way.

> 2. Why does FreeRADIUS freeze on an SQL error from Oracle? Should it not
> just log the error and carry on about its business? I am finding my
> server freezing every few days due to these issues, for example, if a
> query takes too long to run, or a trigger fails to execute. Is
> FreeRADIUS against Oracle more fragile than say MySQL?

  I think that fewer people are using it that way.

  Perhaps you could try posting the error message, or run it under "gdb"
to see why it's freezing.

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

Reply via email to