Skip Menu |

This queue is for tickets about the Net-Server CPAN distribution.

Report information
The Basics
Id: 18402
Status: resolved
Priority: 0/
Queue: Net-Server

People
Owner: Nobody in particular
Requestors: cpjc [...] free.fr
Cc:
AdminCc:

Bug Information
Severity: Normal
Broken in:
  • 0.91
  • 0.93
Fixed in: (no value)



Subject: Touble between Net-Server and amavisd
Hi, under Mandriva Cooker, releases 0.91-1mdk and 0.93-1mdk of perl-Net-Server are causing trouble to amavisd (amavisd-new-2.3.3-1mdk) making messages to be not delivered (can't say for 0.92 but probably the same). Messages from amavis in /var/log/mail/errors are : ---- amavis[23703]: (23124-01) run_command: child process [23703]: Error closing main::stdin: Bad file descriptor at /usr/sbin/amavisd line 1872.\n amavis[23124]: (23124-01) TROUBLE in check_mail: parts_decode_ext FAILED: parsing file(1) results - missing last 1 results at (eval 43) line 154. ------ The content of line 1872 in /usr/sbin/amavisd is : close(main::stdin) or die "Error closing main::stdin: $!"; Reverting to perl-Net-Server-0.90-1mdk made amavis to be happy again. (perl, v5.8.8 built for i386-linux, kernel 2.6.14-2mdk-i686-up-4GB) Thanks Cheers Berthy
RT-Send-CC: Mark.Martinec [...] ijs.si
The status of "rejected" may sound harsh, but please read on. The changes in 0.92 and 0.93 were to allow a fix on Amavisd specifically. The fixes in .92 and .93 were designed to allow for software like Amavisd that are doing more extreme things with the STDIN and STDOUT. There is a new configuration option that the maintainer of Amavisd will need to use. It is the "no_close_stdout" option. It needs to be set to 1. The maintainer of Amavisd on debian made the suggestion and has mad the debian Amavisd work with any of the releases of Net::Server. Versions of Net::Server 0.90 and earlier are BROKEN. Their implementation of aliasing STDOUT and STDIN to the client file handle are wrong and break other software that tries to use STDOUT and STDIN (anything that uses IO::Pipe). Amavisd in ealier versions worked around this broken item in Net::Server. Now that Net::Server is fixed (in 0.93) older versions of Amavisd will be broken. Amavisd needs to be sure that it is sending the "no_close_stdout" flag to Net::Server to tell it not to do anything with STDOUT (or STDIN). Net::Server will not be changed to revert to the old BROKEN behavior. Please work with the maintainers of Amavisd to see that they are updated (the change is very small). For more information you may want to talk to the debian maintainer Mark Martinec <Mark.Martinec@ijs.si>. Paul Seamons Show quoted text
> under Mandriva Cooker, releases 0.91-1mdk and 0.93-1mdk of > perl-Net-Server are causing trouble to amavisd > (amavisd-new-2.3.3-1mdk) making messages to be not delivered (can't > say for 0.92 but probably the same). > > Messages from amavis in /var/log/mail/errors are : > ---- > amavis[23703]: (23124-01) run_command: child process [23703]: Error > closing > main::stdin: Bad file descriptor at /usr/sbin/amavisd line 1872.\n > amavis[23124]: (23124-01) TROUBLE in check_mail: parts_decode_ext > FAILED: > parsing file(1) results - missing last 1 results at (eval 43) line > 154. > ------ > The content of line 1872 in /usr/sbin/amavisd is : > close(main::stdin) or die "Error closing main::stdin: $!"; > > Reverting to perl-Net-Server-0.90-1mdk made amavis to be happy
again. Show quoted text
> > (perl, v5.8.8 built for i386-linux, kernel 2.6.14-2mdk-i686-up-4GB) > > Thanks > Cheers > Berthy
From: Mark.Martinec [...] ijs.si
The fix for pre-2.4.0 versions of amavisd-new was posted on the amavis-user mailing list on 2006-03-28, it applies to 2.3.3, but probably with some fudge to earlier versions as well. It is also attached to this ticket. Alternatively, switch to 2.4.0 (currently in final release-candidate stages). Mark Martinec
--- amavisd~ Tue Mar 28 00:21:57 2006 +++ amavisd Tue Mar 28 01:03:16 2006 @@ -1871,3 +1871,3 @@ close(STDIN) or die "Error closing STDIN: $!"; - close(main::stdin) or die "Error closing main::stdin: $!"; + close(main::stdin); open(STDIN, "<$stdin_from") @@ -1930,3 +1930,3 @@ close(main::stdout) or die "Error closing main::stdout: $!"; - close(main::STDOUT) or die "Error closing main::STDOUT: $!"; + close(main::STDOUT); open(STDOUT, ">$stdout_to") @@ -9072,2 +9072,3 @@ no_close_by_child => 1, + no_client_stdout => 1,
It looks like the amivisd packages were updated back in March. Thanks to Marc.