Re: Checking for Presence of Required Libraries Fails duringPostgreSQL Upgrade - Mailing list pgsql-general

From Adrian Klaver
Subject Re: Checking for Presence of Required Libraries Fails duringPostgreSQL Upgrade
Date
Msg-id 218736a4-9a36-9e56-67cd-52e55f9ed3ce@aklaver.com
Whole thread Raw
In response to Checking for Presence of Required Libraries Fails during PostgreSQLUpgrade  (TalGloz <glozmantal@gmail.com>)
Responses Re: Checking for Presence of Required Libraries Fails duringPostgreSQL Upgrade  (TalGloz <glozmantal@gmail.com>)
List pgsql-general
On 5/1/20 3:03 PM, TalGloz wrote:
> I'm trying to upgrade my PostgreSQL form 10.2 to 11.7 (and eventually to
> 12.x), when I run:
> 
>   /usr/pgsql-11/bin/pg_upgrade --old-bindir=/usr/pgsql-10/bin/
> --new-bindir=/usr/pgsql-11/bin/ --old-datadir=/var/lib/pgsql/10/data
> --new-datadir=/var/lib/pgsql/11/data --check
> 
> I get:
> 
> Checking for presence of required libraries   fatal
> Your installation references loadable libraries that are missing from the
> new installation.  You can add these libraries to the new installation,
> or remove the functions using them from the old installation.  A list of
> problem libraries is in the file:
>      loadable_libraries.txt"
> 
> my loadable_libraries.txt file shows:
> 
> could not load library "myfunc": ERROR:  could not access file "myfunc": No
> such file or directory
> could not load library "randomness": ERROR:  could not access file
> "randomness": No such file or directory
> could not load library "seal_diff_cpp": ERROR:  could not access file
> "seal_diff_cpp": No such file or directory
> could not load library "seal_mean_cxx": ERROR:  could not access file
> "seal_mean_cxx": No such file or directory
> could not load library "seal_mean_cxx_v2": ERROR:  could not access file
> "seal_mean_cxx_v2": No such file or directory
> could not load library "seal_variance_cxx": ERROR:  could not access file
> "seal_variance_cxx": No such file or directory
> could not load library "seal_diff_benchmark": ERROR:  could not access file
> "seal_diff_benchmark": No such file or Directory
> 
> Running:
> SELECT proname, probin, pronamespace
> FROM pg_proc
> WHERE probin IS NOT NULL AND pronamespace = 2200
> 
> Results in:
> 
> | proname                  | probin                       | pronamespace
> | bytea_size                | randomness              | 2200
> | sum_of_numbers      | myfunc                     | 2200
> | seal_diff_cpp            | seal_diff_cpp             | 2200
> | seal_mean_cxx_v2    | seal_mean_cxx_v2    | 2200
> | seal_variance_cxx     | seal_variance_cxx     | 2200
> | seal_diff_benchmark | seal_diff_benchmark  | 2200
> | seal_mean_cxx         | seal_mean_cxx         | 2200
> 
> All the 7 problematic libraries (.so) are manually created c extension
> functions. I can't just move them to /usr/pgsql-11/lib/ because they we
> compiled with PostgresSQL10 and not 11.

Why not compile them against 11?

Then follow step 5) here:

https://www.postgresql.org/docs/12/pgupgrade.html

> 
> How can I resolve this issue? How can I delete them properly if porting them
> to 11 is a painful process? Deleting them directly form /usr/pgsql-10/lib/
> doesn't help.

If there are objects in the 10 database that depend on the libraries 
then I imagine deleting them won't help.

> 
> 
> 
> --
> Sent from: https://www.postgresql-archive.org/PostgreSQL-general-f1843780.html
> 
> 


-- 
Adrian Klaver
adrian.klaver@aklaver.com



pgsql-general by date:

Previous
From: TalGloz
Date:
Subject: Checking for Presence of Required Libraries Fails during PostgreSQLUpgrade
Next
From: Bruce Momjian
Date:
Subject: Re: Checking for Presence of Required Libraries Fails duringPostgreSQL Upgrade