On 09/13/2009 01:11 PM, Stefan Fritsch wrote: > Hi, > > http://httpd.apache.org/docs/trunk/developer/output-filters.html > recommends to reuse bucket brigades and to not use apr_brigade_destroy. > However, both in 2.2 and in trunk, the core output filter sometimes > calls apr_brigade_destroy on brigades that it has received down the > chain from earlier output filters. Is this not bound to cause problems > since the brigade's pool cleanup is then removed but the brigade is > still reused later on?
It could be. But the questions is if it is really reused later on. > > Also, the core output filter often creates new brigades instead of > reusing an existing brigade. This should also be changed to reduce > memory usage, shouldn't it? Yes. That was the reason for adding apr_brigade_split_ex to apr-util 1.3. But so far nobody has found time to get through the current httpd code and improve the needed sections by using it. > > For trunk, the attached patch at least keeps the temporary brigade for > flush buckets around. Do the versioning rules allow to add elements to > core_output_filter_ctx for 2.2.x, too? It's defined in httpd.h. Yes, if you add it to the end of the struct. Then only a minor bump is required which is allowed. The other possibly more formal problem is that we currently do not require apr / apr-util 1.3 for httpd 2.2.x but only 1.2. But after shipping 2.2.x for more then one year with apr / apr-util 1.3 without problems I guess we can change this and require apr / apr-util 1.3 for the next 2.2.x release. But your patch is causing core dumps during the proxy tests when running the test suite :-(. I currently don't understand why. Regards RĂ¼diger