On Tue, Oct 20, 2020 at 09:17:22PM -0400, Tom Lane wrote: > Justin Pryzby <pry...@telsasoft.com> writes: > > I wonder if pg_upgrade should try to rmdir() the tablespace dirs before > > restoring global objects, allowing it to succeed, rather than just "failing > > early". > > I'm a little confused about that. If the directories aren't empty, > that will fail,
You mean rmdir() will fail, returning -1, which my patch will ignore, and the pg_upgrade will fail, same as it would have before. The goal of the patch is to improve the "empty" case, only. > but if they are, shouldn't the upgrade just work? It fails in "Restoring global objects", which runs "CREATE TABLESPACE". | errmsg("directory \"%s\" already in use as a tablespace", I considered the possibility of changing that, but it seems like this is specific to pg_upgrade. I wouldn't want to change the core server just for that, and it has a good reason for failing in that case: | * The creation of the version directory prevents more than one tablespace | * in a single location. -- Justin