You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@spamassassin.apache.org by bu...@bugzilla.spamassassin.org on 2010/02/11 15:18:55 UTC

[Bug 6333] New: Win32: Bad file descriptor in SubProcBackChannel

https://issues.apache.org/SpamAssassin/show_bug.cgi?id=6333

           Summary: Win32: Bad file descriptor in SubProcBackChannel
           Product: Spamassassin
           Version: 3.3.0
          Platform: Other
        OS/Version: Windows XP
            Status: NEW
          Severity: critical
          Priority: P5
         Component: spamc/spamd
        AssignedTo: dev@spamassassin.apache.org
        ReportedBy: lemke@jam-software.com


Another error during execution of spamd in Win32:


backchannel: set non-blocking failed: Bad file descriptor at
C:/Perl/site/lib/Mail/SpamAssassin/SubProcBackChannel.pm line 81.


Line 81: $self->{parent}->blocking(0)

-- 
Configure bugmail: https://issues.apache.org/SpamAssassin/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

[Bug 6333] Win32: Bad file descriptor in SubProcBackChannel

Posted by bu...@issues.apache.org.
https://issues.apache.org/SpamAssassin/show_bug.cgi?id=6333

Kevin A. McGrail <km...@pccc.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |REOPENED
                 CC|                            |kmcgrail@pccc.com
         Resolution|INVALID                     |

--- Comment #5 from Kevin A. McGrail <km...@pccc.com> 2010-06-01 08:15:44 EDT ---
(In reply to comment #4)
> After some research it appears to be a windows specific problem with the
> IO::Socket module so there is no need to patch it into SA source.
> 
> A bugfix is mentioned here:
> http://rt.perl.org/rt3/Public/Bug/Display.html?id=27044
> 
> Commenting out both "$self->{parent}->blocking(0)" - lines works pretty stable
> for me but the bugfix mentioned above should be much more solid. If I'm able to
> make it work with it, I'll mention here.

I see this as a bug in perl than a bug in SA. 

However, is there a dependency for IO::Socket that could be enforced or at
least warned for Windows users during configure?

-- 
Configure bugmail: https://issues.apache.org/SpamAssassin/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

[Bug 6333] Win32: Bad file descriptor in SubProcBackChannel

Posted by bu...@bugzilla.spamassassin.org.
https://issues.apache.org/SpamAssassin/show_bug.cgi?id=6333

Mark Martinec <Ma...@ijs.si> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|Undefined                   |3.3.1

-- 
Configure bugmail: https://issues.apache.org/SpamAssassin/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

[Bug 6333] Win32: Bad file descriptor in SubProcBackChannel

Posted by bu...@issues.apache.org.
https://issues.apache.org/SpamAssassin/show_bug.cgi?id=6333

Kevin A. McGrail <km...@pccc.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|3.3.1                       |3.3.2
           Severity|critical                    |minor

--- Comment #6 from Kevin A. McGrail <km...@pccc.com> 2010-06-01 08:26:54 EDT ---
Changing target to 3.3.2 but that could easily be bumped.  I see this as a
small is_windows and IO::Socket version check to warn the user or enforce
during the initial configuration of the Makefile.PL

Similar to the existing:
 'Net::DNS'      => (RUNNING_ON_WINDOWS ? 0.46 : 0.34), # bugs in older revs

Do we know what version of IO::Socket resolved the issue?

-- 
Configure bugmail: https://issues.apache.org/SpamAssassin/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

[Bug 6333] Win32: Bad file descriptor in SubProcBackChannel

Posted by bu...@bugzilla.spamassassin.org.
https://issues.apache.org/SpamAssassin/show_bug.cgi?id=6333

--- Comment #3 from Daniel <le...@jam-software.com> 2010-02-12 11:57:17 UTC ---
That may be but for now it's working fine and the spamd is running pretty
stable (next step is to replace the old 323 spamd and testing it in production
environment).

Most of these fixes were already documented in SAWin32 and ran very stable. If
there don't appear any bigger issues, I'd suggest to add the fixes to the sa
source (since it's irrelevant to the stability of the unix version anyway).

-- 
Configure bugmail: https://issues.apache.org/SpamAssassin/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

[Bug 6333] Win32: Bad file descriptor in SubProcBackChannel

Posted by bu...@issues.apache.org.
https://issues.apache.org/SpamAssassin/show_bug.cgi?id=6333

--- Comment #7 from Daniel Lemke <le...@jam-software.com> 2010-06-02 03:39:33 EDT ---
Hmmm, made a build of latest trunk with Net-DNS 0.66 and ActivePerl 5.8.9 on a
win7 and winXP machine, none of them having that error occuring.

This may be due using another repository version of Net-DNS (if available I use
precompiled modules via ActiveState repository) so this issue could appear
again for other perl and / or repository distributions.

Daniel

-- 
Configure bugmail: https://issues.apache.org/SpamAssassin/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

[Bug 6333] Win32: Bad file descriptor in SubProcBackChannel

Posted by bu...@bugzilla.spamassassin.org.
https://issues.apache.org/SpamAssassin/show_bug.cgi?id=6333

Daniel <le...@jam-software.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |lemke@jam-software.com

--- Comment #1 from Daniel <le...@jam-software.com> 2010-02-11 14:19:13 UTC ---
Can be "solved" like this:

@@ -74,12 +74,14 @@
   ($self->{latest_kid_fh}, $self->{parent}) =
             $io->socketpair(AF_UNIX,SOCK_STREAM,PF_UNSPEC)
             or die "backchannel: socketpair failed: $!";
-
-  # set those to use non-blocking I/O
-  $self->{parent}->blocking(0)
-            or die "backchannel: set non-blocking failed: $!";
-  $self->{latest_kid_fh}->blocking(0)
-            or die "backchannel: set non-blocking failed: $!";
+        
+    # set those to use non-blocking I/O
+    if (!Mail::SpamAssassin::Util::am_running_on_windows()) {  
+          $self->{parent}->blocking(0)
+                    or die "backchannel: set non-blocking failed: $!";
+          $self->{latest_kid_fh}->blocking(0)
+                    or die "backchannel: set non-blocking failed: $!";
+    }
 }

 sub setup_backchannel_parent_post_fork {

-- 
Configure bugmail: https://issues.apache.org/SpamAssassin/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

[Bug 6333] Win32: Bad file descriptor in SubProcBackChannel

Posted by bu...@bugzilla.spamassassin.org.
https://issues.apache.org/SpamAssassin/show_bug.cgi?id=6333

Justin Mason <jm...@jmason.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jm@jmason.org

--- Comment #2 from Justin Mason <jm...@jmason.org> 2010-02-11 15:37:16 UTC ---
um, I would assume that would have pretty serious consequences.  Can you use
round robin instead?

-- 
Configure bugmail: https://issues.apache.org/SpamAssassin/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

[Bug 6333] Win32: Bad file descriptor in SubProcBackChannel

Posted by bu...@bugzilla.spamassassin.org.
https://issues.apache.org/SpamAssassin/show_bug.cgi?id=6333

Daniel <le...@jam-software.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |INVALID

--- Comment #4 from Daniel <le...@jam-software.com> 2010-03-01 15:50:22 UTC ---
After some research it appears to be a windows specific problem with the
IO::Socket module so there is no need to patch it into SA source.

A bugfix is mentioned here:
http://rt.perl.org/rt3/Public/Bug/Display.html?id=27044

Commenting out both "$self->{parent}->blocking(0)" - lines works pretty stable
for me but the bugfix mentioned above should be much more solid. If I'm able to
make it work with it, I'll mention here.

-- 
Configure bugmail: https://issues.apache.org/SpamAssassin/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

[Bug 6333] Win32: Bad file descriptor in SubProcBackChannel

Posted by bu...@issues.apache.org.
https://issues.apache.org/SpamAssassin/show_bug.cgi?id=6333

Kevin A. McGrail <km...@pccc.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|REOPENED                    |RESOLVED
         Resolution|                            |INVALID

--- Comment #8 from Kevin A. McGrail <km...@pccc.com> 2010-06-03 17:17:04 EDT ---
(In reply to comment #7)
> Hmmm, made a build of latest trunk with Net-DNS 0.66 and ActivePerl 5.8.9 on a
> win7 and winXP machine, none of them having that error occuring.
> 
> This may be due using another repository version of Net-DNS (if available I use
> precompiled modules via ActiveState repository) so this issue could appear
> again for other perl and / or repository distributions.
> 
> Daniel

OK, closing again as resolved, invalid.

-- 
Configure bugmail: https://issues.apache.org/SpamAssassin/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.