[Mimedefang] Tons o' problems with multiplexor

Roberto Machado racm at centroin.com.br
Tue Mar 19 23:02:58 EST 2002


On Mon, 18 Mar 2002, McCarthy, Doug FIREWALL wrote:

> I wish I could be more specific.  I really do.  But when you see the
> snippets from the log files below, you'll see what I mean.

 You're seeing more serious issues that I ever experienced. I'm
 running mimedefang 2.6 + sendmail 8.12.2 under BSD/OS 4.2. I never
 tried MD in 4.1, though.

 The only hack I'm doing with MD is to comment out closefiles()
 function, under mimedefang.c. I'm not sure what is the problem,
 but this caused the "select failed" message to disappear. Check the
 mail excerpts below.

Regards, Roberto


================================================================
>From racm at centroin.com.br Wed Mar 20 01:01:30 2002
Date: Mon, 24 Sep 2001 15:43:08 -0300 (EST)
From: Roberto Machado <racm at centroin.com.br>
To: defanglist at howlermonkey.net
Subject: Select() Failed?


People,

any idea where I could look to see what is wrong?

Sep 24 15:35:57 myhost mimedefang[12774]: MIMEDefang-1.4: select()
failed (Bad file descriptor), try again

The messages go through, but there's a warning header:

X-MIMEDefang-Warning: Perl process did not finish

Using "ls -lu" I see the /usr/local/bin/mimedefang.pl being accessed
for every message, but /etc/mail/mimedefang-filter is not.

System is BSD/OS 4.2 + sendmail 8.12.0. BTW, it worked once, when I
was testing on friday, when I got back today all I can see is this
error.

Best Regards,

Roberto

================================================================
>From racm at centroin.com.br Wed Mar 20 00:37:40 2002
Date: Fri, 28 Sep 2001 15:54:39 -0300 (EST)
From: Roberto Machado <racm at centroin.com.br>
To: defanglist at howlermonkey.net
Subject: closefiles() is the culprit


Hi!

David or whoever can help me! While playing around with mimedefang, I
noticed that commenting out closefiles() after the fork, where the
child runs the perl scanner, solves my problem. Snippet:

    } else if (n == 0) {
        /* In the child */
/*      closefiles(); */
        execl(PERL_PATH, "perl", MIMEDEFANG_PL, data->dir, NULL);
        _exit(EXIT_FAILURE);
    } else {

Could anyone tell me:

1 - what is the reason for this call? What is it trying to achieve? Is
    it to prevent file descriptor starvation or anything?

2 - what problems could I have, keeping it commented?

3 - does perl need any file descriptor open to run scripts (i.e,
    STDERR, STDOUT, STDIN)?


Regards, Roberto





More information about the MIMEDefang mailing list