On 4/11/2011 2:14 PM, Stefan Fritsch wrote: > On Monday 11 April 2011, Torsten Förtsch wrote: >> I am working on porting modperl to the upcoming httpd 2.4. One >> problem is the line >> >> conf_vector_length = total_modules; >> >> in ap_read_config (config.c:2300). >> >> Modperl provides a way to write modules in Perl. These modules are >> loaded by the directive PerlLoadModule which is executed later >> than line 2300. Such modules are then appended to the module list, >> get a module structure, can create config directives etc. They >> also have a module index and allocate their place in config >> vectors. >> >> Now, the line above limits the config vector length to the number >> of modules known before any one perl module could be loaded. >> >> How can this situation be solved? > > When exactly is PerlLoadModule executed? The above code assumes that > modules are loaded with EXEC_ON_READ during reading of the config. > > I guess the optimization could be done later, after the config has > been parsed completely. That would waste some memory in pconf but > still preserve the optimization during request processing, which is > more important.
Suggestion - an EXEC_ON_READ 'DynamicModulesMax' directive, which would let us conf_vector_length = total_modules + dyn_modules_max; after the read_config, and finally lock down conf_vector_length = total_modules; at the end of post_config. WDYT?
