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