Re: Snapshot leak warning with lo_export in subtransaction

Alvaro Herrera <alvherre@alvh.no-ip.org>

From: Alvaro Herrera <alvherre@alvh.no-ip.org>
To: Heikki Linnakangas <hlinnaka@iki.fi>
Cc: Pg Bugs <pgsql-bugs@postgresql.org>, Andrew B <pgsql.20.drkshadow@spamgourmet.com>
Date: 2021-10-18T14:40:35Z
Lists: pgsql-bugs
On 2021-Oct-18, Heikki Linnakangas wrote:

> I tried that, but didn't like the result. It conflated the user-visible
> INV_READ/WRITE flags with the new internal-only flag.

True -- I also noticed this and had written in my earlier reply that we
could perhaps define this flag internally, not exposing it to the user.
But that seemed weird from the API definition perspective, so I removed
that phrase before sending.

> Thinking about this some more, I came up with the attached. It moves the
> responsibility of registering the snapshot from inv_api.c to the caller.

I like this patch much better.

> With that change, there's no need for a new option to inv_open(). The
> division of labor between be-fsstubs.c and inv_api.c has always been a bit
> blurry, I think that this makes it slightly more clear.

Agreed.

-- 
Álvaro Herrera              Valdivia, Chile  —  https://www.EnterpriseDB.com/



Commits

  1. Fix snapshot reference leak if lo_export fails.