On 6 November 2013 00:48, Jeff Trawick <traw...@gmail.com> wrote: > Back to the httpd24threading branch: > > * modperl_interp_pool_select() has this notion of phase, which must either > be startup or request context. > * It thinks it is startup only if the pool passed in is s->process->pconf. > * Sometimes it is passed s->process->pool (parent of pconf), such as from > perl_parse_require_line(). > * perl_parse_require_line() can sometimes be called from request context. > * When perl_parse_require_line() calls modperl_interp_pool_select(), request > context can never be identified because perl_parse_require_line() never > passes in r->pool (which I guess would be cmd->pool). > * etc. > > This would seem to be the way to get the right pool to > modperl_interp_pool_select(). > > Index: src/modules/perl/modperl_util.c > =================================================================== > --- src/modules/perl/modperl_util.c (revision 1539040) > +++ src/modules/perl/modperl_util.c (working copy) > @@ -989,7 +989,7 @@ > int count; > void *key; > auth_callback *ab; > - MP_dINTERP_POOLa(cmd->server->process->pool, cmd->server); > + MP_dINTERP_POOLa(cmd->pool, cmd->server); > > if (global_authz_providers == NULL) { > MP_INTERP_PUTBACK(interp, aTHX); > > That still doesn't bring happiness (no interpreter returned, resulting in a > crash trying to dereference interp). >
I'm getting the same crash-on-startup behaviour now myself after a fresh rebuild of everything (now using httpd-2.4.6 and perl-5.19.5). I will look back over the changes made on the threading branch and/or my merges of them into the httpd24 branch. Hopefully the answer lies there somewhere. I'll be very grateful for any help I can get with this though -- I didn't do the original work on either of those branches... (Not sure how you break into things in your debugger, btw. I find the easiest way is to start up devenv.exe with "devenv /useenv httpd.exe" and then set the command-line arguments in the httpd project to those that "t\TEST -start-httpd" would use, namely something like "-d C:/Dev/Temp/modperl-httpd24threading/t -f C:/Dev/Temp/modperl-httpd24threading/t/conf/httpd.conf -D APACHE2 -D PERL_USEITHREADS -D ONE_PROCESS". Then you can just hit F5 etc to set it running.) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@perl.apache.org For additional commands, e-mail: dev-h...@perl.apache.org