On Sat, 2009-01-24 at 21:58 +0200, Heikki Linnakangas wrote:
> When replaying a DROP TABLE SPACE, you first try to remove the
> directory, and if that fails, you assume that it's because it's in use
> as a temp tablespace in a read-only transaction.
That sounds like you think there another conclusion?
> You then call
> ResolveRecoveryConflictWithVirtualXIDs to kill such transactions, and
> try removing the directory again. But
> ResolveRecoveryConflictWithVirtualXIDs doesn't wait for the target
> transaction to die anymore (or at least it shouldn't, as we discussed
> earlier), so that doesn't work AFAICS.
The FATAL errors inflicted should be fairly quick to take effect, so
waiting should not be a problem. We can make waiting for FATAL errors
the standard response.
> One quick work around would be to simply not respect temp_tablespace
> during recovery...
No, don't think that's acceptable.
-- Simon Riggs www.2ndQuadrant.comPostgreSQL Training, Services and Support