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
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

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