Author: gozer Date: Sun Jan 16 21:53:18 2005 New Revision: 125400 URL: http://svn.apache.org/viewcvs?view=rev&rev=125400 Log: PerlPostConfigRequire was trying to detect missing files early on, but without searching thru @INC, causing false negatives. Better off skipping that check and leave it to modperl_require_file() to report problems with finding the file.
Reported-By: Patrick LeBoutillier <[EMAIL PROTECTED]> Modified: perl/modperl/trunk/Changes perl/modperl/trunk/src/modules/perl/modperl_cmd.c Modified: perl/modperl/trunk/Changes Url: http://svn.apache.org/viewcvs/perl/modperl/trunk/Changes?view=diff&rev=125400&p1=perl/modperl/trunk/Changes&r1=125399&p2=perl/modperl/trunk/Changes&r2=125400 ============================================================================== --- perl/modperl/trunk/Changes (original) +++ perl/modperl/trunk/Changes Sun Jan 16 21:53:18 2005 @@ -12,6 +12,12 @@ =item 1.999_21-dev +PerlPostConfigRequire was trying to detect missing files early on, +but without searching thru @INC, causing false negatives. Better off +skipping that check and leave it to modperl_require_file() to report +problems with finding the file. [Patrick LeBoutillier +<[EMAIL PROTECTED]>, Gozer] + add a perl bug workaround: with USE_ITHREADS perl leaks pthread_key_t on every reload of libperl.{a,so} (it's allocated on the very first perl_alloc() and never freed). This becomes a problem on apache Modified: perl/modperl/trunk/src/modules/perl/modperl_cmd.c Url: http://svn.apache.org/viewcvs/perl/modperl/trunk/src/modules/perl/modperl_cmd.c?view=diff&rev=125400&p1=perl/modperl/trunk/src/modules/perl/modperl_cmd.c&r1=125399&p2=perl/modperl/trunk/src/modules/perl/modperl_cmd.c&r2=125400 ============================================================================== --- perl/modperl/trunk/src/modules/perl/modperl_cmd.c (original) +++ perl/modperl/trunk/src/modules/perl/modperl_cmd.c Sun Jan 16 21:53:18 2005 @@ -251,23 +251,15 @@ { apr_pool_t *p = parms->temp_pool; modperl_config_dir_t *dcfg = (modperl_config_dir_t *)mconfig; - apr_finfo_t finfo; MP_dSCFG(parms->server); - if (APR_SUCCESS == apr_stat(&finfo, arg, APR_FINFO_TYPE, p)) { - if (finfo.filetype != APR_NOFILE) { - modperl_require_file_t *require = apr_pcalloc(p, sizeof(*require)); - MP_TRACE_d(MP_FUNC, "push PerlPostConfigRequire for %s\n", arg); - require->file = arg; - require->dcfg = dcfg; - - *(modperl_require_file_t **) - apr_array_push(scfg->PerlPostConfigRequire) = require; - } - } - else { - return apr_pstrcat(p, "No such file : ", arg, NULL); - } + modperl_require_file_t *require = apr_pcalloc(p, sizeof(*require)); + MP_TRACE_d(MP_FUNC, "push PerlPostConfigRequire for %s\n", arg); + require->file = arg; + require->dcfg = dcfg; + + *(modperl_require_file_t **) + apr_array_push(scfg->PerlPostConfigRequire) = require; return NULL; }