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