postgresql/src/tools
Alexander Korotkov 73da6b8d1b Refactor WaitForLSNReplay() to return the result of waiting
Currently, WaitForLSNReplay() immediately throws an error if waiting for LSN
replay is not successful.  This commit teaches  WaitForLSNReplay() to return
the result of waiting, while making pg_wal_replay_wait() responsible for
throwing an appropriate error.

This is preparation to adding 'no_error' argument to pg_wal_replay_wait() and
new function pg_wal_replay_wait_status(), which returns the last wait result
status.

Additionally, we stop distinguishing situations when we find our instance to
be not in a recovery state before entering the waiting loop and inside
the waiting loop.  Standby promotion may happen at any moment, even between
issuing a procedure call statement and pg_wal_replay_wait() doing a first
check of recovery status.  Thus, there is no pointing distinguishing these
situations.

Also, since we may exit the waiting loop and see our instance not in recovery
without throwing an error, we need to deleteLSNWaiter() in that case. We do
this unconditionally for the sake of simplicity, even if standby was already
promoted after reaching the target LSN, the startup process surely already
deleted us.

Reported-by: Michael Paquier
Discussion: https://postgr.es/m/ZtUF17gF0pNpwZDI%40paquier.xyz
Reviewed-by: Michael Paquier, Pavel Borisov
2024-10-24 14:38:27 +03:00
..
ci ci: Upgrade MacPorts version to 2.10.1. 2024-08-19 11:47:37 +12:00
editors Make Emacs perl-mode indent more like perltidy. 2019-01-13 11:32:31 -08:00
ifaddrs Use printf's %m format instead of strerror(errno) in more places 2024-03-12 10:02:54 +09:00
perlcheck Activate perlcritic InputOutput::RequireCheckedSyscalls and fix resulting warnings 2024-03-19 07:09:31 +01:00
pg_bsd_indent Add -Wmissing-variable-declarations to the standard compilation flags 2024-08-03 11:51:02 +02:00
pginclude Add further excludes to headerscheck 2024-09-24 20:41:47 +02:00
pgindent Refactor WaitForLSNReplay() to return the result of waiting 2024-10-24 14:38:27 +03:00
add_commit_links.pl Improve Perl script which adds commit links to release notes 2024-09-19 08:45:33 -04:00
ccsym tools/ccsym: update for modern versions of gcc 2015-01-20 13:02:58 -05:00
check_bison_recursion.pl Update copyright for 2024 2024-01-03 20:49:05 -05:00
codelines Fix remaining stray references to CVS. 2010-09-22 19:51:39 -04:00
copyright.pl Perl scripts: revert 43ce181059 2024-09-15 21:25:24 -04:00
darwin_sysroot Move darwin sysroot determination into separate file 2022-09-01 16:54:19 -07:00
find_badmacros Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
find_meson meson: Add initial version of meson based build system 2022-09-21 22:37:17 -07:00
find_static Fix trap in a few shell scripts 2022-09-20 18:50:16 +02:00
find_typedef Refer to OS X as "macOS", except for the port name which is still "darwin". 2016-09-25 15:40:57 -04:00
fix-old-flex-code.pl Update copyright for 2024 2024-01-03 20:49:05 -05:00
gen_export.pl Perl scripts: revert 43ce181059 2024-09-15 21:25:24 -04:00
gen_keywordlist.pl Perl scripts: revert 43ce181059 2024-09-15 21:25:24 -04:00
git-external-diff Preserve information on use of git-external-diff 2018-05-24 23:45:31 +09:30
git_changelog Stamp HEAD as 18devel. 2024-07-01 07:56:10 +09:00
install_files meson: make install_test_files more generic, rename to install_files 2023-03-23 21:20:18 -07:00
make_ctags Fix make_etags breakage on certain platforms. 2023-06-14 11:02:50 +09:00
make_etags Fix make_etags failure on Mac. 2023-02-15 09:52:42 +09:00
make_mkid Add another pgdefine path check, and a cvs-git change. 2011-08-26 21:52:35 -04:00
mark_pgdllimport.pl Update copyright for 2024 2024-01-03 20:49:05 -05:00
msvc_gendef.pl Perl scripts: revert 43ce181059 2024-09-15 21:25:24 -04:00
PerfectHash.pm Update copyright for 2024 2024-01-03 20:49:05 -05:00
pgflex meson: Add initial version of meson based build system 2022-09-21 22:37:17 -07:00
pgtest pgtest: fix spacing 2023-08-14 14:03:29 -04:00
rcgen meson: Add windows resource files 2022-10-05 09:56:05 -07:00
RELEASE_CHANGES scripts: add Perl script to add links to release notes 2024-09-16 13:26:37 -04:00
testint128.c Update copyright for 2024 2024-01-03 20:49:05 -05:00
testwrap Make TAP todo_start effects the same under Meson and prove_check. 2024-06-27 19:21:04 -07:00
valgrind.supp Record dependencies of a cast on other casts that it requires. 2022-10-17 14:02:05 -04:00
version_stamp.pl Perl scripts: revert 43ce181059 2024-09-15 21:25:24 -04:00
win32tzlist.pl Perl scripts: revert 43ce181059 2024-09-15 21:25:24 -04:00