httpd-modules-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Saju Pillai" <saju.pil...@gmail.com>
Subject Re: Child pool not usable for logging
Date Sun, 06 May 2007 08:55:12 GMT
err - asking obvious question but .. Your LogLevel is set to debug right ?

-srp

On 06/05/07, Joachim Zobel <jzobel@heute-morgen.de> wrote:
> Am Samstag, den 05.05.2007, 13:44 -0400 schrieb Tom Donovan:
> > > static apr_pool_t *p_cur = NULL;
> > >
> > > void xml2_set_current_pool(apr_pool_t * p)
> > > {
> > >     // Needed for free-logging
> > >     p_cur = p;
> > > }
> > >
> > > static void xml2_child_init(apr_pool_t * p, server_rec * s)
> > > {
> > >     xml2_set_current_pool(p);
> > > ....
> > >
> > > In a function called from an external library I do
> > >
> > > static void xml2_free(void *emem)
> > > {
> > >     ......
> > >
> > >         ap_log_perror(APLOG_MARK, APLOG_DEBUG, 0, p_cur,
> > >                 "xml2_free will free %x.", mem);
> > >         free(mem);
> > > }
> > >
> > Two things:
> >
> > 1.  You won't want to save the pool in a *static* p_cur if you have a
> > threaded Apache. All the threads will clobber each others' p_cur values.
> > You might get away with this using Apache 1.3 (or with the prefork mpm).
>
> This is just for debugging and will be removed, and I am on prefork.
>
> > 2. The argument to xml2_free is named 'emem', but you pass 'mem' to
> > ap_log_perror.  Just a typo?  Is 'mem' related to 'emem' somehow?
>
> Yes, but it is not of importance.
>
> static void xml2_free(void *emem)
> {
>     if (!emem) {
>         return;
>     }
>     void *mem = (char *) emem - sizeof(MARK);
>     const char **mark = mem;
>     if (*mark == MARK) {
>         ap_log_perror(APLOG_MARK, APLOG_DEBUG, 0, p_cur,
>                 "xml2_free will free %x.", mem);
>         free(mem);
>     }
> }
>
> Actually I should write a test module to isolate the problem. Either
> I'll find it doing that or I'll end up wih an apache bug.
>
> Sincerely,
> Joachim
>
>
>
>

Mime
View raw message