Non-blocking archiver process
Ronan Dunklau <ronan.dunklau@aiven.io>
From: Ronan Dunklau <ronan.dunklau@aiven.io>
To: pgsql-hackers@lists.postgresql.org
Date: 2025-07-04T06:46:08Z
Lists: pgsql-hackers
Hello, We've noticed a behavior that seems surprising to us. Since DROP DATABASE now waits for a ProcSignalBarrier, it can hang up indefinitely if the archive_command hangs. The reason for this is that the builtin archive module doesn't process any interrupts while the archiving command is running, as it's run with a system() call, blocking undefintely. Before rushing on to implement a non-blocking archive library (perhaps using popen or posix_spawn, while keeping other systems in mind), what unintended consequences would it have to actually run the archive_command in a non- blocking way, and checking interrupts while it runs ? Thanks ! -- Ronan Dunklau