On 2019-Nov-20, Juan José Santamaría Flecha wrote:
> I was not able to reproduce the Permission denied error with current HEAD,
> until I opened another CMD inside the "pg_replslot/regression_slot" folder.
> This will be problematic, is the deletion of the folder actually needed?
Yes :-( The code assumes that if the directory is there, then it's
valid. Trying to remove that assumption is probably a more invasive
fix.
I think ReplicationSlotDropAcquired is too pessimistic (no recourse if
the rename fails) and too optimistic (this will almost never happen).
We could change it so that the rename is retried a few times, and avoid
the failure. (Naturally, the rmtree should also be retried.) The code
seems written with the POSIX semantics in mind, but it seems easy to
improve.
--
Álvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services