Zombie accounting processes
George-Cristian Bîrzan
gcbirzan at constanta.rdsnet.ro
Mon Feb 13 13:14:15 CET 2006
On Mon, 2006-02-13 at 13:57 +0200, George-Cristian Bîrzan wrote:
> Hello!
>
> I've been having a rather annoying problem with FreeRADIUS, including
> version 1.1.0.
>
> I've set up authentication and accounting via a Perl script.
Er. Ewps. Let's try again. :-)
In users:
DEFAULT Auth-Type = Accept
Exec-Program-Wait = "/usr/local/etc/raddb/auth-ng.pl %u %{request:User-Password} %n %i",
Fall-Through = 0
In acct_users:
DEFAULT Acct-Status-Type = Stop
Exec-Program = "/usr/local/etc/raddb/acct-ng.pl STOP %u %{Acct-Input-Octets} %{Acct-Output-Octets} %{Acct-Input-Packets} %{Acct-Output-Packets}"
DEFAULT Acct-Status-Type = Start
Exec-Program = "/usr/local/etc/raddb/acct-ng.pl START %u %i %{Framed-IP-Address} %n"
If I don't compile FreeRADIUS with --with-threads, it all works fine,
but it only will authenticate one user at a time.
If I use threads, accounting stop processes remain as zombie processes.
After a day or so, the server would die, not being able to create more
processes. So, I've started restarting the RADIUS server hourly, but
that's quite an ugly hack.
>From a strace of a process that remains hung:
[pid 22052] exit_group(0) = ?
Process 22052 detached
--- SIGCHLD (Child exited) @ 0 (0) ---
--- SIGRTMIN (Unknown signal 32) @ 0 (0) ---
<... rt_sigsuspend resumed> ) = -1 EINTR (Interrupted system call)
sigreturn() = ? (mask now [HUP INT QUIT TERM RTMIN])
waitpid(22058, NULL, WNOHANG) = -1 ECHILD (No child processes)
22058 exists, and is another process that hung.
$ ps u 22058 22052
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 22052 0.0 0.0 0 0 ? Z 14:08 0:00 [acct-ng.pl] <defunct>
root 22058 0.0 0.0 0 0 ? Z 14:08 0:00 [acct-ng.pl] <defunct>
I'm trying to look at the source for hints, but I figured I should try
asking... if anyone has any ideas, I'd greatly appreciate it.
--
George-Cristian Bîrzan
Network Engineer
_______________________________________
RCS & RDS Constanta
Tel.: +40341.400.401 / +40341.400.402
Fax: +40341.400.450
http://www.rcs-rds.ro
_______________________________________
Privileged/Confidential Information may be contained in this message. If
you are not the addressee indicated in this message (or responsible for
delivery of the message to such person), you may not copy or deliver
this message to anyone. In such a case, you should destroy this message
and kindly notify the sender by reply e-mail.
More information about the Freeradius-Users
mailing list