Hello
How to reproduce:
1) configure
archive_mode = on
archive_library = 'basic_archive'
basic_archive.archive_directory = '/some/path/'
2) start postgres and verify archive works
3) make this directory temporary inaccessible. NFS will give you many ways to achieve this, here just mv /some/
/some_moved/ is enough.
4) basic_archive will complain ERROR: could not create file ... No such file or directory for new WAL archive
attempts
5) restart archiver process with any reason: kill it or restart postgres
6) make archive_directory accessible again: archiver process will not check the directory's existence again and
continueto complain about unconfigured archive_directory
Maybe it makes sense to move the directory existence check from check_archive_directory (guc check callback) to
basic_archive_configured?(attached)
regards, Sergei