Hi Markus,

First, thanks a lot for providing such a detailed description of the
problem. I've just noticed something I had missed before. Let's see if
we can finally get this fixed

On Fri, 2010-07-16 at 14:37 +0200, [email protected] wrote:
> [after - with require Bugzilla]:
> 2010/07/16 13:47:09 Scmbug WARN>
> Daemon.pm:81:Scmbug::Daemon::Daemon::read_configuration - Read
> configuration file 'C:/Program Files/Scmbug/etc/scmbug/daemon.conf'
> 2010/07/16 13:47:10 Scmbug ERROR>
> Common.pm:334:Scmbug::Common::package_exists - Can't locate object method
> "FILENO" via package "Scmbug::Daemon::Trapper" at C:/Perl/lib/CGI.pm line
> 822.

object method "FILENO". I missed this before. I wonder if the Trapper object 
supplied to log4perl also requires a definition of FILENO. I'm attaching a 
patch for supplying such a method, although it practically does nothing.

If this patch does not work, perhaps you could also try to not tie STDERR to 
log4perl, using another patch attached.

> Seems like Bugzilla.pm tries to use Bugzilla::CGI that in turn tries to use
> Perl's CGI.pm that in turn dies in this method:
> 
> 820># put a filehandle into binary mode (DOS)
> 821>sub binmode {
> 822>    return unless defined($_[1]) && defined fileno($_[1]);
> 823>    CORE::binmode($_[1]);
> 824>}

This is a very good observation. I had never dug into the CGI source
before. The call to fileno() is probably what requires a FILENO method
from the trapper to be available.

Please try the patches and report if it works.
? trapper_FILENO.patch
Index: Daemon/Trapper.pm.in
===================================================================
RCS file: /projects/scmbug/cvsroot/system/src/lib/product/Daemon/Trapper.pm.in,v
retrieving revision 1.2
diff -u -r1.2 Trapper.pm.in
--- Daemon/Trapper.pm.in	3 Jun 2008 19:44:11 -0000	1.2
+++ Daemon/Trapper.pm.in	16 Jul 2010 16:33:56 -0000
@@ -37,4 +37,10 @@
 
 
 
+sub FILENO {
+    return undef;
+}
+
+
+
 1;
Index: Daemon.pm.in
===================================================================
RCS file: /projects/scmbug/cvsroot/system/src/lib/product/Daemon/Daemon.pm.in,v
retrieving revision 1.99
diff -u -r1.99 Daemon.pm.in
--- Daemon.pm.in	7 Mar 2010 23:45:59 -0000	1.99
+++ Daemon.pm.in	16 Jul 2010 16:38:38 -0000
@@ -340,7 +340,7 @@
     @DEVEL_PRODUCT_NAME@::Common::set_logger( $logger );
 
     # Trap all messages sent to STDERR and log them.
-    tie *STDERR, "@DEVEL_PRODUCT_NAME@::Daemon::Trapper";
+    #tie *STDERR, "@DEVEL_PRODUCT_NAME@::Daemon::Trapper";
 }
 
 

Attachment: signature.asc
Description: This is a digitally signed message part

_______________________________________________
scmbug-users mailing list
[email protected]
http://lists.mkgnu.net/cgi-bin/mailman/listinfo/scmbug-users

Reply via email to