Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 48F28200CB3 for ; Mon, 26 Jun 2017 23:06:15 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 47AC5160BDE; Mon, 26 Jun 2017 21:06:15 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 66D93160BDA for ; Mon, 26 Jun 2017 23:06:14 +0200 (CEST) Received: (qmail 283 invoked by uid 500); 26 Jun 2017 21:06:13 -0000 Mailing-List: contact dev-help@httpd.apache.org; run by ezmlm Precedence: bulk Reply-To: dev@httpd.apache.org list-help: list-unsubscribe: List-Post: List-Id: Delivered-To: mailing list dev@httpd.apache.org Received: (qmail 273 invoked by uid 99); 26 Jun 2017 21:06:13 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd4-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 26 Jun 2017 21:06:13 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd4-us-west.apache.org (ASF Mail Server at spamd4-us-west.apache.org) with ESMTP id 1487BC061B for ; Mon, 26 Jun 2017 21:06:13 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd4-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 0.479 X-Spam-Level: X-Spam-Status: No, score=0.479 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_SORBS_SPAM=0.5, SPF_PASS=-0.001] autolearn=disabled Authentication-Results: spamd4-us-west.apache.org (amavisd-new); dkim=pass (2048-bit key) header.d=rowe-clan-net.20150623.gappssmtp.com Received: from mx1-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd4-us-west.apache.org [10.40.0.11]) (amavisd-new, port 10024) with ESMTP id s89csy1aTb53 for ; Mon, 26 Jun 2017 21:06:10 +0000 (UTC) Received: from mail-ot0-f179.google.com (mail-ot0-f179.google.com [74.125.82.179]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTPS id 259445F6C3 for ; Mon, 26 Jun 2017 21:06:10 +0000 (UTC) Received: by mail-ot0-f179.google.com with SMTP id r67so9717425ota.1 for ; Mon, 26 Jun 2017 14:06:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rowe-clan-net.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=wknyPB/yxJ3UTQ4PT2uHmFua62nnCPu9bVGL5fRTOfA=; b=A01OW0eRQ7AzHBFNLt+kiyOyk+UWchYxOdgl8XU2mr6TMeWu7p9Po66+3d644wrFxF 1hHG1NYt2tkRKf0k4qGSlW2ubOsxiG3BecFE+l/9mtc8st2VSgKWif+hCrgclxFV80Ju jlSDUT+qCh022+WOjeMJgk0HH/J0obelqy0AElokUcyLXGgUk1k4lQLxQ8PRxzHA0Oiu hfUtD7EJKttBnltCd3xp2uJcoHsfO8yKH+7XZk48g9ca3ibW+Z12nYf23TvBM/OhKX4L zHM7zgjE/ZR6Fe/Lh7JbdkqOUDvd3FOWJNqWhnAoOm1YUqNCnOrD4qw4iWwPUSeH28Bm 0COQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=wknyPB/yxJ3UTQ4PT2uHmFua62nnCPu9bVGL5fRTOfA=; b=fu8MZEX/9SmHf5YGgdf7zUSjPo+FQKXGIv2WHuEfEyK0oDMHIaM6FCvAkapdyINcER +cV90XfKPsPsKU+OjNCgZv+bwQItG81jRwki6fy0PCbtGzhUskaBkBlfxgWfAxBX0oIJ YyLmJ2Xd4zlQQtCraOJZCSHTPr/z9JDg/dkeul4DWb33dWG1D+99RVhUOwKAn4rP96Yb hGtfAvD5ux7vgtvAgB9dxhKwgTPnVJ8ey+FcMQ/ProxfEwWGqM3SDIEJ90/NBBJyK6za juI/h8pObj2k0LarNbJ6IWsO6wJygDDpzh9JaaYZQVR1GEIWVoCd8Ok5uYwQ08uZwDr0 iG+g== X-Gm-Message-State: AKS2vOwEJDYQWQFO8hd8Ie5I1mwXkNxI5b7ZOp/dEt/CdNwpjYlSy0MF 8aIp81uP3RJse/1eCBAmvLiw95g9+u2E X-Received: by 10.157.89.137 with SMTP id u9mr1246604oth.79.1498511162286; Mon, 26 Jun 2017 14:06:02 -0700 (PDT) MIME-Version: 1.0 Received: by 10.157.36.37 with HTTP; Mon, 26 Jun 2017 14:05:55 -0700 (PDT) In-Reply-To: <3eb43047-379e-781d-f51f-3f84c10e5681@gmail.com> References: <20170620230820.92CF93A25B1@svn01-us-west.apache.org> <3eb43047-379e-781d-f51f-3f84c10e5681@gmail.com> From: William A Rowe Jr Date: Mon, 26 Jun 2017 16:05:55 -0500 Message-ID: Subject: Re: svn commit: r1799375 - /httpd/httpd/trunk/server/util.c To: httpd Content-Type: text/plain; charset="UTF-8" archived-at: Mon, 26 Jun 2017 21:06:15 -0000 On Mon, Jun 26, 2017 at 3:14 PM, Jacob Champion wrote: > On 06/20/2017 11:08 PM, William A Rowe Jr wrote: >> >> Sorry but I reraise my objection and veto worthless cpu cycles. > > For posterity, can I get a succinct description of your technical > justification for this veto? I have several. * Wasting CPU cycles for a no-op *which the compiler cannot recover from is unacceptable. httpd is coded in C for a reason, with all the associated side effects. Any deoptimization as some matter of style or as a matter of security (e.g. stack -> alloc) is discussed on list and the costs weighed by the group. * The test_char.h table is a private-use entity with 256 well-defined octets (not utf-8, not char-wise, these are raw bytes). Sometimes, and often for some platform, one is wrong, it is simply fixed, and the sole consumer, util.c, is corrected. * The test_char.h table is private-use and is not exported, not installed to httpd target include/, etc. util.c was its sole consumer. * mod_log_forensic changed this and started consuming an include which was buried under server/ for its own devices. Questionable, but still a core module (changes to the core table less likely to be caught when reviewing the module, but the toggle is clearly labeled FORENSIC, so there's that. Note the module duplicates the entire table, but it's forensic/diagnostic so I don't care what such code and const static footprints look like.) * T_HTTP_TOKEN_STOP declared NUL did not stop a token. That is an idiotic assertion. I inverted it. Cursory examination of the code, I did not spend enough time studying side-effects of the end-of-string behaviors, nor did the many other reviewers, I looked at the immediate affected logic. All use of this array and it's value of element NUL are exercised in util.c, this is not like it was some obscure external citation. * I agree with you the entire thing is unclear because there is no entity called a TOKEN_STOP, although there are recognized separators, and non-token garbage entities, but the functions implicated never bothered to distinguish between any of this. T_HTTP_TOKEN is clearer and less ambiguous (and NUL does not belong in that set.) I'm about to propose that change and will VOTE DOWN any call to backport that change to 2.4, as... * This change is mutually agreed to be a no-op, and you've made clear the intent was to backport to a stable, maintenance branch which should see NO deltas which have no effect. For example, whitespace correction is absolutely prohibited on a release branch because the svn blame ... comprehension of the changes to the code is destroyed by a stupid endeavor to make things look nice. When whitespace changes are introduced, it is in order to port the minimal, identical changes previously applied to trunk, so that a functional patch can be applied cleanly from an svn merge. So to convince me my veto is unwarranted, you need to basically convince me that the array elts are too volatile to trust, including the elt[0], or that we have a long tradition of getting this wrong (I suggest we don't - this was an exception), that we are unable to maintain the pairing util.c <> test_char.h. OR that we are about to export test_char.h to a much less attentive audience as a public export, etc.