Hello,

Here is the startup script modified as you recommended:
(I replaced the call to warn by Apache->server->log->debug because warn does not log anything - at least under win32)


=================================
# mod_perl startup script
use Apache2 ();
use ModPerl::Util ();
use Apache::RequestRec ();
use Apache::RequestIO ();
use Apache::RequestUtil ();
use Apache::ServerRec ();
use Apache::ServerUtil ();
use Apache::Connection ();
use Apache::Log ();
use Apache::Const -compile => ':common';
use APR::Const -compile => ':common';
use APR::Table ();
use Apache::compat ();
use ModPerl::Registry ();

# Special function called when a new interpreter is started
sub Startup::CLONE {
    Apache->server->log->debug("CLONE is running");
    require Win32::OLE;
}

1;
=================================

This still fails to startup with the same MS Apache failure dialog
The only line I get in the error log is the following:

[Mon Nov 29 11:11:44 2004] [debug] mod_perl_startup.pl(22): CLONE is running


If I comment the "require Win32::OLE" server starts up correctly and error log contains the following lines:


...
[Mon Nov 29 11:11:44 2004] [debug] mod_perl_startup.pl(22): CLONE is running
[Mon Nov 29 11:28:38 2004] [debug] mod_perl_startup.pl(22): CLONE is running
[Mon Nov 29 11:30:33 2004] [debug] mod_perl_startup.pl(19): CLONE is running
[Mon Nov 29 11:30:33 2004] [debug] mod_perl_startup.pl(19): CLONE is running
[Mon Nov 29 11:30:33 2004] [debug] mod_perl_startup.pl(19): CLONE is running
[Mon Nov 29 11:30:34 2004] [debug] mod_perl_startup.pl(19): CLONE is running
[Mon Nov 29 11:30:34 2004] [debug] mod_perl_startup.pl(19): CLONE is running
[Mon Nov 29 11:30:35 2004] [debug] mod_perl_startup.pl(19): CLONE is running
[Mon Nov 29 11:30:35 2004] [notice] Parent: Created child process 3492
[Mon Nov 29 11:30:35 2004] [debug] mpm_winnt.c(479): Parent: Sent the scoreboard to the child
[Mon Nov 29 11:30:35 2004] [debug] mod_perl_startup.pl(19): CLONE is running
[Mon Nov 29 11:30:35 2004] [debug] mod_perl_startup.pl(19): CLONE is running
[Mon Nov 29 11:30:35 2004] [debug] mod_perl_startup.pl(19): CLONE is running
[Mon Nov 29 11:30:36 2004] [debug] mod_perl_startup.pl(19): CLONE is running
[Mon Nov 29 11:30:36 2004] [debug] mod_perl_startup.pl(19): CLONE is running
[Mon Nov 29 11:30:37 2004] [debug] mod_perl_startup.pl(19): CLONE is running
[Mon Nov 29 11:30:37 2004] [notice] Child 3492: Child process is running
[Mon Nov 29 11:30:37 2004] [info] Parent: Duplicating socket 188 and sending it to child process 3492
...




Stas Bekman wrote:
Thierry Valentin wrote:

Hello,
I've tried the My::HappyWorkaround::CLONE trick...
But sorry, same punishment as before:
=> Apache refuses to start + MS Failure Dialog.


Does this function get to run at all? Add:

  warn "CLONE is running";

inside this function and check the logs/console while starting the server.

I'd expect that it should work, since CLONE is run inside the cloned interprters.

Of course you need to remove any other instances of:

  use Win32::OLE

and inside CLONE it must be require().
[...]

There is one possible solution that will work for you though. Try to add to startup.pl the following code:

sub My::HappyWorkaround::CLONE {
   require Win32::OLE;
}

CLONE is a special function which is called when a new interpreter is started. Think of it as ChildInit but for the interpreter.






--


Thierry Valentin earth decision sciences SA /(formerly known as T-Surf)/ 22, allée de la Foret de la Reine 54500 Vandoeuvre-lès-Nancy, France Email: [EMAIL PROTECTED] Phone: +33 (0)3-83-67-66-29 Fax: +33 (0)3-83-67-66-34 Please visit our website at: www.earthdecision.com <http://www.earthdecision.com/>


-- Report problems: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html List etiquette: http://perl.apache.org/maillist/email-etiquette.html



Reply via email to