On Wed, Oct 10, 2012 at 01:54:49PM -0400, Bruce Momjian wrote: > 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. :-(
CC to hackers. Above is the email that caused me to fixed pg_upgrade's handling when it can't read the data directory; patch attached. -- Bruce Momjian <br...@momjian.us> 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-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers