Re: ENOSPC FailedAssertion("!(RefCountErrors == 0)"
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Robert Haas <robertmhaas@gmail.com>
Cc: Andres Freund <andres@anarazel.de>, Michael Paquier <michael@paquier.xyz>,
Justin Pryzby <pryzby@telsasoft.com>,
PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2018-07-18T01:11:19Z
Lists: pgsql-hackers
Robert Haas <robertmhaas@gmail.com> writes:
> On Tue, Jul 17, 2018 at 8:55 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>> Uh, what? There are only a few callers of those, and they'd all have
>> crashed already if they were somehow dealing with an invalid buffer.
> Sorry, I meant Assert(owner != NULL).
Oh, gotcha: so that if an external developer hits it, he can more
easily see that this is from an (effective) API change and not some
mysterious bug. Makes sense, especially if we include a comment:
/* We used to allow pinning buffers without a resowner, but no more */
Assert(CurrentResourceOwner != NULL);
I think it's sufficient to do this in ResourceOwnerEnlargeBuffers,
though. The other two should be unreachable without having gone
through that.
regards, tom lane
Commits
-
Use a ResourceOwner to track buffer pins in all cases.
- 3cb646264e8c 12.0 landed