Re: A weird bit in pg_upgrade/exec.c
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: a.akenteva@postgrespro.ru
Cc: pgsql-hackers@postgresql.org
Date: 2017-11-09T16:17:26Z
Lists: pgsql-hackers
a.akenteva@postgrespro.ru writes:
> I've came across a weird bit in pg_upgrade/exec.c
> We have a function check_bin_dir() which goes like this (old_cluster and
> new_cluster are global variables):
> void check_bin_dir(ClusterInfo *cluster)
> {
> ...
> get_bin_version(&old_cluster);
> get_bin_version(&new_cluster);
> ...
> }
> This function has two calls:
> check_bin_dir(&old_cluster);
> check_bin_dir(&new_cluster);
> I'd like to substitute these last two lines with this:
> get_bin_version(cluster);
Yeah, the way it is now seems outright broken. It will try to do
get_bin_version on the new cluster before having done validate_exec
there, violating its own comment.
I think we should change this as a bug fix, independently of whatever
else you had in mind to do here.
regards, tom lane
Commits
-
Fix bogus logic for checking data dirs' versions within pg_upgrade.
- 4b02e935fee8 10.2 landed
- 164d6338785b 11.0 landed
-
Fix bogus logic for checking executables' versions within pg_upgrade.
- 115a70756338 10.2 landed
- 9be95ef156e7 11.0 landed