Commits on Aug 21, 2026
-
Retry databases whose data checksums worker was terminated
When enabling data checksums, a worker which exited without reporting a result is treated as a processing failure, which aborts the whole operation and reverts the checksum state to off. Commit 51f55b1 made the launcher treat a killed worker whose database is gone as a concurrent drop, but when a DROP DATABASE ... WITH (FORCE) kills the worker and then fails to drop the database, for example by exceeding the five seconds it waits for terminated backends to exit, the database still exists and the enable is aborted. The same happens when an administrator terminates a worker by hand. A terminated worker did not fail to process its database, so throwing away the whole operation is both surprising and unnecessary. To fix, record in shared memory when the worker is terminated by SIGTERM, and make the launcher retry the database rather than abort when the database still exists. Each retry requires another explicit termination, so this cannot loop on its own. A worker failing with an error still aborts the operation, and canceling the launcher still aborts it as well. Discussion: https://postgr.es/m/361531e2-52b5-499c-a126-815f277bbef2@gmail.com