On 22 Jul 2012, at 11:56, Amir Tal wrote:

Adding unique key to the database results in the following being returned from rlm_sql,
What happen to accounting data when a duplicate entry is encountered?
In addition, currently there is no scheduled clearing of the data in radacct table, wont this increase in occurrence?
 
--
[sql]   expand: %{%{Stripped-User-Name}:-%{%{User-Name}:-DEFAULT}} -> shimoni
[sql] sql_set_user escaped user --> 'shimoni'
[sql]   expand: %{Acct-Input-Gigawords} -> 0
[sql]   expand: %{Acct-Input-Octets} -> 0
[sql]   expand: %{Acct-Output-Gigawords} -> 0
[sql]   expand: %{Acct-Output-Octets} -> 0
[sql]   expand: %{Acct-Delay-Time} -> 12
[sql]   expand:  UPDATE radacct SET  acctstoptime       = '%S',  acctsessiontime    = '%{Acct-Session-Time}',  acctinputoctets    = '%{%{Acct-Input-Gigawords}:-0}' << 32 | '%{%{Acct-Input-Octets}:-0}',  acctoutputoctets   = '%{%{Acct-Output-Gigawords}:-0}' << 32 | '%{%{Acct-Output-Octets}:-0}',  acctterminatecause = '%{Acct-Terminate-Cause}',  acctstopdelay      = '%{%{Acct-Delay-Time}:-0}',  connectinfo_stop   = '%{Connect-Info}' WHERE acctsessionid   = '%{Acct-Session-Id}' AND username          = '%{SQL-User-Name}' AND nasipaddress      = '%{NAS-IP-Address}' ->  UPDATE radacct SET  acctstoptime       = '2012-07-22 02:03:28',  acctsessiontime    = '0',  acctinputoctets    = '0' << 32 | '0',  acctoutputoctets   = '0' << 32 | '0',  acctterminatecause = 'User-Error',  acctstopdelay      = '12',  connectinfo_stop   = '' WHERE acctsessionid   = 'erx ip:109.226.0.9:172.29.81.67:3280:96f8:1aa8:87fb:4d2:0062712021' AND username          = 'shimoni' AND nasipaddress      = '109.226.1.12'
[sql]   expand: /var/log/radius/sqltrace.sql -> /var/log/radius/sqltrace.sql
rlm_sql_mysql: MYSQL check_error: 1062 received
[sql] Couldn't insert SQL accounting STOP record - Duplicate entry 'c6d3d253355b3dcf' for key 2
rlm_sql_mysql: MYSQL check_error: 1062 received
rlm_sql_mysql: Cannot store result
rlm_sql_mysql: MySQL error 'Duplicate entry 'c6d3d253355b3dcf' for key 2'
rlm_sql (sql): Released sql socket id: 11
++[sql] returns fail
--

Can you please build against the current v2.1.x HEAD; the debug output doesn't make sense when checking through the rlm_sql.c code. Could you also post your dialup.conf file.

-Arran