[HACKERS] Should `pg_upgrade --check` check relation filenodes are present? - Mailing list pgsql-hackers

From Craig de Stigter
Subject [HACKERS] Should `pg_upgrade --check` check relation filenodes are present?
Date
Msg-id CAF1M8pc=xF8Wt0HUEroQ==tVxj9yrZ297LijwjouS3NeofBM4g@mail.gmail.com
Whole thread Raw
Responses Re: [HACKERS] Should `pg_upgrade --check` check relation filenodes are present?  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: [HACKERS] Should `pg_upgrade --check` check relation filenodesare present?  (Peter Eisentraut <peter.eisentraut@2ndquadrant.com>)
Re: [HACKERS] Should `pg_upgrade --check` check relation filenodesare present?  (Bruce Momjian <bruce@momjian.us>)
List pgsql-hackers
Hi list

We attempted to pg_upgrade a database on a replication slave, and got the error:

error while creating link for relation "<schema>.<tablename>" ("/var/lib/postgresql-ext/PG_9.2_201204301/19171/141610397" to "/var/lib/postgresql-ext/PG_9.5_201510051/16401/9911696"): No such file or directory


The missing table turned out to be an unlogged table, and the data file for it was not present on the slave machine. That's reasonable. In our case we are able to start over from a snapshot and drop all the unlogged tables before trying again.

However, this problem was not caught by the `--check` command. I'm looking at the source code and it appears that pg_upgrade does not attempt to verify relation filenodes actually exist before proceeding, whether using --check or not.

Should it? I assume the reasoning is because it would take a long time and perhaps the benefit of doing so would be minimal?


--
Regards,
Craig de Stigter

Developer
Koordinates

pgsql-hackers by date:

Previous
From: Andres Freund
Date:
Subject: Re: [HACKERS] Patch: Write Amplification Reduction Method (WARM)
Next
From: Thomas Munro
Date:
Subject: Re: [HACKERS] ICU integration