mirror of
https://github.com/postgres/postgres.git
synced 2026-04-22 14:47:29 -04:00
basic_archive: Allow archive directory to be missing at startup.
Presently, the GUC check hook for basic_archive.archive_directory checks that the specified directory exists. Consequently, if the directory does not exist at server startup, archiving will be stuck indefinitely, even if it appears later. To fix, remove this check from the hook so that archiving will resume automatically once the directory is present. basic_archive must already be prepared to deal with the directory disappearing at any time, so no additional special handling is required. Reported-by: Олег Самойлов <splarv@ya.ru> Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us> Reviewed-by: Fujii Masao <masao.fujii@gmail.com> Reviewed-by: Sergei Kornilov <sk@zsrv.org> Discussion: https://postgr.es/m/73271769675212%40mail.yandex.ru Backpatch-through: 15
This commit is contained in:
parent
dcd9c06a42
commit
f510577de4
1 changed files with 1 additions and 14 deletions
|
|
@ -88,13 +88,11 @@ _PG_archive_module_init(void)
|
|||
/*
|
||||
* check_archive_directory
|
||||
*
|
||||
* Checks that the provided archive directory exists.
|
||||
* Checks that the provided archive directory path isn't too long.
|
||||
*/
|
||||
static bool
|
||||
check_archive_directory(char **newval, void **extra, GucSource source)
|
||||
{
|
||||
struct stat st;
|
||||
|
||||
/*
|
||||
* The default value is an empty string, so we have to accept that value.
|
||||
* Our check_configured callback also checks for this and prevents
|
||||
|
|
@ -113,17 +111,6 @@ check_archive_directory(char **newval, void **extra, GucSource source)
|
|||
return false;
|
||||
}
|
||||
|
||||
/*
|
||||
* Do a basic sanity check that the specified archive directory exists. It
|
||||
* could be removed at some point in the future, so we still need to be
|
||||
* prepared for it not to exist in the actual archiving logic.
|
||||
*/
|
||||
if (stat(*newval, &st) != 0 || !S_ISDIR(st.st_mode))
|
||||
{
|
||||
GUC_check_errdetail("Specified archive directory does not exist.");
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue