Version 1.1.1 stops responding
stefan.winter at restena.lu
Tue Mar 28 08:16:36 CEST 2006
(moved to -devel)
thanks for the gdb refresher - I keep forgetting those args :-)
I'm not sure I'm overly helpful here, but I think I _might_ have something. I
set up an instance of 1.1.1 on my workstation, ran
set args -X
and then sent a HUP from another console. In gdb,
Program received signal SIGHUP, Hangup.
[Switching to Thread 16384 (LWP 29536)]
0xb7e0f5d2 in select () from /lib/libc.so.6
--- 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: /etc/raddb/proxy.conf
Config: including file: /etc/raddb/clients.conf
Config: including file: /etc/raddb/snmp.conf
Config: including file: /etc/raddb/eap.conf
Config: including file: /etc/raddb/sql.conf
main: prefix = "/usr"
main: localstatedir = "/var"
main: logdir = "/var/log/radius"
main: libdir = "/usr/lib"
main: radacctdir = "/var/log/radius/radacct"
main: hostname_lookups = no
main: max_request_time = 30
main: cleanup_delay = 5
main: max_requests = 1024
main: delete_blocked_requests = 0
main: port = 0
main: allow_core_dumps = no
main: log_stripped_names = no
main: log_file = "/var/log/radius/radius.log"
main: log_auth = no
main: log_auth_badpass = no
main: log_auth_goodpass = no
main: pidfile = "/var/run/radiusd/radiusd.pid"
main: user = "radiusd"
main: group = "radiusd"
main: usercollide = no
main: lower_user = "no"
main: lower_pass = "no"
main: nospace_user = "no"
main: nospace_pass = "no"
main: checkrad = "/usr/sbin/checkrad"
main: proxy_requests = yes
proxy: retry_delay = 5
proxy: retry_count = 3
proxy: synchronous = no
proxy: default_fallback = yes
proxy: dead_time = 120
proxy: post_proxy_authorize = yes
proxy: wake_all_if_all_dead = no
security: max_attributes = 200
security: reject_delay = 1
security: status_server = no
main: debug_level = 0
read_config_files: reading dictionary
read_config_files: reading naslist
Using deprecated naslist file. Support for this will go away soon.
read_config_files: reading clients
read_config_files: reading realms
Program received signal SIGINT, Interrupt.
and then I experienced that during the re-reading of config files, the process
just froze, but no segfault (sending garbage with nc, which should make
radiusd complain, but doesn't... no trace of anything being processed). After
Ctrl-C and bt, I got:
#0 0xb7e0f5d2 in select () from /lib/libc.so.6
#1 0xbff68d50 in ?? ()
#2 0x0806d310 in ?? ()
#3 0x0806d068 in ?? ()
#4 0x0805743e in main (argc=2, argv=0xbff69e34) at radiusd.c:1276
(gdb) info threads
* 1 Thread 16384 (LWP 29536) 0xb7e0f5d2 in select () from /lib/libc.so.6
So for some reason it got stuck during select() - I watched this being stuck
for several seconds before I killed the process. So there appears to be a
deadlock in there.
Not sure if it has anything to do with the TLS hang; it's just that the
symptoms seem similar. The select() waiting forever would explain that the
process is still there, bound to its ports, but does nothing.
RESTENA Foundation - Réseau Téléinformatique de l'Education Nationale et de
6, rue Richard Coudenhove-Kalergi
email: stefan.winter at restena.lu Tel.: +352 424409-1
http://www.restena.lu Fax: +352 422473
More information about the Freeradius-Devel