Re: Apache2/Modperl2 fails to preload Win32::OLE at server startup

[prev] [thread] [next] [Date index for 2004/11/25]

From: Stas Bekman
Subject: Re: Apache2/Modperl2 fails to preload Win32::OLE at server startup
Date: 16:42 on 25 Nov 2004
Markus Wichitill wrote:
> Stas Bekman wrote:
> 
>> Thierry Valentin wrote:
>>
>>> Sorry about the imprecision...
>>> The reason why I forgot to send the error log is that there's 
>>> absolutely nothing in the error log - not a single line even with a 
>>> LogLevel set to debug.
>>
>>
>> Understood. It's always a good idea to mention that, so we don't need 
>> to guess :)
>>
>> Unfortunately I don't use win32 and w/o the error message I can't 
>> really tell what's wrong. May be Randy has an idea.
>>
>> One though: you said you use:
>> - Perl 5.8.4.810 from Activestate
>> - Apache 2.0.52 installed from the MSI package
>> - mod_perl 1.99_17 installed with ppm from http://theoryx5.uwinnipeg.ca
> 
> 
> I see the same with Apache 2.0.52/Perl 5.8.5/mod_perl 1.99_18-SVN, all 
> built from vanilla sources.
> 
> VMem::Free(void * 0x00a13cc4) line 208 + 3 bytes
> CPerlHost::Free(void * 0x00a13cc4) line 59 + 34 bytes
> PerlMemFree(IPerlMem * 0x009f4024, void * 0x00a13cc4) line 302
> Perl_safesysfree(void * 0x00a13cc4) line 144 + 26 bytes
> AtExit(interpreter * 0x00a1501c, void * 0x00a13cc4) line 3167 + 9 bytes
> perl_destruct(interpreter * 0x00a1501c) line 567 + 48 bytes
> modperl_perl_destruct(interpreter * 0x00a1501c) line 157 + 9 bytes
> modperl_interp_destroy(modperl_interp_t * 0x00926490) line 145 + 12 bytes
> interp_pool_shrink(modperl_tipool_t * 0x00871ac8, void * 0x00871ab8, 
> void * 0x00926490) line 217 + 9 bytes
> modperl_tipool_destroy(modperl_tipool_t * 0x00871ac8) line 204 + 30 bytes
> modperl_interp_pool_destroy(void * 0x00871ab8) line 190 + 12 bytes
> run_cleanups(cleanup_t * * 0x008a6af8) line 1951 + 13 bytes
> apr_pool_destroy(apr_pool_t * 0x008a6ae8) line 730 + 12 bytes
> apr_pool_clear(apr_pool_t * 0x0028a5b0) line 690 + 12 bytes
> main(int 2, const char * const * 0x002825a8) line 576
> mainCRTStartup() line 338 + 17 bytes
> KERNEL32! 7c816d4f()
> 
> Access violation happens in the "*nowhere = 0;" line of 
> perl-5.8.5\win32\vmem.h, with nowhere being 0.

Is it again a problem of wrong context? Even though there is no usual 
"wrong pool to free" error here.

It looks like the problem happens in Apache's internal restart.
Any difference if that module is loaded in ChildInit handler? Should it 
still segfault on the normal server shutdown.

PerlChildInitHandler  'sub { require Win32::OLE}'

        -- 
        __________________________________________________________________
Stas Bekman            JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/     mod_perl Guide ---> http://perl.apache.org
mailto:stas@xxxxxx.xxx http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org   http://ticketmaster.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

(message missing)

Re: Apache2/Modperl2 fails to preload Win32::OLE at server startup
Stas Bekman 16:42 on 25 Nov 2004

Generated at 11:26 on 21 Dec 2004 by mariachi v0.52