Hi Alan, (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 gdb radiusd set args -X run and then sent a HUP from another console. In gdb, continue Program received signal SIGHUP, Hangup. [Switching to Thread 16384 (LWP 29536)] 0xb7e0f5d2 in select () from /lib/libc.so.6 (gdb) cont Continuing. --- 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: (gdb) bt #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. Greetings, Stefan Winter -- Stefan WINTER RESTENA Foundation - Réseau Téléinformatique de l'Education Nationale et de la Recherche R&D Engineer 6, rue Richard Coudenhove-Kalergi L-1359 Luxembourg email: stefan.winter@restena.lu Tel.: +352 424409-1 http://www.restena.lu Fax: +352 422473
Hi again, this morning it also happened in 1.1.0. I have now reverted to 1.0.5 on our production servers. Also one interesting thing to note: I was using OpenSSL 0.9.8a - I have now also reverted to 0.9.7whatever - if I'm successful with that config, I'll try to move only one of (radiusd| openssl) upwards again. 1.0.5 with 0.9.7 is known working for me, and I'd rather not experiment more than necessary. I'll keep you posted on the progress. Oh, and for completeness, here's my answer to the questions from Michael:
What OS/Distro are you?
I'm Debian testing release SuSE 8.2
How did you Install? (Prebuilt binary / created local package and install / install from source) I created a local Debian package, and installed it. tarball
What modules did you enable? PEAP, TTLS, and TLS dito
What is your authentication source? Using ntlm_auth against Active Directory 2003 mySQL, mixed Crypt-Passwords and User-Passwords
What is your supplicant? 98% Windows XP built in supplicant. The rest are Linux / Mac clients. XP SP2 with WPA2 patch installed, but using Intel PRO/Wireless supplicant
Greetings, Stefan Winter -- Stefan WINTER Stiftung RESTENA - Réseau Téléinformatique de l'Education Nationale et de la Recherche Ingenieur Forschung & Entwicklung 6, rue Richard Coudenhove-Kalergi L-1359 Luxembourg E-Mail: stefan.winter@restena.lu Tel.: +352 424409-1 http://www.restena.lu Fax: +352 422473
Stefan Winter <stefan.winter@restena.lu> wrote:
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.
That should only happen if the server somehow decides there are no sockets to listen on. I'll take a look at the code to see if/when that's the case. Alan Dekok.
Hi!
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.
That should only happen if the server somehow decides there are no sockets to listen on.
I'll take a look at the code to see if/when that's the case.
Great! If you have some experimental patch or something, I can try it out easily: I _never_ got HUP to work. Not a single time. So I can reproduce the error quite easily. Greetings, Stefan -- Stefan WINTER Stiftung RESTENA - Réseau Téléinformatique de l'Education Nationale et de la Recherche Ingenieur Forschung & Entwicklung 6, rue Richard Coudenhove-Kalergi L-1359 Luxembourg E-Mail: stefan.winter@restena.lu Tel.: +352 424409-1 http://www.restena.lu Fax: +352 422473
participants (2)
-
Alan DeKok -
Stefan Winter