Philippe M. Chiasson wrote:
Index: src/modules/perl/modperl_cmd.c =================================================================== --- src/modules/perl/modperl_cmd.c (revision 123883) +++ src/modules/perl/modperl_cmd.c (working copy) @@ -243,7 +243,7 @@
MP_CMD_SRV_DECLARE(post_config_requires) { - apr_pool_t *p = parms->pool; + apr_pool_t *p = parms->temp_pool; apr_finfo_t finfo; MP_dSCFG(parms->server);
@@ -420,7 +420,7 @@
MP_CMD_SRV_DECLARE(perl) { - apr_pool_t *p = parms->pool; + apr_pool_t *p = parms->temp_pool; const char *endp = ap_strrchr_c(arg, '>'); const char *errmsg; char *code = ""; @@ -473,7 +473,7 @@
MP_CMD_SRV_DECLARE(perldo) { - apr_pool_t *p = parms->pool; + apr_pool_t *p = parms->temp_pool; server_rec *s = parms->server; apr_table_t *options; modperl_handler_t *handler = NULL;
And that's just for <Perl> sections, and a cursory glance suggests that there
could be a bunch of other configuration directives that mistakenly use parms->pool.
I'll have a look and report later.
I've looked carefully over modperl_cmd.c and I think the 3 places highlighted
in my patch (strangely, it's all my code) seem to be the only places where
using parms->temp_pool instead of parms->pool improves memory usages.
and you are sure that this temp pool is not used for things that might be needed at run time? e.g. things like saved apache::perlsections dump? ( I didn't look, so this is just a suggestion)
As suspected it didn't fly, smoky did a good job and with an extra manual minimization we now get:
/TEST -maxclients 1 t/apr/table.t t/apache/conftree.t
#0 0x403709f3 in strlen () from /lib/tls/libc.so.6 (gdb) bt #0 0x403709f3 in strlen () from /lib/tls/libc.so.6 #1 0x407204b4 in mpxs_Apache__Directive_as_hash (my_perl=0x8338dd0, tree=0x80cb578) at Apache__Directive.h:87 #2 0x40720c84 in XS_Apache__Directive_as_hash (my_perl=0x8338dd0, cv=0x94f9cc0) at Directive.xs:36 #3 0x4050a5a5 in Perl_pp_entersub (my_perl=0x8338dd0) at pp_hot.c:2890 #4 0x404e69a9 in Perl_runops_debug (my_perl=0x8338dd0) at dump.c:1449 #5 0x4048be26 in S_call_body (my_perl=0x8338dd0, myop=0xbfffec70, is_eval=0) at perl.c:2298 #6 0x4048b952 in Perl_call_sv (my_perl=0x8338dd0, sv=0x9914a2c, flags=4) at perl.c:2216 #7 0x4043e4ff in modperl_callback (my_perl=0x8338dd0, handler=0x82103a8, p=0x971dc90, r=0x971dcc8, s=0x8101be8, args=0x9b729e0) at modperl_callback.c:100 #8 0x4043edff in modperl_callback_run_handlers (idx=6, type=4, r=0x971dcc8, c=0x0, s=0x8101be8, pconf=0x0, plog=0x0, ptemp=0x0, run_mode=MP_HOOK_RUN_FIRST) at modperl_callback.c:261 #9 0x4043f257 in modperl_callback_per_dir (idx=6, r=0x971dcc8, run_mode=MP_HOOK_RUN_FIRST) at modperl_callback.c:368 #10 0x404375cf in modperl_response_handler_run (r=0x971dcc8, finish=1) at mod_perl.c:971 ---Type <return> to continue, or q <return> to quit--- #11 0x404376ea in modperl_response_handler (r=0x971dcc8) at mod_perl.c:1011 #12 0x0808771d in ap_run_handler (r=0x971dcc8) at config.c:151 #13 0x08087b3a in ap_invoke_handler (r=0x971dcc8) at config.c:358 #14 0x0807dca1 in ap_process_request (r=0x971dcc8) at http_request.c:246 #15 0x08079619 in ap_process_http_connection (c=0x9671d00) at http_core.c:250 #16 0x0809147d in ap_run_process_connection (c=0x9671d00) at connection.c:42 #17 0x08085e0f in child_main (child_num_arg=1684955496) at prefork.c:609 #18 0x08086041 in make_child (s=0x8085a20, slot=2) at prefork.c:703 #19 0x080869e5 in ap_mpm_run (_pconf=0x0, plog=0x80fd180, s=0x1) at prefork.c:838 #20 0x0808bddd in main (argc=9, argv=0xbffff1f4) at main.c:619
-- __________________________________________________________________ Stas Bekman JAm_pH ------> Just Another mod_perl Hacker http://stason.org/ mod_perl Guide ---> http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]