Thread

Commits

  1. Improve error messages for some callers of XLogReadRecord()

  1. Improve error context after some failed XLogReadRecord()

    Michael Paquier <michael@paquier.xyz> — 2021-11-09T01:47:11Z

    Hi all,
    
    I have noticed $subject while looking at a patch in this area:
    https://www.postgresql.org/message-id/YYiqxtEqhgb5gIWL@paquier.xyz
    
    While we don't expect the four callers of XLogReadRecord() related to
    logical decoding to fail in the code paths changed by the patch
    attached, I think that it would be good to provide more context to
    users rather than just emitting an elog(ERROR) coming directly from
    the WAL reader.  This way, it becomes a bit easier to guess from where
    the failure is coming.
    
    A patch is attached to improve all those elog()s.  I have tried not to
    be too fancy about those new error strings, but I am sure that these
    could be tweaked.
    
    Thoughts?
    --
    Michael
    
  2. Re: Improve error context after some failed XLogReadRecord()

    Kyotaro Horiguchi <horikyota.ntt@gmail.com> — 2021-11-09T07:58:11Z

    At Tue, 9 Nov 2021 10:47:11 +0900, Michael Paquier <michael@paquier.xyz> wrote in 
    > Hi all,
    > 
    > I have noticed $subject while looking at a patch in this area:
    > https://www.postgresql.org/message-id/YYiqxtEqhgb5gIWL@paquier.xyz
    > 
    > While we don't expect the four callers of XLogReadRecord() related to
    > logical decoding to fail in the code paths changed by the patch
    > attached, I think that it would be good to provide more context to
    > users rather than just emitting an elog(ERROR) coming directly from
    > the WAL reader.  This way, it becomes a bit easier to guess from where
    > the failure is coming.
    > 
    > A patch is attached to improve all those elog()s.  I have tried not to
    > be too fancy about those new error strings, but I am sure that these
    > could be tweaked.
    > 
    > Thoughts?
    
    As the whole, I agree that any substantial message is far better than
    "%s" in regard to identifying the line that emitted a log line.
    
    +				elog(ERROR, "could not find record to advance replication slot: %s",
    
    I prefer "could not read record while advancing replcation slot",
    because it is not finding a record but it is reading successive
    records.  However, I don't strongly object to the current wording.
    
    +		elog(ERROR, "could not find record to send logically-decoded data: %s", errm);
    
    I prefer something like the above for the same reason.  How about
    "could not read record while sending logically-decoded data:".  The
    same with above, I'm not strongly opposed to the current wording.
    
    Otherwise it looks good to me.
    
    regards.
    
    -- 
    Kyotaro Horiguchi
    NTT Open Source Software Center
    
    
    
    
  3. Re: Improve error context after some failed XLogReadRecord()

    Michael Paquier <michael@paquier.xyz> — 2021-11-10T06:59:16Z

    On Tue, Nov 09, 2021 at 04:58:11PM +0900, Kyotaro Horiguchi wrote:
    > Otherwise it looks good to me.
    
    What you are proposing is better than what I had in those two
    contexts, so I have just used what you have suggested for both of
    them.  Thanks!
    --
    Michael