Search Postgresql Archives

Re: pg_upgrade not detecting version properly

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux