Re: Rework the way multixact truncations work

From: Robert Haas <robertmhaas(at)gmail(dot)com>
To: Noah Misch <noah(at)leadboat(dot)com>
Cc: Andres Freund <andres(at)anarazel(dot)de>, Peter Geoghegan <pg(at)heroku(dot)com>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Rework the way multixact truncations work
Date: 2015-12-09 16:08:32
Message-ID: CA+TgmoZWhz_K5J3PJAbxgmzJxh1CfBrF9h+tJQ4_FnOPrUiBng@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Wed, Dec 9, 2015 at 9:43 AM, Noah Misch <noah(at)leadboat(dot)com> wrote:
> Andres writing the patch that became commit 4f627f8 and you reviewing it were
> gifts to Alvaro and to the community. Aware of that, I have avoided[1] saying
> that I was shocked to see that commit's defects. Despite a committer-author
> and _two_ committer reviewers, the patch was rife with wrong new comments,
> omitted updates to comments it caused to become wrong, and unsolicited
> whitespace churn. (Anyone could have missed the data loss bug, but these
> collectively leap off the page.) This in beleaguered code critical to data
> integrity. You call this thread's latest code a patch submission, but I call
> it bandaging the tree after a recent commit that never should have reached the
> tree. Hey, if you'd like me to post the traditional patch files, that's easy.
> It would have been easier for me. I posted branches because it gives more
> metadata to guide review. As for the choice to revert and redo ...

Yes, I'd like patch files, one per topic.

I wasn't very happy with the way that patch it was written; it seemed
to me that it touched too much code and move a lot of things around
unnecessarily, and I said so at the time. I would have preferred
something more incremental, and I asked for it and didn't get it.
Well, I'm not giving up: I'm asking for the same thing here. I didn't
think it was a good idea for Andres to rearrange that much code in a
single commit, because it was hard to review, and I don't think it's a
good idea for you to do it, either. To the extent that you found
bugs, I think that proves the point that large commits are hard to
review and small commits that change things just a little bit at a
time are the way to go.

> I hope those who have not already read commit 4f627f8 will not waste time
> reading it. They should instead ignore multixact changes from commit 4f627f8
> through its revert. The 2015-09-26 commits have not appeared in a supported
> release, and no other work has built upon them. They have no tenure. (I am
> glad you talked the author out of back-patching; otherwise, 9.4.5 and 9.3.10
> would have introduced a data loss bug.) Nobody reported a single defect
> before my review overturned half the patch. A revert will indeed impose on
> those who invested time to understand commit 4f627f8, but the silence about
> its defects suggests the people understanding it number either zero or one.
> Even as its author and reviewers, you would do better to set aside what you
> thought you knew about this code.

I just don't find this a realistic model of how people use the git
log. Maybe you use it this way; I don't. I don't *want* git blame to
make it seem as if 4f627f8 is not part of the history. For better or
worse, it is. Ripping it out and replacing it monolithically will not
change that; it will only make the detailed history harder to
reconstruct, and I *will* want to reconstruct it.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Robert Haas 2015-12-09 16:18:39 Re: Rework the way multixact truncations work
Previous Message Greg Stark 2015-12-09 15:49:20 Re: Making tab-complete.c easier to maintain