controlchan bug

Marco d'Itri md at Linux.IT
Sun Dec 29 02:57:40 UTC 2002


The docheckgroups temp file is not closed and stays around forever after
being deleted:

/proc/23500/fd/:
totale 0
lrwx------    1 news     news           64 Dec 29 03:40 0 -> socket:[204953341]
l-wx------    1 news     news           64 Dec 29 03:40 1 -> /var/spool/news/incoming/tmp/checkgroups.23500 (deleted)
lrwx------    1 news     news           64 Dec 29 03:40 13 -> socket:[163831987]l-wx------    1 news     news           64 Dec 29 03:40 2 -> /var/log/news/OLD/errlog (deleted)
lrwx------    1 news     news           64 Dec 29 03:40 3 -> socket:[204953508]
lrwx------    1 news     news           64 Dec 29 03:40 4 -> socket:[204953341]
lr-x------    1 news     news           64 Dec 29 03:40 5 -> /dev/null


This is the relevant code from control/checkgroups.pl:

    open(OLDIN, '<&STDIN') or die $!;
    open(OLDOUT, '>&STDOUT') or die $!;
    open(STDIN, "$tempfile.art") or die $!;
    open(STDOUT, ">$tempfile") or die $!;
    my $st = system("$inn::controlprogs/docheckgroups", $newsgrouppats);
    logdie('Cannot run docheckgroups: ' . $!) if $st == -1;
    logdie('docheckgroups returned status ' . ($st & 255)) if $st > 0;
+   close STDOUT;
    open(STDIN, '<&OLDIN') or die $!;
    open(STDOUT, '>&OLDOUT') or die $!;


I really need to finish my perl docheckgroups implementation. :-/


(The open but deleted errlog file is common to all INN childs, but I do
not have a solution for this.)

-- 
ciao,
Marco


More information about the inn-workers mailing list