On Thu, May 23, 2002 at 05:21:25PM -0400, Cliff Woolley wrote: > On Thu, 23 May 2002, Cliff Woolley wrote: > > > At some point, apr_brigade_write() got broken. When the HEAP bucket at the > > > end of the brigade fills up, the flush function should be called. The > > > current code allocates *another* heap bucket. With this logic, it is > > > possible to grow a brigade without any periodic flushing. *very* bad. > > > > That could be my fault from when I got rid of the awful awful beast that > > was check_brigade_flush(). I *thought* I was very careful to keep the > > exact semantics, but I might have missed this case. I'll take another > > look at it. > > Hmmm... when SVN calls apr_brigade_write(), does it provide a flush > function or not?
Definitely. We're using the various ap_f* functions, plus a bit of the brigade functions directly. > Where in SVN is this, so I can take a closer look? You can see their usage in: http://svn.collab.net/repos/svn/trunk/subversion/mod_dav_svn/update.c - apr_brigade_vprintf() - ap_filter_flush http://svn.collab.net/repos/svn/trunk/subversion/mod_dav_svn/merge.c - ap_fputstrs() - ap_fputs() There may be other calls. The filter stack is called 'output' in both of those files, so you can see where they're generating the output. Cheers, -g (and yes, those URLs are directly into the SVN repository; they are displaying the HEAD revision) -- Greg Stein, http://www.lyra.org/