(RADIATOR) Issue with Duplicate Key when Adding a Session
Bon sy
bon at bunny.cs.qc.edu
Fri Jul 25 09:52:32 CDT 2003
Pual and Hugh,
We initially have the same problem as Hugh described; i.e., a
situation with duplicate NAS-Identifier + NAS-port. The way to get around
is to generate a session id based on NAS-Identifier + NAS-port +
<DATE:HH24-MI-SS>. This should guarantee uniqueness unless you get
multiple requests within a second. In that case, just drill down to
milli-second or whatever "time resolution" permissible. Matching a
"stop" request will then be based on the most recent open "start". Open
"start" is defined as no matching "stop" accoutning record.
Bon
On Fri, 25 Jul 2003, Hugh Irvine wrote:
>
> Hello Paul -
>
> The error is a MySQL error which is complaining about a duplicate entry
> for a unique key.
>
> The unique key for the RADONLINE table is the combination of the
> NAS-Identifier and NAS-Port which is what Radiator bases its session
> database and simultaneous use checking on - the assumption being that
> there are unique ports on each NAS.
>
> The theory behind Radiator's use of the session database is that every
> NAS is uniquely identified by the NAS-Identifier and every port on
> every NAS is also uniquely identified by the NAS-Port attribute. When
> Radiator receives an access request, it performs a delete on the
> session database using the NAS-Identifier and NAS-Port combination as
> preventative maintenance in case we have missed an accounting stop for
> the port in question. When Radiator receives an accounting start a new
> record is inserted into the session database and when an accounting
> stop is received the record is removed.
>
> Obviously if in your situation the NAS-Identifier + NAS-Port
> combination is not unique, you will have a problem with the session
> database (and it will be impossible to enforce simultaneous use limits).
>
> regards
>
> Hugh
>
>
> On Friday, Jul 25, 2003, at 11:49 Australia/Melbourne, Paul wrote:
>
> > Hi All,
> >
> > We are using Radiator 3.6 with latest patches but we are seeing an
> > issue
> > when a new session is added. We're getting Duplicate key which appears
> > to be
> > coming from the internal handler code rather than MySQL itself. Below
> > is the
> > error when it occurs. We've modified our "delete from RADONLINE" query
> > to
> > match the details more accurately and we don't appear to be having any
> > problems with this, it's just "Adding session for %s" is where it
> > seems to
> > go astray.
> >
> > Thu Jul 24 20:57:37 2003: DEBUG: Adding session for myuser at hehe.com,
> > 1.2.3.4, 6256
> >
> > Thu Jul 24 20:57:37 2003: DEBUG: do query is: 'delete from RADONLINE
> > where
> > NASIDENTIFIER='1.2.3.4' and NASPORT=6256 and ACCTSESSIONID =
> > '00062398'':
> >
> > Thu Jul 24 20:57:37 2003: DEBUG: do query is: 'INSERT INTO RADONLINE
> > (USERNAME, NASIDENTIFIER, ACCTSESSIONID, TIME_STAMP, FRAMEDIPADDRESS,
> > NASPORT, NASPORTTYPE, SERVICETYPE, DNIS, PHONENO, SESSIONKEY,
> > ACCTSESSIONTIME, INPUTOCTETS, OUTPUTOCTETS, POPID,targetid,
> > DOWNLOADRATE,
> > UPLOADRATE, ORIGUSER)
> > VALUES('myuser','1.2.3.4','00062398','1059044257','5.6.7.8','6256','Asy
> > nc','
> > Framed-User','0312345678','03912345678', '6F419DF2',
> > '2185','346903','2410144','61', '15', '45333', '26400',
> > 'myuser at hehe.com')':
> >
> > Thu Jul 24 20:57:37 2003: ERR: do failed for 'INSERT INTO RADONLINE
> > (USERNAME, NASIDENTIFIER, ACCTSESSIONID, TIME_STAMP, FRAMEDIPADDRESS,
> > NASPORT, NASPORTTYPE, SERVICETYPE, DNIS, PHONENO, SESSIONKEY,
> > ACCTSESSIONTIME, INPUTOCTETS, OUTPUTOCTETS, POPID, targetid,
> > DOWNLOADRATE,
> > UPLOADRATE, ORIGUSER)
> > VALUES('myuser','1.2.3.4','00062398','1059044257','5.6.7.8','6256','Asy
> > nc','
> > Framed-User','0312345678','03912345678', '6F419DF2',
> > '2185','346903','2410144','61', '15', '45333', '26400',
> > 'myuser at hehe.com')':
> > Duplicate entry '1.2.3.4-6256' for key 1
> >
> > If you have any ideas that'd be great. Thanks
> >
> > Regards,
> >
> > Paul Rivoli
> > paul at kbs.net.au
> > K B S I N T E R N E T
> >
> >
> >
> > ===
> > Archive at http://www.open.com.au/archives/radiator/
> > Announcements on radiator-announce at open.com.au
> > To unsubscribe, email 'majordomo at open.com.au' with
> > 'unsubscribe radiator' in the body of the message.
> >
> >
>
> NB: have you included a copy of your configuration file (no secrets),
> together with a trace 4 debug showing what is happening?
>
> --
> Radiator: the most portable, flexible and configurable RADIUS server
> anywhere. Available on *NIX, *BSD, Windows 95/98/2000, NT, MacOS X.
> -
> Nets: internetwork inventory and management - graphical, extensible,
> flexible with hardware, software, platform and database independence.
>
> ===
> Archive at http://www.open.com.au/archives/radiator/
> Announcements on radiator-announce at open.com.au
> To unsubscribe, email 'majordomo at open.com.au' with
> 'unsubscribe radiator' in the body of the message.
>
===
Archive at http://www.open.com.au/archives/radiator/
Announcements on radiator-announce at open.com.au
To unsubscribe, email 'majordomo at open.com.au' with
'unsubscribe radiator' in the body of the message.
More information about the radiator
mailing list