I am running Freeradius 0.9 and I am writing accounting records to an
Oracle DB ver 8i. If the Database goes down, the Freeradius gives a
segmentation fault error and dies. I've tried also to point to another
database as a fail-over option, but the same results were encountered.
Please find below the gdb output along with the debug output and the
configuration.
GDB output
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
gdb /app/experimental/free-0.9/local/sbin/radiusd
/app/experimental/free-0.9/local/sbin/core
GNU gdb 5.3
Copyright 2002 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you
are
welcome to change it and/or distribute copies of it under certain
conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for
details.
This GDB was configured as "sparc-sun-solaris2.8"...(no debugging
symbols found)...
Core was generated by `./radiusd'.
Program terminated with signal 11, Segmentation fault.
Reading symbols from /lib/libcrypt_i.so.1...(no debugging symbols
found)...done.
Loaded symbols for /lib/libcrypt_i.so.1
Reading symbols from /lib/librt.so.1...(no debugging symbols
found)...done.
Loaded symbols for /lib/librt.so.1
Reading symbols from /lib/libpthread.so.1...(no debugging symbols
found)...done.
Loaded symbols for /lib/libpthread.so.1
Reading symbols from
/app/experimental/free-0.9/local/lib/libradius-0.9.0.so...done.
Loaded symbols for
/app/experimental/free-0.9/local/lib/libradius-0.9.0.so
Reading symbols from /usr/local/lib/libsnmp-0.4.2.5.so...done.
Loaded symbols for /usr/local/lib/libsnmp-0.4.2.5.so
Reading symbols from /lib/libnsl.so.1...done.
Loaded symbols for /lib/libnsl.so.1
Reading symbols from /lib/libsocket.so.1...done.
Loaded symbols for /lib/libsocket.so.1
Reading symbols from /lib/libresolv.so.2...done.
Loaded symbols for /lib/libresolv.so.2
Reading symbols from /lib/libkstat.so.1...done.
Loaded symbols for /lib/libkstat.so.1
Reading symbols from /usr/local/lib/libltdl.so.3...done.
Loaded symbols for /usr/local/lib/libltdl.so.3
Reading symbols from /lib/libdl.so.1...done.
Loaded symbols for /lib/libdl.so.1
Reading symbols from /lib/libc.so.1...done.
Loaded symbols for /lib/libc.so.1
Reading symbols from /usr/local/lib/libgcc_s.so.1...done.
Loaded symbols for /usr/local/lib/libgcc_s.so.1
Reading symbols from /lib/libgen.so.1...done.
Loaded symbols for /lib/libgen.so.1
Reading symbols from /lib/libaio.so.1...done.
Loaded symbols for /lib/libaio.so.1
Reading symbols from /lib/libmp.so.2...done.
Loaded symbols for /lib/libmp.so.2
Reading symbols from
/usr/platform/SUNW,Ultra-4/lib/libc_psr.so.1...done.
Loaded symbols for /usr/platform/SUNW,Ultra-4/lib/libc_psr.so.1
Reading symbols from /lib/libthread.so.1...done.
Loaded symbols for /lib/libthread.so.1
Reading symbols from
/app/experimental/free-0.9/local/lib/rlm_expr-0.9.0.so...done.
Loaded symbols for
/app/experimental/free-0.9/local/lib/rlm_expr-0.9.0.so
Reading symbols from
/app/experimental/free-0.9/local/lib/rlm_pap-0.9.0.so...done.
Loaded symbols for /app/experimental/free-0.9/local/lib/rlm_pap-0.9.0.so
Reading symbols from
/app/experimental/free-0.9/local/lib/rlm_chap-0.9.0.so...done.
Loaded symbols for
/app/experimental/free-0.9/local/lib/rlm_chap-0.9.0.so
Reading symbols from
/app/experimental/free-0.9/local/lib/rlm_mschap-0.9.0.so...done.
Loaded symbols for
/app/experimental/free-0.9/local/lib/rlm_mschap-0.9.0.so
Reading symbols from
/app/experimental/free-0.9/local/lib/rlm_unix-0.9.0.so...done.
Loaded symbols for
/app/experimental/free-0.9/local/lib/rlm_unix-0.9.0.so
Reading symbols from
/app/experimental/free-0.9/local/lib/rlm_eap-0.9.0.so...done.
Loaded symbols for /app/experimental/free-0.9/local/lib/rlm_eap-0.9.0.so
Reading symbols from
/app/experimental/free-0.9/local/lib/rlm_eap_md5-0.9.0.so...done.
Loaded symbols for
/app/experimental/free-0.9/local/lib/rlm_eap_md5-0.9.0.so
Reading symbols from
/app/experimental/free-0.9/local/lib/rlm_eap_leap-0.9.0.so...done.
Loaded symbols for
/app/experimental/free-0.9/local/lib/rlm_eap_leap-0.9.0.so
Reading symbols from
/app/experimental/free-0.9/local/lib/rlm_preprocess-0.9.0.so...done.
Loaded symbols for
/app/experimental/free-0.9/local/lib/rlm_preprocess-0.9.0.so
Reading symbols from
/app/experimental/free-0.9/local/lib/rlm_sql-0.9.0.so...done.
Loaded symbols for /app/experimental/free-0.9/local/lib/rlm_sql-0.9.0.so
Reading symbols from
/app/experimental/free-0.9/local/lib/rlm_sql_oracle-0.9.0.so...done.
Loaded symbols for
/app/experimental/free-0.9/local/lib/rlm_sql_oracle-0.9.0.so
Reading symbols from /oracle/ora817/lib//libclntsh.so.8.0...done.
Loaded symbols for /oracle/ora817/lib//libclntsh.so.8.0
Reading symbols from /oracle/ora817/lib//libwtc8.so...done.
Loaded symbols for /oracle/ora817/lib//libwtc8.so
Reading symbols from /lib/libsched.so.1...done.
Loaded symbols for /lib/libsched.so.1
---Type <return> to continue, or q <return> to quit---
Reading symbols from /lib/libm.so.1...done.
Loaded symbols for /lib/libm.so.1
Reading symbols from
/app/experimental/free-0.9/local/lib/rlm_realm-0.9.0.so...done.
Loaded symbols for
/app/experimental/free-0.9/local/lib/rlm_realm-0.9.0.so
Reading symbols from
/app/experimental/free-0.9/local/lib/rlm_files-0.9.0.so...done.
Loaded symbols for
/app/experimental/free-0.9/local/lib/rlm_files-0.9.0.so
Reading symbols from
/app/experimental/free-0.9/local/lib/rlm_detail-0.9.0.so...done.
Loaded symbols for
/app/experimental/free-0.9/local/lib/rlm_detail-0.9.0.so
Reading symbols from
/app/experimental/free-0.9/local/lib/rlm_radutmp-0.9.0.so...done.
Loaded symbols for
/app/experimental/free-0.9/local/lib/rlm_radutmp-0.9.0.so
Reading symbols from /lib/nss_files.so.1...done.
Loaded symbols for /lib/nss_files.so.1
#0 sql_error (sqlsocket=0x1b2ba0, config=0x1a1078) at sql_oracle.c:49
49 OCIErrorGet((dvoid *) oracle_sock->errHandle, (ub4) 1,
(text *) NULL,
(gdb) bt
#0 sql_error (sqlsocket=0x1b2ba0, config=0x1a1078) at sql_oracle.c:49
#1 0xfed630c8 in rlm_sql_accounting (instance=0x19e1f8,
request=0x203190) at rlm_sql.c:793
#2 0x0001e04c in module_post_auth ()
#3 0x0001e134 in modcall ()
#4 0x0001e090 in module_post_auth ()
#5 0x0001e1cc in modcall ()
#6 0x0001e090 in module_post_auth ()
#7 0x0001e1cc in modcall ()
#8 0x00018140 in rad_accounting ()
#9 0x00015bd8 in rad_respond ()
#10 0x00020178 in radius_xlat ()
My configuration looks like this:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>
Radiusd.conf
accounting {
detail
redundant {
sql2 {
fail = 1
notfound = return
noop = return
ok = return
updated = return
reject = return
userlock = return
invalid = return
handled = return
}
sql2_redundant {
fail = 1
notfound = return
noop = return
ok = return
updated = return
reject = return
userlock = return
invalid = return
handled = return
}
}
}
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>
oraclesql.conf
sql sql2 {
driver = "rlm_sql_oracle"
# Connect info
server = "xxx.xxx.xxx.001"
login = "test"
password = "testpass"
# Database table configuration
radius_db = "oracle1"
...
}
sql sql2_redundant {
driver = "rlm_sql_oracle"
# Connect info
server = "xxx.xxx.xxx.002"
login = "test"
password = "testpass"
# Database table configuration
radius_db = "oracle2"
...
}
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
The debug output before accounting DB shutdown :
rad_recv: Accounting-Request packet from host xxx.xxx.xxx.xxx:38499,
id=163, length=79 Sun Aug 3 07:12:01 2003 : Debug: Thread 1 assigned
request 0 Sun Aug 3 07:12:01 2003 : Debug: Thread 1 handling request 0,
(1 handled so far)
User-Name = "test"
NAS-IP-Address = xxx.xxx.xxx.xxx
NAS-Port = 0
NAS-Port-Type = Async
Service-Type = Framed-User
Framed-Protocol = PPP
Acct-Session-Id = "379094841"
Acct-Status-Type = Start
Acct-Delay-Time = 0
Sun Aug 3 07:12:01 2003 : Debug: modcall: entering group preacct
Sun Aug 3 07:12:01 2003 : Debug: modcall[preacct]: module
"preprocess" returns noop
Sun Aug 3 07:12:01 2003 : Debug: rlm_realm: No '@' in User-Name =
"test", looking up realm NULL
Sun Aug 3 07:12:01 2003 : Debug: rlm_realm: No such realm "NULL"
Sun Aug 3 07:12:01 2003 : Debug: modcall[preacct]: module "suffix"
returns noop
Sun Aug 3 07:12:01 2003 : Debug: modcall[preacct]: module "files"
returns noop
Sun Aug 3 07:12:01 2003 : Debug: modcall: group preacct returns noop
Sun Aug 3 07:12:01 2003 : Debug: modcall: entering group accounting Sun
Aug 3 07:12:01 2003 : Debug: radius_xlat:
'/app/experimental/free-0.9/local/var/log/radius/radacct/xxx.xxx.xxx.xxx
/detail-20030803'
Sun Aug 3 07:12:01 2003 : Debug: rlm_detail:
/app/experimental/free-0.9/local/var/log/radius/radacct/%{Client-IP-Addr
ess}/detail-%Y%m%d expands to
/app/experimental/free-0.9/local/var/log/radius/radacct/xxx.xxx.xxx.xxx/
detail-20030803
Sun Aug 3 07:12:01 2003 : Debug: --- Walking the entire request list
--- Sun Aug 3 07:12:01 2003 : Debug: Threads: total/active/spare
threads = 5/1/4 Sun Aug 3 07:12:01 2003 : Debug: Waking up in 5
seconds...
Sun Aug 3 07:12:01 2003 : Debug: modcall[accounting]: module "detail"
returns ok
Sun Aug 3 07:12:01 2003 : Debug: modcall: entering group redundant Sun
Aug 3 07:12:01 2003 : Debug: radius_xlat: 'test' Sun Aug 3 07:12:01
2003 : Debug: rlm_sql (sql2): sql_set_user escaped user --> 'test' Sun
Aug 3 07:12:01 2003 : Debug: radius_xlat: 'INSERT into RADACCT
(RadAcctId, AcctSessionId, AcctUniqueId, UserName, Realm, NASIPAddress,
NASPortId, NASPortType, AcctStartTime, AcctStopTime, AcctSessionTime,
AcctAuthentic, ConnectInfo_start, ConnectInfo_stop, AcctInputOctets,
AcctOutputOctets, CalledStationId, CallingStationId, AcctTerminateCause,
ServiceType, FramedProtocol, FramedIPAddress, AcctStartDelay,
AcctStopDelay) values('', '379094841', '', 'test', '',
'xxx.xxx.xxx.xxx', '0', 'Async', TO_DATE('2003-08-03
07:12:01','yyyy-mm-dd hh24:mi:ss'), '', '0', '', '', '', '0', '0', '',
'', '', 'Framed-User', 'PPP', '', '0', '0')' Sun Aug 3 07:12:01 2003 :
Debug: rlm_sql (sql2): Reserving sql socket id: 2
Sun Aug 3 07:12:01 2003 : Debug: rlm_sql (sql2): Released sql socket
id: 2
Sun Aug 3 07:12:01 2003 : Debug: modcall[accounting]: module "sql2"
returns ok
Sun Aug 3 07:12:01 2003 : Debug: modcall: group redundant returns ok
Sun Aug 3 07:12:01 2003 : Debug: modcall: group accounting returns ok
Sending Accounting-Response of id 163 to xxx.xxx.xxx.xxx:38499
Sun Aug 3 07:12:01 2003 : Debug: Finished request 0
Sun Aug 3 07:12:01 2003 : Debug: Going to the next request
Sun Aug 3 07:12:01 2003 : Debug: Thread 1 waiting to be assigned a
request
Sun Aug 3 07:12:06 2003 : Debug: --- Walking the entire request list
---
Sun Aug 3 07:12:06 2003 : Debug: Threads: total/active/spare threads =
5/0/5
Sun Aug 3 07:12:06 2003 : Debug: Waking up in 1 seconds...
Sun Aug 3 07:12:07 2003 : Debug: --- Walking the entire request list
---
Sun Aug 3 07:12:07 2003 : Debug: Cleaning up request 0 ID 163 with
timestamp 3f2c7d81
Sun Aug 3 07:12:07 2003 : Debug: Nothing to do. Sleeping until we see
a request.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
The debug output after accounting DB shutdown:
rad_recv: Accounting-Request packet from host xxx.xxx.xxx.xxx:38501,
id=164, length=79 Sun Aug 3 07:12:30 2003 : Debug: Thread 2 assigned
request 1 Sun Aug 3 07:12:30 2003 : Debug: --- Walking the entire
request list --- Sun Aug 3 07:12:30 2003 : Debug: Threads:
total/active/spare threads = 5/1/4 Sun Aug 3 07:12:30 2003 : Debug:
Waking up in 5 seconds... Sun Aug 3 07:12:30 2003 : Debug: Thread 2
handling request 1, (1 handled so far)
User-Name = "test"
NAS-IP-Address = xxx.xxx.xxx.xxx
NAS-Port = 0
NAS-Port-Type = Async
Service-Type = Framed-User
Framed-Protocol = PPP
Acct-Session-Id = "379094841"
Acct-Status-Type = Start
Acct-Delay-Time = 0
Sun Aug 3 07:12:30 2003 : Debug: modcall: entering group preacct
Sun Aug 3 07:12:30 2003 : Debug: modcall[preacct]: module
"preprocess" returns noop
Sun Aug 3 07:12:30 2003 : Debug: rlm_realm: No '@' in User-Name =
"test", looking up realm NULL
Sun Aug 3 07:12:30 2003 : Debug: rlm_realm: No such realm "NULL"
Sun Aug 3 07:12:30 2003 : Debug: modcall[preacct]: module "suffix"
returns noop
Sun Aug 3 07:12:30 2003 : Debug: modcall[preacct]: module "files"
returns noop
Sun Aug 3 07:12:30 2003 : Debug: modcall: group preacct returns noop
Sun Aug 3 07:12:30 2003 : Debug: modcall: entering group accounting Sun
Aug 3 07:12:30 2003 : Debug: radius_xlat:
'/app/experimental/free-0.9/local/var/log/radius/radacct/xxx.xxx.xxx.xxx
/detail-20030803'
Sun Aug 3 07:12:30 2003 : Debug: rlm_detail:
/app/experimental/free-0.9/local/var/log/radius/radacct/%{Client-IP-Addr
ess}/detail-%Y%m%d expands to
/app/experimental/free-0.9/local/var/log/radius/radacct/xxx.xxx.xxx.xxx/
detail-20030803
Sun Aug 3 07:12:30 2003 : Debug: modcall[accounting]: module "detail"
returns ok
Sun Aug 3 07:12:30 2003 : Debug: modcall: entering group redundant Sun
Aug 3 07:12:30 2003 : Debug: radius_xlat: 'test' Sun Aug 3 07:12:30
2003 : Debug: rlm_sql (sql2): sql_set_user escaped user --> 'test' Sun
Aug 3 07:12:30 2003 : Debug: radius_xlat: 'INSERT into RADACCT
(RadAcctId, AcctSessionId, AcctUniqueId, UserName, Realm, NASIPAddress,
NASPortId, NASPortType, AcctStartTime, AcctStopTime, AcctSessionTime,
AcctAuthentic, ConnectInfo_start, ConnectInfo_stop, AcctInputOctets,
AcctOutputOctets, CalledStationId, CallingStationId, AcctTerminateCause,
ServiceType, FramedProtocol, FramedIPAddress, AcctStartDelay,
AcctStopDelay) values('', '379094841', '', 'test', '',
'xxx.xxx.xxx.xxx', '0', 'Async', TO_DATE('2003-08-03
07:12:30','yyyy-mm-dd hh24:mi:ss'), '', '0', '', '', '', '0', '0', '',
'', '', 'Framed-User', 'PPP', '', '0', '0')' Sun Aug 3 07:12:30 2003 :
Debug: rlm_sql (sql2): Reserving sql socket id: 1 Sun Aug 3 07:12:30
2003 : Error: rlm_sql_oracle: execute query failed in sql_query:
ORA-03113: end-of-file on communication channel
Sun Aug 3 07:12:30 2003 : Debug: rlm_sql (sql2): Attempting to connect
rlm_sql_oracle #1 Sun Aug 3 07:12:30 2003 : Debug: rl_next: returning
NULL
Sun Aug 3 07:12:30 2003 : Debug: Waking up in 5 seconds...
Sun Aug 3 07:12:30 2003 : Error: rlm_sql_oracle: Oracle logon failed:
'ORA-01034: ORACLE not available ORA-27101: shared memory realm does not
exist SVR4 Error: 2: No such file or directory ' Sun Aug 3 07:12:30
2003 : Error: rlm_sql (sql2): Failed to connect DB handle #1
Sun Aug 3 07:12:30 2003 : Error: rlm_sql (sql2): reconnect failed,
database down?
Segmentation Fault
Regards
------------------------------------------------------------------------
-------------------
Yasser Ahmed Hosny
-
List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html