Обсуждение: pgsql: Exclude VACUUMs from RunningXactData

Поиск
Список
Период
Сортировка

pgsql: Exclude VACUUMs from RunningXactData

От
Simon Riggs
Дата:
Exclude VACUUMs from RunningXactData

GetRunningTransactionData() should ignore VACUUM procs because in some
cases they are assigned xids. This could lead to holding back xmin via
the route of passing the xid to standby and then having that hold back
xmin on master via feedback.

Backpatch to 9.1 needed, but will only do so on supported versions.
Backpatch once proven on the buildfarm.

Reported-by: Greg Stark
Author: Simon Riggs
Reviewed-by: Amit Kapila
Discussion: https://postgr.es/m/CANP8+jJBYt=4PpTfiPb0UrH1_iPhzsxKH5Op_Wec634F0ohnAw@mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/32ac7a118fc17f5baac1b370f50d759c30bee00a

Modified Files
--------------
src/backend/storage/ipc/procarray.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)


Re: pgsql: Exclude VACUUMs from RunningXactData

От
Tom Lane
Дата:
Simon Riggs <simon@2ndQuadrant.com> writes:
> Exclude VACUUMs from RunningXactData
> GetRunningTransactionData() should ignore VACUUM procs because in some
> cases they are assigned xids.

Uh, what?  Lazy vacuum shouldn't acquire an xid.  If it does, that
would suggest it's running code that it's unsafe for
GetRunningTransactionData to ignore.

            regards, tom lane


Re: pgsql: Exclude VACUUMs from RunningXactData

От
Andres Freund
Дата:
On 2018-06-07 16:24:30 -0400, Tom Lane wrote:
> Simon Riggs <simon@2ndQuadrant.com> writes:
> > Exclude VACUUMs from RunningXactData
> > GetRunningTransactionData() should ignore VACUUM procs because in some
> > cases they are assigned xids.
> 
> Uh, what?  Lazy vacuum shouldn't acquire an xid.  If it does, that
> would suggest it's running code that it's unsafe for
> GetRunningTransactionData to ignore.

Well, we currently do acquire an xid at the end when truncating (see
[1]). But that still doesn't seem to make it the right thing to ignore
these xids.  Let's continue the discussion over there?

Greetings,

Andres Freund

[1] http://archives.postgresql.org/message-id/20180607211918.h2cdja26ypriw2sm%40alap3.anarazel.de