Hi,
after upgrading form mod_perl-1.24 to 1.24_01 (it's the same for the current
CVS version) I get an endless loop inside my Perl sections.
A MOD_PERL_TRACE looks like:
"last line of my startup.pl" at /opt/symphony/etc/httpd/startup.pl line 68,
<DATA> chunk 1.
bootstrapping <Perl> sections: arg=/opt/symphony/etc/httpd/startup.pl,
keys=69
loading perl module 'Apache'...ok
loading perl module 'Tie::IxHash'...ok
perl_section: </Files>
perl_section: <Directory /CVS(/|$)>
Deny from all (OK) Limit=no
Order allow,deny (OK) Limit=no
perl_section: <Directory /_vti_(/|$)>
Deny from all (OK) Limit=no
Order allow,deny (OK) Limit=no
perl_section: </Directory>
.PerlSetEnv' directive is TAKE2, (0 elements)
SVt_PV: $SSLSessionCache = dbm:/opt/symphony/log/ssl_scache'
handle_command (SSLSessionCache dbm:/opt/symphony/log/ssl_scache): OK
SVt_PV: $PerlRequire = /opt/symphony/etc/httpd/startup.pl'
handle_command (PerlRequire /opt/symphony/etc/httpd/startup.pl):
PerlRequire: arg=/opt/symphony/etc/httpd/startup.pl'
attempting to require /opt/symphony/etc/httpd/startup.pl'
bootstrapping <Perl> sections: arg=/opt/symphony/etc/httpd/startup.pl,
keys=69
loading perl module 'Apache'...ok
loading perl module 'Tie::IxHash'...ok
perl_section: </Files>
perl_section: <Directory /CVS(/|$)>
....
The first line is a warn that my startup.pl outputs. As you see the
PerlRequire is done again (for the same file) which calls the bootstrapping
<Perl> sections. This continues until the server runs output of memory...
After looking a little bit around, I found that the reason for that
behaviour is the following change. If I revert this change (at least in the
PerlRequire part), everything works as before. Because I am not sure what
was the reason for this change, I cannot suggest a fix, other then reverting
it.
Gerald
----- Original Message -----
From: <dougm@locus.apache.org>
To: <modperl-cvs@apache.org>
Sent: Thursday, September 28, 2000 4:53 AM
Subject: cvs commit: modperl/src/modules/perl perl_config.c
> dougm 00/09/27 20:53:02
>
> Modified: src/modules/perl perl_config.c
> Log:
> fix %Apache::ReadConfig:: processing for PerlRequire'd files
>
> Revision Changes Path
> 1.107 +16 -18 modperl/src/modules/perl/perl_config.c
>
> Index: perl_config.c
> ===================================================================
> RCS file: /home/cvs/modperl/src/modules/perl/perl_config.c,v
> retrieving revision 1.106
> retrieving revision 1.107
> diff -u -r1.106 -r1.107
> --- perl_config.c 2000/09/27 23:51:34 1.106
> +++ perl_config.c 2000/09/28 03:53:01 1.107
> @@ -600,21 +600,20 @@
> dTHRCTX;
> return SvPV(ERRSV,n_a);
> }
> - }
> - else {
> - return NULL;
> +#ifdef PERL_SECTIONS
> + else {
> + if (CAN_SELF_BOOT_SECTIONS) {
> + perl_section_self_boot(parms, dummy, arg);
> + }
> + }
> +#endif
> }
> }
> -
> - if (cls->PerlModule) {
> + else {
> + /* Delay processing it until Perl starts */
> *(char **)push_array(cls->PerlModule) = pstrdup(parms->pool,
arg);
> }
>
> -#ifdef PERL_SECTIONS
> - if(CAN_SELF_BOOT_SECTIONS)
> - perl_section_self_boot(parms, dummy, arg);
> -#endif
> -
> return NULL;
> }
>
> @@ -633,20 +632,19 @@
> dTHRCTX;
> return SvPV(ERRSV,n_a);
> }
> +#ifdef PERL_SECTIONS
> else {
> - return NULL;
> + if (CAN_SELF_BOOT_SECTIONS) {
> + perl_section_self_boot(parms, dummy, arg);
> + }
> }
> +#endif
> }
> }
> -
> - if (cls->PerlRequire) {
> + else {
> + /* Delay processing it until Perl starts */
> *(char **)push_array(cls->PerlRequire) = pstrdup(parms->pool,
arg);
> }
> -
> -#ifdef PERL_SECTIONS
> - if(CAN_SELF_BOOT_SECTIONS)
> - perl_section_self_boot(parms, dummy, arg);
> -#endif
>
> return NULL;
> }
>
>
>
-------------------------------------------------------------
Gerald Richter ecos electronic communication services gmbh
Internetconnect * Webserver/-design/-datenbanken * Consulting
Post: Tulpenstrasse 5 D-55276 Dienheim b. Mainz
E-Mail: richter@ecos.de Voice: +49 6133 925151
WWW: http://www.ecos.de Fax: +49 6133 925152
-------------------------------------------------------------
after upgrading form mod_perl-1.24 to 1.24_01 (it's the same for the current
CVS version) I get an endless loop inside my Perl sections.
A MOD_PERL_TRACE looks like:
"last line of my startup.pl" at /opt/symphony/etc/httpd/startup.pl line 68,
<DATA> chunk 1.
bootstrapping <Perl> sections: arg=/opt/symphony/etc/httpd/startup.pl,
keys=69
loading perl module 'Apache'...ok
loading perl module 'Tie::IxHash'...ok
perl_section: </Files>
perl_section: <Directory /CVS(/|$)>
Deny from all (OK) Limit=no
Order allow,deny (OK) Limit=no
perl_section: <Directory /_vti_(/|$)>
Deny from all (OK) Limit=no
Order allow,deny (OK) Limit=no
perl_section: </Directory>
.PerlSetEnv' directive is TAKE2, (0 elements)
SVt_PV: $SSLSessionCache = dbm:/opt/symphony/log/ssl_scache'
handle_command (SSLSessionCache dbm:/opt/symphony/log/ssl_scache): OK
SVt_PV: $PerlRequire = /opt/symphony/etc/httpd/startup.pl'
handle_command (PerlRequire /opt/symphony/etc/httpd/startup.pl):
PerlRequire: arg=/opt/symphony/etc/httpd/startup.pl'
attempting to require /opt/symphony/etc/httpd/startup.pl'
bootstrapping <Perl> sections: arg=/opt/symphony/etc/httpd/startup.pl,
keys=69
loading perl module 'Apache'...ok
loading perl module 'Tie::IxHash'...ok
perl_section: </Files>
perl_section: <Directory /CVS(/|$)>
....
The first line is a warn that my startup.pl outputs. As you see the
PerlRequire is done again (for the same file) which calls the bootstrapping
<Perl> sections. This continues until the server runs output of memory...
After looking a little bit around, I found that the reason for that
behaviour is the following change. If I revert this change (at least in the
PerlRequire part), everything works as before. Because I am not sure what
was the reason for this change, I cannot suggest a fix, other then reverting
it.
Gerald
----- Original Message -----
From: <dougm@locus.apache.org>
To: <modperl-cvs@apache.org>
Sent: Thursday, September 28, 2000 4:53 AM
Subject: cvs commit: modperl/src/modules/perl perl_config.c
> dougm 00/09/27 20:53:02
>
> Modified: src/modules/perl perl_config.c
> Log:
> fix %Apache::ReadConfig:: processing for PerlRequire'd files
>
> Revision Changes Path
> 1.107 +16 -18 modperl/src/modules/perl/perl_config.c
>
> Index: perl_config.c
> ===================================================================
> RCS file: /home/cvs/modperl/src/modules/perl/perl_config.c,v
> retrieving revision 1.106
> retrieving revision 1.107
> diff -u -r1.106 -r1.107
> --- perl_config.c 2000/09/27 23:51:34 1.106
> +++ perl_config.c 2000/09/28 03:53:01 1.107
> @@ -600,21 +600,20 @@
> dTHRCTX;
> return SvPV(ERRSV,n_a);
> }
> - }
> - else {
> - return NULL;
> +#ifdef PERL_SECTIONS
> + else {
> + if (CAN_SELF_BOOT_SECTIONS) {
> + perl_section_self_boot(parms, dummy, arg);
> + }
> + }
> +#endif
> }
> }
> -
> - if (cls->PerlModule) {
> + else {
> + /* Delay processing it until Perl starts */
> *(char **)push_array(cls->PerlModule) = pstrdup(parms->pool,
arg);
> }
>
> -#ifdef PERL_SECTIONS
> - if(CAN_SELF_BOOT_SECTIONS)
> - perl_section_self_boot(parms, dummy, arg);
> -#endif
> -
> return NULL;
> }
>
> @@ -633,20 +632,19 @@
> dTHRCTX;
> return SvPV(ERRSV,n_a);
> }
> +#ifdef PERL_SECTIONS
> else {
> - return NULL;
> + if (CAN_SELF_BOOT_SECTIONS) {
> + perl_section_self_boot(parms, dummy, arg);
> + }
> }
> +#endif
> }
> }
> -
> - if (cls->PerlRequire) {
> + else {
> + /* Delay processing it until Perl starts */
> *(char **)push_array(cls->PerlRequire) = pstrdup(parms->pool,
arg);
> }
> -
> -#ifdef PERL_SECTIONS
> - if(CAN_SELF_BOOT_SECTIONS)
> - perl_section_self_boot(parms, dummy, arg);
> -#endif
>
> return NULL;
> }
>
>
>
-------------------------------------------------------------
Gerald Richter ecos electronic communication services gmbh
Internetconnect * Webserver/-design/-datenbanken * Consulting
Post: Tulpenstrasse 5 D-55276 Dienheim b. Mainz
E-Mail: richter@ecos.de Voice: +49 6133 925151
WWW: http://www.ecos.de Fax: +49 6133 925152
-------------------------------------------------------------