Re: BufFileRead() error signalling
Alvaro Herrera <alvherre@2ndquadrant.com>
From: Alvaro Herrera <alvherre@2ndquadrant.com>
To: Thomas Munro <thomas.munro@gmail.com>
Cc: Michael Paquier <michael@paquier.xyz>, Robert Haas <robertmhaas@gmail.com>, Ibrar Ahmed <ibrar.ahmad@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2020-06-08T14:49:00Z
Lists: pgsql-hackers
On 2020-Jun-08, Thomas Munro wrote: > Stepping back a bit, one of the problems here is that we tried to > model the functions on <stdio.h> fread(), but we didn't provide the > companion ferror() and feof() functions, and then we were a bit fuzzy > on when errno is set, even though the <stdio.h> functions don't > document that. There were various ways forward, but the one that this > patch follows is to switch to our regular error reporting system. The > only thing that really costs us is marginally more vague error > messages. Perhaps that could eventually be fixed by passing in some > more context into calls like BufFileCreateTemp(), for use in error > messages and perhaps also path names. I think using our standard "exception" mechanism makes sense. As for additional context, I think usefulness of the error messages would be improved by showing the file path (because then user knows which filesystem/tablespace was full, for example), but IMO any additional context on top of that is of marginal additional benefit. If we really cared, we could have errcontext() callbacks in the sites of interest, but that would be a separate patch and perhaps not backpatchable. > > + elog(ERROR, "could not seek block %ld temporary file", blknum); > > > > You mean "in temporary file" in the new message, no? > > Fixed. The wording we use is "could not seek TO block N". (Or used to use, before switching to pread/pwrite in most places, it seems). Thanks! -- Álvaro Herrera https://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Commits
-
Make BufFileWrite() void.
- f5d18862bbb3 14.0 landed
-
Fix buffile.c error handling.
- 89020a92fb62 9.5.23 landed
- 02b71f06be75 9.6.19 landed
- 95647a1c7d29 10.14 landed
- 9c14d6024365 11.9 landed
- 28ee12669944 12.4 landed
- 3e0b08c404b2 13.0 landed
- 7897e3bb902c 14.0 landed
-
Adjust WAL code so that checkpoints truncate the xlog at the previous
- 1173344e74f7 7.2.1 cited