Non-blocking archiver process

From: Ronan Dunklau <ronan(dot)dunklau(at)aiven(dot)io>
To: pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: Non-blocking archiver process
Date: 2025-07-04 06:46:08
Message-ID: 2382367.ElGaqSPkdT@aivenlaptop
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
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

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Hannu Krosing 2025-07-04 07:12:20 Re: Adding pg_dump flag for parallel export to pipes
Previous Message Dilip Kumar 2025-07-04 06:31:24 Re: Conflict detection for update_deleted in logical replication