mirror of
				https://github.com/postgres/postgres.git
				synced 2025-10-29 22:49:41 +03:00 
			
		
		
		
	pg_upgrade: remove reference to autovacuum_multixact_freeze_max_age
autovacuum_multixact_freeze_max_age was added as a pg_ctl start parameter in 9.3.X to prevent autovacuum from running. However, only some 9.3.X releases have autovacuum_multixact_freeze_max_age as it was added in a minor PG 9.3 release. It also isn't needed because -b turns off autovacuum in 9.1+. Without this fix, trying to upgrade from an early 9.3 release to 9.4 would fail. Report by EDB Backpatch through 9.3
This commit is contained in:
		| @@ -202,12 +202,13 @@ start_postmaster(ClusterInfo *cluster, bool throw_error) | |||||||
| #endif | #endif | ||||||
|  |  | ||||||
| 	/* | 	/* | ||||||
| 	 * Using autovacuum=off disables cleanup vacuum and analyze, but freeze | 	 * Since PG 9.1, we have used -b to disable autovacuum.  For earlier | ||||||
| 	 * vacuums can still happen, so we set autovacuum_freeze_max_age and | 	 * releases, setting autovacuum=off disables cleanup vacuum and analyze, | ||||||
| 	 * autovacuum_multixact_freeze_max_age to their maximums.  We assume all | 	 * but freeze vacuums can still happen, so we set autovacuum_freeze_max_age | ||||||
| 	 * datfrozenxid, relfrozenxid, and relminmxid values are less than a gap | 	 * to its maximum.  (autovacuum_multixact_freeze_max_age was introduced | ||||||
| 	 * of 2000000000 from the current xid counter, so autovacuum will not | 	 * after 9.1, so there is no need to set that.)  We assume all datfrozenxid | ||||||
| 	 * touch them. | 	 * and relfrozenxid values are less than a gap of 2000000000 from the current | ||||||
|  | 	 * xid counter, so autovacuum will not touch them. | ||||||
| 	 * | 	 * | ||||||
| 	 * Turn off durability requirements to improve object creation speed, and | 	 * Turn off durability requirements to improve object creation speed, and | ||||||
| 	 * we only modify the new cluster, so only use it there.  If there is a | 	 * we only modify the new cluster, so only use it there.  If there is a | ||||||
| @@ -215,13 +216,11 @@ start_postmaster(ClusterInfo *cluster, bool throw_error) | |||||||
| 	 * win on ext4. | 	 * win on ext4. | ||||||
| 	 */ | 	 */ | ||||||
| 	snprintf(cmd, sizeof(cmd), | 	snprintf(cmd, sizeof(cmd), | ||||||
| 		  "\"%s/pg_ctl\" -w -l \"%s\" -D \"%s\" -o \"-p %d%s%s %s%s%s\" start", | 		  "\"%s/pg_ctl\" -w -l \"%s\" -D \"%s\" -o \"-p %d%s%s %s%s\" start", | ||||||
| 		  cluster->bindir, SERVER_LOG_FILE, cluster->pgconfig, cluster->port, | 		  cluster->bindir, SERVER_LOG_FILE, cluster->pgconfig, cluster->port, | ||||||
| 			 (cluster->controldata.cat_ver >= | 			 (cluster->controldata.cat_ver >= | ||||||
| 			  BINARY_UPGRADE_SERVER_FLAG_CAT_VER) ? " -b" : | 			  BINARY_UPGRADE_SERVER_FLAG_CAT_VER) ? " -b" : | ||||||
| 			 " -c autovacuum=off -c autovacuum_freeze_max_age=2000000000", | 			 " -c autovacuum=off -c autovacuum_freeze_max_age=2000000000", | ||||||
| 			 (GET_MAJOR_VERSION(cluster->major_version) >= 903) ? |  | ||||||
| 			 " -c autovacuum_multixact_freeze_max_age=2000000000" : "", |  | ||||||
| 			 (cluster == &new_cluster) ? | 			 (cluster == &new_cluster) ? | ||||||
| 	  " -c synchronous_commit=off -c fsync=off -c full_page_writes=off" : "", | 	  " -c synchronous_commit=off -c fsync=off -c full_page_writes=off" : "", | ||||||
| 			 cluster->pgopts ? cluster->pgopts : "", socket_string); | 			 cluster->pgopts ? cluster->pgopts : "", socket_string); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user