httpd-modules-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Nick Kew <>
Subject Fw: flush or pass filter brigade to avoid memory exhaustion
Date Tue, 15 Nov 2011 21:34:06 GMT
Ray, looks like this got lost in the ether.  I only 
realised it when I got your contact from my online Form!
I presume you're reading where you posted!

Begin forwarded message:

On Mon, 14 Nov 2011 13:00:07 -0600
Ray Morris <> wrote:

> I would appreciate some help with splitting and passing a brigade in 
> an output filter, to avoid using memory proportional to the size of 
> the response and allow data to begin to be output prior to the 
> completion of the filter.  Studying the docs, the book, 
> and other modules, I haven't been able to get this working. Trying 
> to merge the code from the docs with a sample module, the connection 
> is closed after 751,143 bytes.

Not quite sure what your question is.  You seem to have
figured out what you're doing!

>         APR_BUCKET_REMOVE(b);                        // <-- new code
>         APR_BRIGADE_INSERT_HEAD(ctxt->tmpbb, b);     // <-- new code

If you add a flush bucket HERE it becomes less likely the
next filter in the chain will buffer it.

>         rv = ap_pass_brigade(f->next, ctxt->tmpbb);  // <-- new code
>         apr_brigade_cleanup(ctxt->tmpbb);            // <-- new code
>         apr_sleep(10000);                            // <-- new code

Could that be triggering a timeout?

Nick Kew

View raw message