Re: xact_start for walsender & logical decoding not updated
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Alvaro Herrera <alvherre@2ndquadrant.com>
Cc: Tomas Vondra <tomas.vondra@2ndquadrant.com>,
Kyotaro Horiguchi <horikyota.ntt@gmail.com>, craig@2ndquadrant.com,
pgsql-hackers@postgresql.org
Date: 2020-01-08T00:42:48Z
Lists: pgsql-hackers
Alvaro Herrera <alvherre@2ndquadrant.com> writes: > On 2020-Jan-07, Tom Lane wrote: >> ... and, having now looked at the patch, I'm not surprised. >> Breaking stmtStartTimestamp, which is what you did, seems like >> an awfully side-effect-filled route to the goal. If you want >> to prevent monitoring from showing this, why didn't you just >> prevent monitoring from showing it? That is, I'd have expected >> some am_walsender logic in or near pgstat.c, not here. > That seems a pretty simple patch; attached (untested). I think you want && not ||, but otherwise that looks about right. > However, my > patch seemed a pretty decent way to achieve the goal, and I don't > understand why it causes the failure, or indeed why we care about > stmtStartTimestamp at all. I'll look into this again tomorrow. I'm not 100% sure why the failure either. The assertion is in code that should only be reached in a parallel worker, and surely walsenders don't launch parallel queries? But it looks to me that all the critters using force_parallel_mode are unhappy. In any case, my larger point is that stmtStartTimestamp is globally accessible state (via GetCurrentStatementStartTimestamp()) and you can have little idea which corners of our code are using it, let alone what extensions might expect about it. Plus it feeds into xactStartTimestamp (cf StartTransaction()), increasing the footprint for unwanted side-effects even more. Redefining its meaning to fix this problem is a really bad idea IMO. regards, tom lane
Commits
-
Reimplement nullification of walsender timestamp
- f5d28710c707 13.0 landed
- da42b9f3ff43 10.12 landed
- af43581e8b29 11.7 landed
- 20c4df8c8d7c 12.2 landed
-
pg_stat_activity: show NULL stmt start time for walsenders
- 8de3b68faffc 10.12 landed
- fce9ba8192b4 12.2 landed
- b175bd59fa54 13.0 landed
- 896db774e5b0 11.7 landed