Re: relation OID in ReorderBufferToastReplace error message
Amit Kapila <amit.kapila16@gmail.com>
From: Amit Kapila <amit.kapila16@gmail.com>
To: Jeremy Schneider <schnjere@amazon.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, PostgreSQL-development <pgsql-hackers@postgresql.org>, "Drouvot,
Bertrand" <bdrouvot@amazon.com>, Alvaro Herrera <alvherre@alvh.no-ip.org>, Andres Freund <andres@anarazel.de>
Date: 2021-09-17T05:23:09Z
Lists: pgsql-hackers
On Thu, Jul 15, 2021 at 6:14 AM Jeremy Schneider <schnjere@amazon.com> wrote: > > On 7/2/21 18:57, Jeremy Schneider wrote: > > The process of trying to understand this recent incident has given me some new insight about what information would be helpful up front in this error message for faster resolution. > > First off, and most importantly, the current WAL record we're processing when the error is encountered. I wonder if it could easily print the LSN? > > Secondly, the transaction ID. In the specific bug Bertrand found, the problem is actually not with the actual WAL record that's being processed - but rather because previous WAL records in the same transaction left the decoder process in a state where the current WAL record [a commit] generated an error. So it's the entire transaction that needs to be examined to reproduce the error. (Andres actually pointed this out on the original thread back in December 2019.) I realize that once you know the LSN you can easily get the XID with pg_waldump, but personally I'd just as soon include the XID in the error message since I think it will usually be a first step for debugging any problems with WAL decoding. The I can go straight to filtering that XID on my first pg_waldump run. > I don't think it is a bad idea to print additional information as you are suggesting but why only for this error? It could be useful to investigate any other error we get during decoding. I think normally we add such additional information via error_context. We have recently added/enhanced it for apply-workers, see commit [1]. I think here we should just print the relation name in the error message you pointed out and then work on adding additional information via error context as a separate patch. What do you think? [1] - https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=abc0910e2e0adfc5a17e035465ee31242e32c4fc -- With Regards, Amit Kapila.
Commits
-
Back-patch "Add parent table name in an error in reorderbuffer.c."
- 4d3147070545 9.6.24 landed
- 13e52d7c5533 10.19 landed
- d61cdad0b524 11.14 landed
- 4048fc458175 12.9 landed
- 23469b867ac0 13.5 landed
- 9e84f6a72133 14.1 landed
-
Add parent table name in an error in reorderbuffer.c.
- 5e77625b260a 15.0 landed
-
Fix reorder buffer memory accounting for toast changes.
- df3640e5293d 15.0 cited
-
Add logical change details to logical replication worker errcontext.
- abc0910e2e0a 15.0 cited
-
Fix toast rewrites in logical decoding.
- 29b590547028 15.0 cited
-
Add error codes to some corruption log messages
- fd6ec93bf890 13.0 cited