On Thu, Jun 02, 2005 at 02:05:05PM +0100, Joe Orton wrote:
> On Sun, May 29, 2005 at 09:39:40PM -0000, Paul Querna wrote:
> > Author: pquerna
> > Date: Sun May 29 14:39:39 2005
> > New Revision: 178990
> >
> > URL: http://svn.apache.org/viewcvs?rev=178990&view=rev
> > Log:
> > - Use a hash for the configuration command lookup implementation. Now
> > modules can properly directives without dependence on the LoadModule
> > order.
>
> It seems this has broken the test suite somehow, it's failing to start
> up with mod_ssl issuing the error:
>
> [Thu Jun 02 14:01:14 2005] [error] Init: Multiple RSA server certificates not
> allowed
>
> if I revert this revision it works again. Any ideas?
The problem is that the directive->module mapping is never getting
removed when the DSO is unloaded, so during normal startup each
directive will appear in the hash table twice for DSOs; then once more
for each restart. Hence mod_ssl is confused.
This is pretty dangerous since the module might *not* be reloaded again
during a restart but the reference remains. And since everything is
allocated out of the global pool it's leaking memory across restarts
too.
plus much style badness for a third criticism, while I'm here ;)
apr_pool_t* tpool;
ap_mod_list* mln;
joe