BUG #15615: pg_upgrade and vacuum_defer_cleanup_age

From: PG Bug reporting form <noreply(at)postgresql(dot)org>
To: pgsql-bugs(at)lists(dot)postgresql(dot)org
Cc: eshkinkot(at)gmail(dot)com
Subject: BUG #15615: pg_upgrade and vacuum_defer_cleanup_age
Date: 2019-01-31 16:19:01
Message-ID: 15615-a64615b9b466c18f@postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

The following bug has been logged on the website:

Bug reference: 15615
Logged by: Sergey Burladyan
Email address: eshkinkot(at)gmail(dot)com
PostgreSQL version: 9.4.20
Operating system: Slackware, Debian
Description:

Hi!

I use production config for pg_upgrade for new cluster and it has
vacuum_defer_cleanup_age = 900000

With this setting pg_upgrade cannot freeze pg_catalog in new cluster
(it do 'vacuumdb --all --freeze') during performing upgrade and upgrade
fails:

Performing Upgrade
------------------
Analyzing all rows in the new cluster ok
Freezing all rows on the new cluster ok
Deleting files from new pg_clog ok
Copying old pg_clog to new server ok
Setting next transaction ID and epoch for new cluster ok
Deleting files from new pg_multixact/offsets ok
Copying old pg_multixact/offsets to new server ok
Deleting files from new pg_multixact/members ok
Copying old pg_multixact/members to new server ok
Setting next multixact ID and offset for new cluster ok
Resetting WAL archives ok

connection to database failed: FATAL: database "template1" does not exist

could not connect to new postmaster started with the command:
"/home/test/inst/pg9.6/bin/pg_ctl" -w -l "pg_upgrade_server.log" -D "new/"
-o "-p 50432 -b -c synchronous_commit=off -c fsync=off -c
full_page_writes=off -c listen_addresses='' -c unix_socket_permissions=0700
-c unix_socket_directories='/home/test/tmp/u'" start
Failure, exiting

I did not find any prohibition in the documentation on using production
config
with pg_upgrade, may be I am wrong and this is already mentioned in
documentation.

Test script:
#!/bin/bash

PGOLD=~/inst/pg9.4/bin
PGNEW=~/inst/pg9.6/bin

${PGOLD}/pg_ctl init -s -D old -o "--lc-messages=C -T pg_catalog.english"

${PGNEW}/pg_ctl init -s -D new -o "--lc-messages=C -T pg_catalog.english"
echo vacuum_defer_cleanup_age=10000 >> new/postgresql.auto.conf

# move txid to 3 000 000 000 in old cluster as in production
${PGOLD}/pg_ctl start -w -D old -o "--port=54321
--unix_socket_directories=/tmp"
${PGOLD}/vacuumdb -h /tmp -p 54321 --all --analyze
${PGOLD}/vacuumdb -h /tmp -p 54321 --all --freeze
${PGOLD}/pg_ctl stop -D old -m smart
#
${PGOLD}/pg_resetxlog -x 3000000000 old
dd if=/dev/zero of=old/pg_clog/0B2D bs=262144 count=1

# # move txid in new cluster bigger than vacuum_defer_cleanup_age may fix
problem
# ${PGNEW}/pg_ctl start -w -D new -o "--port=54321
--unix_socket_directories=/tmp"
# echo "select txid_current();" | ${PGNEW}/pgbench -h /tmp -p 54321 -n -P 5
-t 100000 -f- postgres
# ${PGNEW}/pg_ctl stop -D new -m smart

${PGNEW}/pg_upgrade -k -d old/ -D new/ -b ${PGOLD}/ -B ${PGNEW}/

# rm -r new old pg_upgrade_* analyze_new_cluster.sh delete_old_cluster.sh

Browse pgsql-bugs by date

  From Date Subject
Next Message Tom Lane 2019-01-31 18:06:36 Re: BUG #15613: Bug in PG Planner for Foreign Data Wrappers
Previous Message Andrew Gierth 2019-01-31 15:04:54 Re: psql and readline comments