I'm running Apache 1.3.33 and mod_perl (with Apache::Registry), and I noticed a "quirk"
with the configure script... it appears to retain state between requests. What happens is this:
- I change a configuration variable (let's say Htpasswd-Encoding from crypt to sha1, for instance) and click "next".
- I see the save page that reports "changing 1 configuration item". I click "save changes".
- I see the confirmation page that reports "1 configuration item changed". I click "return to configuration".
- I change Htpasswd-Encoding back to crypt and click "next".
- I see the save page that reports "changing 1 configuration item". I click "save changes".
- I expect to see the confirmation page, but instead I see the save page again. It not says "changing 0 configuration items". WTF? I click on "return to configuration".
- Back on the main configuration page, I check Htpasswd-Encoding and it's still set to "sha1". If I try again to submit the form again, then sometime the save page says "changing 0 configuration items" and sometimes it says "changing 1 configuration items", but in no case can I get it to actually change the value again, even if I try to set it to a third value (e.g., "md5").
- If I restart apache then everything works okay again, but only long enough for me to make one change. Then it starts having problems again.
Argh, yes. You need to exclude
configure
from running with mod_perl. Can we do that programatically?
CC
I can't imagine how. I mean, Apache can be configured for that of course, but if there were (Perl) code to make that decision, then by the time it was run the web server would have already decided whether to run it in-process or in a forked process. The closest thing I know of is the mod_perl method
$r->child_terminate
(discussed
here, which claims to shut down the interpreter after the current request is done. But what we probably want here (I don't know, I haven't investigated exactly what the bug is) is to request that
all interpreters restart. And I don't know how to do that.
As an alternative work-around, can we force
configure
to reload the config files from disk every time it's invoked? Just a thought.
-g.
I don't think so. We specifically use the perl 'use' and 'require' mechanisms so that we know we are loading exactly what is loaded by TWiki. It would be a lot of work to change.
I think we need a documentation note. SVN 6153
CC