Using Postgresql 4.7
and FreeRadius 0.9.3
on FreeBSD 5.1
On sending an Accounting Stop Request to Freeradius
I get some errors in summary
invalid input syntax for type bigint: ""
below is the error log and
Below the log is the standard part of postgresql.conf I am using it
unmodified
Nothing to do. Sleeping until we see a request.
rad_recv: Accounting-Request packet from host 192.168.0.1:3306, id=21,
length=38
User-Name = "clint"
Acct-Status-Type = Stop
Acct-Session-Id = "816"
modcall: entering group preacct for request 3
modcall[preacct]: module "preprocess" returns noop for request 3
rlm_realm: No '@' in User-Name = "clint", looking up realm NULL
rlm_realm: No such realm "NULL"
modcall[preacct]: module "suffix" returns noop for request 3
modcall: group preacct returns noop for request 3
modcall: entering group accounting for request 3
rlm_acct_unique: WARNING: Attribute NAS-Port-Id was not found in request,
unique ID MAY be incons
istent
rlm_acct_unique: Hashing ',Client-IP-Address = 192.168.0.1,NAS-IP-Address =
192.168.0.1,Acct-Sess
ion-Id = "816",User-Name = "clint"'
rlm_acct_unique: Acct-Unique-Session-ID = "38a313dce3842355".
modcall[accounting]: module "acct_unique" returns ok for request 3
radius_xlat:
'/usr/local/var/log/radius/radacct/192.168.0.1/detail-20031213'
rlm_detail:
/usr/local/var/log/radius/radacct/%{Client-IP-Address}/detail-%Y%m%d expands
to /usr/
local/var/log/radius/radacct/192.168.0.1/detail-20031213
modcall[accounting]: module "detail" returns ok for request 3
modcall[accounting]: module "unix" returns noop for request 3
radius_xlat: 'clint'
rlm_sql (sql): sql_set_user escaped user --> 'clint'
radius_xlat: 'UPDATE radacct ??SET AcctStopTime = (now() - '0'::interval),
AcctSessionTime = '',
??AcctInputOctets = (('0'::bigint << 32) + '0'::bigint), ??AcctOutputOctets
= (('0'::bigint << 3
2) + '0'::bigint), ??AcctTerminateCause = '', AcctStopDelay = '0',
??FramedIPAddress = NULLIF('',
'')::inet, ConnectInfo_stop = '' ??WHERE AcctSessionId = '816' AND UserName
= 'clint' ??AND NASI
PAddress = '192.168.0.1' AND AcctStopTime IS NULL'
radius_xlat: '/usr/local/var/log/radius/sqltrace.sql'
rlm_sql (sql): Reserving sql socket id: 1
rlm_sql_postgresql: query: UPDATE radacct ??SET AcctStopTime = (now() -
'0'::interval), AcctSessi
onTime = '', ??AcctInputOctets = (('0'::bigint << 32) + '0'::bigint),
??AcctOutputOctets = (('0':
:bigint << 32) + '0'::bigint), ??AcctTerminateCause = '', AcctStopDelay =
'0', ??FramedIPAddress
= NULLIF('', '')::inet, ConnectInfo_stop = '' ??WHERE AcctSessionId = '816'
AND UserName = 'clint
' ??AND NASIPAddress = '192.168.0.1' AND AcctStopTime IS NULL
rlm_sql_postgresql: Status: PGRES_FATAL_ERROR
rlm_sql_postgresql: affected rows =
rlm_sql_postgresql: Postgresql check_error: PGRES_FATAL_ERROR, returning
SQL_DOWN
rlm_sql (sql): Attempting to connect rlm_sql_postgresql #1
rlm_sql (sql): Connected new DB handle, #1
rlm_sql_postgresql: query: UPDATE radacct ??SET AcctStopTime = (now() -
'0'::interval), AcctSessi
onTime = '', ??AcctInputOctets = (('0'::bigint << 32) + '0'::bigint),
??AcctOutputOctets = (('0':
:bigint << 32) + '0'::bigint), ??AcctTerminateCause = '', AcctStopDelay =
'0', ??FramedIPAddress
= NULLIF('', '')::inet, ConnectInfo_stop = '' ??WHERE AcctSessionId = '816'
AND UserName = 'clint
' ??AND NASIPAddress = '192.168.0.1' AND AcctStopTime IS NULL
rlm_sql_postgresql: Status: PGRES_FATAL_ERROR
rlm_sql_postgresql: affected rows =
rlm_sql_postgresql: Postgresql check_error: PGRES_FATAL_ERROR, returning
SQL_DOWN
rlm_sql (sql): failed after re-connect
rlm_sql (sql): Couldn't update SQL accounting STOP record - ERROR: invalid
input syntax for type
bigint: ""
rlm_sql (sql): Released sql socket id: 1
modcall[accounting]: module "sql" returns fail for request 3
modcall: group accounting returns fail for request 3
Finished request 3
Going to the next request
--- Walking the entire request list ---
Cleaning up request 3 ID 21 with timestamp 3fdb4e3b
Nothing to do. Sleeping until we see a request.
rad_recv: Accounting-Request packet from host 192.168.0.1:3307, id=22,
length=38
User-Name = "clint"
Acct-Status-Type = Stop
Acct-Session-Id = "816"
modcall: entering group preacct for request 4
modcall[preacct]: module "preprocess" returns noop for request 4
rlm_realm: No '@' in User-Name = "clint", looking up realm NULL
rlm_realm: No such realm "NULL"
modcall[preacct]: module "suffix" returns noop for request 4
modcall: group preacct returns noop for request 4
modcall: entering group accounting for request 4
rlm_acct_unique: WARNING: Attribute NAS-Port-Id was not found in request,
unique ID MAY be incons
istent
rlm_acct_unique: Hashing ',Client-IP-Address = 192.168.0.1,NAS-IP-Address =
192.168.0.1,Acct-Sess
ion-Id = "816",User-Name = "clint"'
rlm_acct_unique: Acct-Unique-Session-ID = "38a313dce3842355".
modcall[accounting]: module "acct_unique" returns ok for request 4
radius_xlat:
'/usr/local/var/log/radius/radacct/192.168.0.1/detail-20031213'
rlm_detail:
/usr/local/var/log/radius/radacct/%{Client-IP-Address}/detail-%Y%m%d expands
to /usr/
local/var/log/radius/radacct/192.168.0.1/detail-20031213
modcall[accounting]: module "detail" returns ok for request 4
modcall[accounting]: module "unix" returns noop for request 4
radius_xlat: 'clint'
rlm_sql (sql): sql_set_user escaped user --> 'clint'
radius_xlat: 'UPDATE radacct ??SET AcctStopTime = (now() - '0'::interval),
AcctSessionTime = '',
??AcctInputOctets = (('0'::bigint << 32) + '0'::bigint), ??AcctOutputOctets
= (('0'::bigint << 3
2) + '0'::bigint), ??AcctTerminateCause = '', AcctStopDelay = '0',
??FramedIPAddress = NULLIF('',
'')::inet, ConnectInfo_stop = '' ??WHERE AcctSessionId = '816' AND UserName
= 'clint' ??AND NASI
PAddress = '192.168.0.1' AND AcctStopTime IS NULL'
radius_xlat: '/usr/local/var/log/radius/sqltrace.sql'
rlm_sql (sql): Reserving sql socket id: 0
rlm_sql_postgresql: query: UPDATE radacct ??SET AcctStopTime = (now() -
'0'::interval), AcctSessi
onTime = '', ??AcctInputOctets = (('0'::bigint << 32) + '0'::bigint),
??AcctOutputOctets = (('0':
:bigint << 32) + '0'::bigint), ??AcctTerminateCause = '', AcctStopDelay =
'0', ??FramedIPAddress
= NULLIF('', '')::inet, ConnectInfo_stop = '' ??WHERE AcctSessionId = '816'
AND UserName = 'clint
' ??AND NASIPAddress = '192.168.0.1' AND AcctStopTime IS NULL
rlm_sql_postgresql: Status: PGRES_FATAL_ERROR
rlm_sql_postgresql: affected rows =
rlm_sql_postgresql: Postgresql check_error: PGRES_FATAL_ERROR, returning
SQL_DOWN
rlm_sql (sql): Attempting to connect rlm_sql_postgresql #0
rlm_sql (sql): Connected new DB handle, #0
rlm_sql_postgresql: query: UPDATE radacct ??SET AcctStopTime = (now() -
'0'::interval), AcctSessi
onTime = '', ??AcctInputOctets = (('0'::bigint << 32) + '0'::bigint),
??AcctOutputOctets = (('0':
:bigint << 32) + '0'::bigint), ??AcctTerminateCause = '', AcctStopDelay =
'0', ??FramedIPAddress
= NULLIF('', '')::inet, ConnectInfo_stop = '' ??WHERE AcctSessionId = '816'
AND UserName = 'clint
' ??AND NASIPAddress = '192.168.0.1' AND AcctStopTime IS NULL
rlm_sql_postgresql: Status: PGRES_FATAL_ERROR
rlm_sql_postgresql: affected rows =
rlm_sql_postgresql: Postgresql check_error: PGRES_FATAL_ERROR, returning
SQL_DOWN
rlm_sql (sql): failed after re-connect
rlm_sql (sql): Couldn't update SQL accounting STOP record - ERROR: invalid
input syntax for type
bigint: ""
rlm_sql (sql): Released sql socket id: 0
modcall[accounting]: module "sql" returns fail for request 4
modcall: group accounting returns fail for request 4
Finished request 4
Going to the next request
postgresql.conf
accounting_stop_query = "UPDATE ${acct_table2} \
SET AcctStopTime = (now() -
'%{Acct-Delay-Time:-0}'::interval), AcctSessionTime =
'%{Acct-Session-Time}', \
AcctInputOctets = (('%{Acct-Input-Gigawords:-0}'::bigint <<
32) + '%{Acct-Input-Octets:-0}'::bigint), \
AcctOutputOctets = (('%{Acct-Output-Gigawords:-0}'::bigint
<< 32) + '%{Acct-Output-Octets:-0}'::bigint), \
AcctTerminateCause = '%{Acct-Terminate-Cause}',
AcctStopDelay = '%{Acct-Delay-Time:-0}', \
FramedIPAddress = NULLIF('%{Framed-IP-Address}', '')::inet,
ConnectInfo_stop = '%{Connect-Info}' \
WHERE AcctSessionId = '%{Acct-Session-Id}' AND UserName =
'%{SQL-User-Name}' \
AND NASIPAddress = '%{NAS-IP-Address}' AND AcctStopTime IS
NULL"
accounting_stop_query_alt = "INSERT into ${acct_table2} \
(AcctSessionId, AcctUniqueId, UserName, Realm, NASIPAddress,
NASPortId, NASPortType, AcctStartTime, AcctStop$
AcctSessionTime, AcctAuthentic, ConnectInfo_stop,
AcctInputOctets, AcctOutputOctets, CalledStationId, Callin$
AcctTerminateCause, ServiceType, FramedProtocol,
FramedIPAddress, AcctStopDelay) \
values('%{Acct-Session-Id}', '%{Acct-Unique-Session-Id}',
'%{SQL-User-Name}', '%{Realm}', '%{NAS-IP-Address}$
'%{NAS-Port}', '%{NAS-Port-Type}', (now() -
'%{Acct-Delay-Time:-0}'::interval - '%{Acct-Session-Time:-0}'::$
(now() - '%{Acct-Delay-Time:-0}'::interval),
'%{Acct-Session-Time}', '%{Acct-Authentic}', '%{Connect-Info}',$
(('%{Acct-Input-Gigawords:-0}'::bigint << 32) +
'%{Acct-Input-Octets:-0}'::bigint), \
(('%{Acct-Output-Gigawords:-0}'::bigint << 32) +
'%{Acct-Output-Octets:-0}'::bigint), '%{Called-Station-Id}'$
'%{Calling-Station-Id}', '%{Acct-Terminate-Cause}',
'%{Service-Type}', '%{Framed-Protocol}', \
NULLIF('%{Framed-IP-Address}', '')::inet,
'%{Acct-Delay-Time:-0}')"
Any pointers would be appreciated, how should I change Gigawords to work
properly?
-Chebon
-
List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html