Trap errors from streaming child in pg_basebackup to exit early
Daniel Gustafsson <daniel@yesql.se>
From: Daniel Gustafsson <daniel@yesql.se>
To: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Cc: Magnus Hagander <magnus@hagander.net>
Date: 2021-08-26T09:25:06Z
Lists: pgsql-hackers
Attachments
- 0001-Quick-exit-on-log-stream-child-exit-in-pg_basebackup.patch (application/octet-stream) patch 0001
When using pg_basebackup with WAL streaming (-X stream), we have observed on a number of times in production that the streaming child exited prematurely (to no fault of the code it seems, most likely due to network middleboxes), which cause the backup to fail but only after it has run to completion. On long running backups this can consume a lot of time before it’s noticed. By trapping the failure of the streaming process we can instead exit early to allow the user to fix and/or restart the process. The attached adds a SIGCHLD handler for Unix, and catch the returnvalue from the Windows thread, in order to break out early from the main loop. It still needs a test, and proper testing on Windows, but early feedback on the approach would be appreciated. -- Daniel Gustafsson https://vmware.com/
Commits
-
Quick exit on log stream child exit in pg_basebackup
- 0475a97f744d 15.0 landed
-
Remove duplicated word in comment
- c7d7e1203958 15.0 landed