Return-Path: Delivered-To: apmail-new-httpd-archive@apache.org Received: (qmail 85235 invoked by uid 500); 2 Mar 2001 21:20:57 -0000 Mailing-List: contact new-httpd-help@apache.org; run by ezmlm Precedence: bulk Reply-To: new-httpd@apache.org list-help: list-unsubscribe: list-post: Delivered-To: mailing list new-httpd@apache.org Received: (qmail 85163 invoked from network); 2 Mar 2001 21:20:47 -0000 X-Authentication-Warning: kurgan.lyra.org: gstein set sender to gstein@lyra.org using -f Date: Fri, 2 Mar 2001 13:21:24 -0800 From: Greg Stein To: new-httpd@apache.org Subject: Re: [VOTE] ap_r* model. Message-ID: <20010302132124.F2297@lyra.org> Mail-Followup-To: new-httpd@apache.org References: <01b301c0a32c$25136350$96c0b0d0@roweclan.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2i In-Reply-To: <01b301c0a32c$25136350$96c0b0d0@roweclan.net>; from wrowe@rowe-clan.net on Fri, Mar 02, 2001 at 09:19:15AM -0600 X-URL: http://www.lyra.org/greg/ X-Spam-Rating: h31.sny.collab.net 1.6.2 0/1000/N 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. Cheers, -g -- Greg Stein, http://www.lyra.org/