El 17 Apr 2001, a las 19:45, Mariano Absatz escribió:
> Hi all,
>
> I had this problem a couple of times but not sistematically... I'm
> starting a new installation and trying startup scripts (in fact before
> preparing the config files) and now it is sistematic.
>
> Every time I kill -1 Radiator, to re-read the configuration file, it
> fails...
>
> What I remember from my other installation was that if I made a minor
> change to the config file (e.g. the trace level), it worked OK, but if I
> edited something bigger, sometimes, it didn't liked it and it died... I
> thought it had to do with the way Radiator generates perl code on the fly
> while reading the config files.
>
> Now I made a couple of almost empty config files and every time I kill -1
> radiator it yields the following error:
>
> > Can't locate object method "new" via package "Radius::SNMPAgent"
> > (perhaps you forgot to load "Radius::SNMPAgent"?) at
> > /usr/local/lib/perl5/site_perl/5.6.1/Radius/ServerConfig.pm line 133,
> > <FILE> line 17.
Alright, alright... so I SHOULD have RTFM... I had not installed the
SNMP_Session package and that generated this particular error... anyway,
read below...
>
> As I keep cheking it... it's not generating the correct filenames for the
> logfiles.
>
> There is only one logfile generated in /logs/radius and its name is
> "logfile"... that is, it kinda processed the LogDir statement, but it
> didn't process the LogFile nor the <Log File>...
It seems that sometimes, somehow, it starts generating messages before
processing LogFile and <Log FILE>, but AFTER processing LogDir... it's
alright, I prefer to have the logs someplace else rather than not having
them at all...
>
> I'm including the contens of the /app/Radiator/etc/radius-acct.cfg (which
> is invoked from the command line) and the contents of
> /app/Radiator/etc/radius-common.cfg (which is included from the former).
I'll change them now... keep reading :-)
>
> For completeness... I also include the startup/shutdown/reload script
> (/etc/init.d/radius-acct). It's running on a Netra T1 AC200, 1CPU 360MHz,
> 512Mb RAM, 2x18Gb HD, Solaris 8, Perl v5.6.1, Radiator 2.18 with all the
> patches up to 10-Apr-2001.
>
So, I installed SNMP_Session, cleaned up things a bit, but still, when I
kill -1, I get strange results...
I started one instance of Radiator (accounting only) and I can stop it
and start it again with no problem, however, if I kill -1 it I get the
following message on screen (and on the logfile too)... anyway, now it
keeps running...
> # /etc/init.d/radius-acct reload
> Reloading Radiator (acct) configuration:
> DBD::Oracle::db prepare failed: ORA-03113: end-of-file on communication
> channel (DBD ERROR: OCIStmtExecute/Describe) {SELECT
> NAS_IDENTIFIER, NAS_SECRET, NAS_IGNOREACCTSIGNATURE, NAS_DUPINTERVAL,
> NAS_DEFAULTREALM, NAS_TYPE, NAS_SNMPCOMMUNITY, NAS_LIVINGSTONOFFS,
> NAS_LIVINGSTONHOLE, NAS_FRAMEDGROUPBASEADDRESS,
> NAS_FRAMEDGROUPMAXPORTSPERCLAS, NAS_REWRITEUSERNAME,
> NAS_NOIGNOREDUPLICATES, NAS_PREHANDLERHOOK FROM NAS_SERVICIO_CALIDAD}
> at /usr/local/lib/perl5/site_perl/5.6.1/Radius/SqlDb.pm line 201,
> <FILE> line 22.
> -done
Stranger, still, is that the message appears on the <Log FILE> and on the
%L/logfile (default name), but NOT in the LogFile...
I use <Log FILE> for standard logging (trace level 2 or 3) and have a
commented global LogFile with Trace 4 for debugging, however, this file
only gets the "Radiator starting / Radiator stopping" (I'm not receiving
packets, just testing start/stop/reload).
Anyway, I put the trace level 4 in the <Log FILE> clause and got this
result: (keep reading after the trace 4)
==========================================================================
Wed Apr 18 17:47:09 2001: NOTICE: SIGTERM received: stopping
Wed Apr 18 17:47:15 2001: DEBUG: Adding Clients from SQL database
Wed Apr 18 17:47:15 2001: DEBUG: Query is: SELECT NAS_IDENTIFIER,
NAS_SECRET, NAS_IGNOREACCTSIGNATURE, NAS_DUPINTERVAL, NAS_DEFAULTREALM,
NAS_TYPE, NAS_SNMPCOMMUNITY, NAS_LIVINGSTONOFFS, NAS_LIVINGSTONHOLE,
NAS_FRAMEDGROUPBASEADDRESS, NAS_FRAMEDGROUPMAXPORTSPERCLAS,
NAS_REWRITEUSERNAME, NAS_NOIGNOREDUPLICATES, NAS_PREHANDLERHOOK FROM
NAS_SERVICIO_CALIDAD
Wed Apr 18 17:47:16 2001: INFO: Server started: Radiator 2.18 on mr-radius
Wed Apr 18 17:47:23 2001: NOTICE: SIGHUP received: restarting
Wed Apr 18 17:47:23 2001: DEBUG: Adding Clients from SQL database
Wed Apr 18 17:47:23 2001: DEBUG: Query is: SELECT NAS_IDENTIFIER,
NAS_SECRET, NAS_IGNOREACCTSIGNATURE, NAS_DUPINTERVAL, NAS_DEFAULTREALM,
NAS_TYPE, NAS_SNMPCOMMUNITY, NAS_LIVINGSTONOFFS, NAS_LIVINGSTONHOLE,
NAS_FRAMEDGROUPBASEADDRESS, NAS_FRAMEDGROUPMAXPORTSPERCLAS,
NAS_REWRITEUSERNAME, NAS_NOIGNOREDUPLICATES, NAS_PREHANDLERHOOK FROM
NAS_SERVICIO_CALIDAD
Wed Apr 18 17:47:23 2001: ERR: Execute failed for 'SELECT
NAS_IDENTIFIER, NAS_SECRET, NAS_IGNOREACCTSIGNATURE, NAS_DUPINTERVAL,
NAS_DEFAULTREALM, NAS_TYPE, NAS_SNMPCOMMUNITY, NAS_LIVINGSTONOFFS,
NAS_LIVINGSTONHOLE, NAS_FRAMEDGROUPBASEADDRESS,
NAS_FRAMEDGROUPMAXPORTSPERCLAS, NAS_REWRITEUSERNAME,
NAS_NOIGNOREDUPLICATES, NAS_PREHANDLERHOOK FROM NAS_SERVICIO_CALIDAD':
ORA-03113: end-of-file on communication channel (DBD ERROR:
OCIStmtExecute/Describe)
Wed Apr 18 17:47:23 2001: INFO: Server started: Radiator 2.18 on mr-radius
==========================================================================
The question is why these kind of things happen when I reload the config
file (kill -1)?... in fact, I didn't even edit the config files...
I usually reload the config file after changing the trace level... but it
seems I'll have to stop and restart the server every time I do so...
I attach the following files which have changed since my message of
yesterday:
/etc/init.d/radius-acct (the start/stop/reload script)
/app/Radiator/etc/radius-acct.cfg (the configuration file)
/app/Radiator/etc/radius-common.cfg (which is included from
radius-acct.cfg)
/app/Radiator/etc/clients.cfg (which is included from radius-common.cfg)
==================== /etc/init.d/radius-acct =======================
==================== /etc/init.d/radius-acct =======================
==================== /etc/init.d/radius-acct =======================
#!/bin/sh
#
# Radiator This shell script takes care of starting and stopping
# Radiator (Radius server).
#
ARGV0LEN=`/usr/ucb/expr length $0`
POS=`/usr/ucb/expr $ARGV0LEN - 3`
RADTYPE=`/usr/ucb/expr substr $0 $POS 4`
# RADTYPE= "auth" o "acct" o "test" tomado de los ultimos 4 caracteres del
# comando invocado
RADVAR="rad_instance=$RADTYPE"
RADIATOR=/app/Radiator/bin/radiusd
RADCONFIG=/app/Radiator/etc/radius-$RADTYPE.cfg
MATCHSTRING=".*$RADIATOR.*$RADVAR.*"
# RADPID=/app/Radiator/tmp/rad-$RADTYPE.pid
ORACLE_SID=radius; export ORACLE_SID
ORACLE_BASE=/app/oracle; export ORACLE_BASE
ORACLE_SID=radius; export ORACLE_SID
ORACLE_HOME=/app/oracle/product/8.1.6; export ORACLE_HOME
ORACLE_PATH=/app/oracle/product/8.1.6/bin; export ORACLE_PATH
PATH=$PATH:$ORACLE_HOME/bin; export PATH
RADCMDLINE="$RADIATOR $RADVAR -config_file $RADCONFIG"
[ -f $RADIATOR ] || exit 0
[ -f $RADCONFIG ] || exit 0
# See how we were called.
case "$1" in
start)
# Start daemons.
echo "Starting Radiator ($RADTYPE): "
$RADCMDLINE
echo " -done"
;;
stop)
# Stop daemons.
echo "Shutting down Radiator ($RADTYPE): "
# kill `cat $RADPID`
/usr/bin/pkill -u0 -x -f $MATCHSTRING
echo " -done"
;;
restart)
# Stop daemons.
echo "Shutting down Radiator ($RADTYPE): "
# kill `cat $RADPID`
/usr/bin/pkill -u0 -x -f $MATCHSTRING
echo " -done"
# Give time for the port to be actually released
echo "Waiting... :-/"
sleep 1
# Start daemons.
echo "Starting Radiator ($RADTYPE): "
$RADCMDLINE
echo " -done"
;;
reload)
# reloading configuration
echo "Reloading Radiator ($RADTYPE) configuration: "
# kill -1 `cat $RADPID`
/usr/bin/pkill -1 -u0 -x -f $MATCHSTRING
echo " -done"
;;
status)
# checking status
if /usr/bin/pgrep -u0 -x -f $MATCHSTRING ;
then
echo "Radiator ($RADTYPE) running" ;
else
echo "Radiator ($RADTYPE) NOT running" ;
fi
;;
*)
echo "Usage: $0 {start|stop|status|restart|reload}"
exit 1
esac
exit 0
=========================================================================
=========================================================================
=========================================================================
================= /app/Radiator/etc/radius-acct.cfg =====================
================= /app/Radiator/etc/radius-acct.cfg =====================
================= /app/Radiator/etc/radius-acct.cfg =====================
##################################################################
# ACCOUNTING CONFIGURATION #
##################################################################
# For debugging, uncomment the 2 following lines
#Trace 4
#LogFile %L/%Y-%m/%{GlobalVar:rad_instance}/debugLog_%d-%q
#Trace:
#0 ERR. Error conditions. Serious and unexpected failures
#1 WARNING. Warning conditions. Unexpected failures
#2 NOTICE. Normal but significant conditions.
#3 INFO. Informational messages.
#4 DEBUG. Debugging messages.
#5 Incoming raw packet dumps in hexadecimal.
# include common configuration and global definitions
include /app/Radiator/etc/radius-common.cfg
##################################################################
# PROTOCOL SECTION #
##################################################################
#
# We only do accounting in this instance of Radiator
#
AuthPort
AcctPort 1813
<SNMPAgent>
Port 16113
Community CONFIGURAR-COMUNIDAD
</SNMPAgent>
=========================================================================
=========================================================================
=========================================================================
================= /app/Radiator/etc/radius-common.cfg ====================
================= /app/Radiator/etc/radius-common.cfg ====================
================= /app/Radiator/etc/radius-common.cfg ====================
##################################################################
# COMMON CONFIGURATION #
##################################################################
##################################################################
# FILES AND DIRECTORIES SECTION #
##################################################################
LogDir /logs/radius
DbDir /app/Radiator/db
DefineGlobalVar ScriptDir /app/Radiator/scripts
DefineGlobalVar ConfigDir /app/Radiator/etc
DefineGlobalVar TempDir /app/Radiator/tmp
DictionaryFile %{GlobalVar:ConfigDir}/dictionary
PidFile %{GlobalVar:TempDir}/rad-%{GlobalVar:rad_instance}.pid
##################################################################
# DATABASE DEFINITIONS SECTION #
##################################################################
DefineGlobalVar OracleHost localhost
DefineGlobalVar OracleSID radius
DefineGlobalVar MR_DBSource
dbi:Oracle:host=localhost;sid=radius
DefineGlobalVar MR_DBUsername radmin
DefineGlobalVar MR_DBAuth radius
##################################################################
# LOGGING SECTION #
##################################################################
<Log FILE>
Identifier fileLoggerMetroAuth
Filename %L/%Y-%m/%{GlobalVar:rad_instance}/stdLog_%d-%q
Trace 4
</Log>
##################################################################
# REWRITE SECTION #
##################################################################
# REWRITE USER NAME BEFORE ANYTHING ELSE
# Rewrite any Name without realm to our realm
# because defaultrealm does not match on HANDLER
RewriteUsername s/^([^@]+)$/$1\@metrored/
# change everything in the username to lowercase
RewriteUsername tr/[A-Z]/[a-z]/
##################################################################
# INCLUDES SECTION #
##################################################################
# include clients section
include %{GlobalVar:ConfigDir}/clients.cfg
=========================================================================
=========================================================================
=========================================================================
==================== /app/Radiator/etc/clients.cfg =======================
==================== /app/Radiator/etc/clients.cfg =======================
==================== /app/Radiator/etc/clients.cfg =======================
##################################################################
# CLIENTS SECTION #
##################################################################
<ClientListSQL>
# Client (NAS) info is in the database
DBSource %{GlobalVar:MR_DBSource}
DBUsername %{GlobalVar:MR_DBUsername}
DBAuth %{GlobalVar:MR_DBAuth}
GetClientQuery SELECT \
NAS_IDENTIFIER, NAS_SECRET, \
NAS_IGNOREACCTSIGNATURE, NAS_DUPINTERVAL, \
NAS_DEFAULTREALM, NAS_TYPE, NAS_SNMPCOMMUNITY, \
NAS_LIVINGSTONOFFS, NAS_LIVINGSTONHOLE, \
NAS_FRAMEDGROUPBASEADDRESS, NAS_FRAMEDGROUPMAXPORTSPERCLAS, \
NAS_REWRITEUSERNAME, NAS_NOIGNOREDUPLICATES, \
NAS_PREHANDLERHOOK \
FROM NAS_SERVICIO_CALIDAD
</ClientListSQL>
=========================================================================
=========================================================================
=========================================================================
===
Archive at http://www.starport.net/~radiator/
Announcements on [EMAIL PROTECTED]
To unsubscribe, email '[EMAIL PROTECTED]' with
'unsubscribe radiator' in the body of the message.