On Wed, Oct 10, 2012 at 10:35:06AM -0600, Chris Ernst wrote: > On 10/10/2012 09:56 AM, Bruce Momjian wrote: > > Can you show me what is in the PG_VERSION file in the old cluster? It > > should be "9.1". > > Hi Bruce, > > Thank you for the reply. Indeed it is "9.1": > > # cat /postgresql/9.1/main/PG_VERSION > 9.1 > > And just for good measure: > > cat /postgresql/9.2/main/PG_VERSION > 9.2 > > And there are no other PostgreSQL versions on this machine. > > Hmm... I was just about to send this when something else occurred to me. > I had initially tried to run pg_upgrade as root and it said it couldn't > be run as root. So I've been running it as my own user (which is in the > postgres group). However, everything in /postgresql/9.1/main is owned > by postgres with 700 permissions. > > I switched to the postgres user and now pg_upgrade is running. Perhaps > just a more informative error message is in order. > > Thank you for the shove in the right direction =) Oops, that code was returning zero if it couldn't open the file. The attached, applied patch to head and 9.2 issues a proper error message. Seems this "zero return" has been in the code since the beginning. :-( -- Bruce Momjian <bruce@xxxxxxxxxx> http://momjian.us EnterpriseDB http://enterprisedb.com + It's impossible for everything to be true. +
diff --git a/contrib/pg_upgrade/server.c b/contrib/pg_upgrade/server.c new file mode 100644 index 11e7e75..a9f9d85 *** a/contrib/pg_upgrade/server.c --- b/contrib/pg_upgrade/server.c *************** get_major_server_version(ClusterInfo *cl *** 149,155 **** snprintf(ver_filename, sizeof(ver_filename), "%s/PG_VERSION", cluster->pgdata); if ((version_fd = fopen(ver_filename, "r")) == NULL) ! return 0; if (fscanf(version_fd, "%63s", cluster->major_version_str) == 0 || sscanf(cluster->major_version_str, "%d.%d", &integer_version, --- 149,155 ---- snprintf(ver_filename, sizeof(ver_filename), "%s/PG_VERSION", cluster->pgdata); if ((version_fd = fopen(ver_filename, "r")) == NULL) ! pg_log(PG_FATAL, "could not open version file: %s\n", ver_filename); if (fscanf(version_fd, "%63s", cluster->major_version_str) == 0 || sscanf(cluster->major_version_str, "%d.%d", &integer_version,
-- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general