httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Greg Stein <>
Subject Re: [VOTE] ap_r* model.
Date Fri, 02 Mar 2001 21:21:24 GMT
On Fri, Mar 02, 2001 at 09:19:15AM -0600, William A. Rowe, Jr. wrote:
> From: <>
> Sent: Friday, March 02, 2001 9:04 AM
> > I think I remember gstein writing...
> >
> > > happen", but can only happen by a deliberate action of a module author. They
> > > have to take special measures to get themselves in front of OLD_WRITE. We
> > > don't have to take precautions against deliberate troublemakers; there are
> > > too many other ways that a module author can screw things up.
> > 
> > The problem isn't me as a module author, it is the other guy.  My module
> > may be fine, but what if there is another module that isn't.
> Here's the upshot.
> OLD_WRITE filter can be blown away not paying attention to filter ordering.

OLD_WRITE just stops optimizing. It doesn't break.

> r->bb can be blown away by anyone not paying attention to the request's own brigade.
> Which of these is harder to debug ?!?  Harder to document ?!?  That's the key!
> [We aren't talking about buckets here guys... the -brigade- is that stream that
> is sent down the filter stack.  I have yet to be convinced we need more than one 
> per request.  As FirstBill and rbb point out, you just keep adding to it.]
> I see ordering problems as the hardest headache to debug.  r->bb misordering is
> fairly straightforward - if you start misordering, the module _author_ messed up.
> If you have a filtering problem, the user will have some impact on filter ordering.
> That means they can create a problem.  If it's a choice between the module author
> and the end user creating bugs, I'll take the author's bugs any day.

The OLD_WRITE scheme *never* has ordering problems. Ever.

The only possible problem is that it won't be used. But that only happens if
the module author deliberately inserts their filter ahead of OLD_WRITE.
Explicit code to do it. The user can't make it happen.

Harder to debug? OLD_WRITE won't cause ordering problems. Document?
OLD_WRITE would be classified as AP_FTYPE_INTERNAL. The doc on the filter
types states that module authors should never use that, or insert in front
of it. When a module author goes to figure out which type they want, it is
immediately obvious to steer clear.

r->bb can cause ordering bugs. There is no point in the documentation to
describe the gotchas of synchronization and misordering.


Greg Stein,

View raw message