pgsql: Fix some issues with WAL segment opening for pg_receivewal --com
От | Michael Paquier |
---|---|
Тема | pgsql: Fix some issues with WAL segment opening for pg_receivewal --com |
Дата | |
Msg-id | E1m5gCg-0005p7-W4@gemulon.postgresql.org обсуждение исходный текст |
Список | pgsql-committers |
Fix some issues with WAL segment opening for pg_receivewal --compress The logic handling the opening of new WAL segments was fuzzy when using --compress if a partial, non-compressed, segment with the same base name existed in the repository storing those files. In this case, using --compress would cause the code to first check for the existence and the size of a non-compressed segment, followed by the opening of a new compressed, partial, segment. The code was accidentally working correctly on most platforms as the buildfarm has proved, except bowerbird where gzflush() could fail in this code path. It is wrong anyway to take the code path used pre-padding when creating a new partial, non-compressed, segment, so let's fix it. Note that this issue exists when users mix successive runs of pg_receivewal with or without compression, as discovered with the tests introduced by ffc9dda. While on it, this refactors the code so as code paths that need to know about the ".gz" suffix are down from four to one in walmethods.c, easing a bit the introduction of new compression methods. This addresses a second issue where log messages generated for an unexpected failure would not show the compressed segment name involved, which was confusing, printing instead the name of the non-compressed equivalent. Reported-by: Georgios Kokolatos Discussion: https://postgr.es/m/YPDLz2x3o1aX2wRh@paquier.xyz Backpatch-through: 10 Branch ------ REL_13_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/fb2b86015a9f3e2e59ddbb59e18cda98363cbd7b Modified Files -------------- src/bin/pg_basebackup/receivelog.c | 13 ++++--- src/bin/pg_basebackup/walmethods.c | 79 +++++++++++++++++++++++++++++--------- src/bin/pg_basebackup/walmethods.h | 9 +++++ 3 files changed, 78 insertions(+), 23 deletions(-)
В списке pgsql-committers по дате отправления: