I'm trying to use newsyslog on FreeBSD 6.2/freeradius-1.1.6 to rotate my log
files an ensure I will never exceed a certain logfile size. My
newsyslog.conf file says

/var/log/radius/radius.log              barry:admin     640  10    10000
*    J    /var/run/radiusd/radiusd.pid
/var/log/radius/*tmp                    barry:admin     600  10    10000
*    JBG
/var/log/radius/sqltrace.sql            barry:admin     640  10    10000
*    J
/var/log/radius/radacct/*/*             barry:admin     640  10    10000
*    JG

Now in my particular case when newsyslog runs from cron it finds that
radius.log, sqltrace.sql and one of the radacct/*/* files have exceeded
their filesize, so it renames them (*.log.n), touches a new file, in the
case of radius.log sends a SIGHUP to radiusd and then proceeds to bzip the
renamed logfiles. As you would expect.

The problem is that when radiusd is running normally it starts to chew up
98% CPU from this point onwards and completely stops responding to
accounting packets. I have to killall -9 radiusd, it won't even respond to
my SIGTERM. Running in debug mode unfortunately just causes radiusd to
segfault a few seconds after the log rotation (see output below).

What could be the problem? Does freeradius actually close and reopen its log
files when receiving SIGHUP? I can't find any documentation on other
signals... :-(

radiusd: FreeRADIUS Version 1.1.6, for host i386-portbld-freebsd6.2, built
on May 13 2007 at 22:44:09

radiusd -X output

(...)
Sending Accounting-Response of id 223 to 165.145.226.12 port 3799
Finished request 4
Going to the next request
--- Walking the entire request list ---
Cleaning up request 4 ID 223 with timestamp 464cddb9
Nothing to do.  Sleeping until we see a request.
--- Walking the entire request list ---
Nothing to do.  Sleeping until we see a request.
Reloading configuration files.
reread_config:  reading radiusd.conf
Config:   including file: /usr/local/etc/raddb/clients.conf
Config:   including file: /usr/local/etc/raddb/postgresql.conf
main: prefix = "/usr/local"
main: localstatedir = "/var"
main: logdir = "/var/log/radius"
main: libdir = "/usr/local/lib"
main: radacctdir = "/var/log/radius/radacct"
main: hostname_lookups = no
main: snmp = no
main: max_request_time = 30
main: cleanup_delay = 5
main: max_requests = 1024
main: delete_blocked_requests = 0
main: port = 62515
main: allow_core_dumps = no
main: log_stripped_names = no
main: log_file = "/var/log/radius/radius.log"
main: log_auth = yes
main: log_auth_badpass = yes
main: log_auth_goodpass = no
main: pidfile = "/var/run/radiusd/radiusd.pid"
main: user = "barry"
main: group = "barry"
main: usercollide = no
main: lower_user = "no"
main: lower_pass = "no"
main: nospace_user = "no"
main: nospace_pass = "no"
main: checkrad = "/usr/local/sbin/checkrad"
main: proxy_requests = no
security: max_attributes = 20
security: reject_delay = 2
security: status_server = no
main: debug_level = 0
read_config_files:  reading dictionary
read_config_files:  reading naslist
read_config_files:  reading clients
read_config_files:  reading realms
Fri May 18 00:57:01 2007 : Info: rlm_exec: Wait=yes but no output defined.
Did you mean output=none?
Fri May 18 00:57:01 2007 : Error: radiusd.conf[262] Auth-Type PAP already
configured - skipping
Fri May 18 00:57:01 2007 : Info: rlm_sql (auth): Driver rlm_sql_postgresql
(module rlm_sql_postgresql) loaded and linked
Fri May 18 00:57:01 2007 : Info: rlm_sql (auth): Attempting to connect to
[EMAIL PROTECTED]:/mydb
Fri May 18 00:57:01 2007 : Info: rlm_sql (acct): Driver rlm_sql_postgresql
(module rlm_sql_postgresql) loaded and linked
Fri May 18 00:57:01 2007 : Info: rlm_sql (acct): Attempting to connect to
[EMAIL PROTECTED]:/mydb
Fri May 18 00:57:01 2007 : Info: Ready to process requests.
Segmentation fault: 11
- 
List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html

Reply via email to