pg_upgrade complains about not being able to find $libdir/plpython3
when upgrading a 9.4 cluster that has both python2 and python3 used.
Both the 9.4 and 9.5 PGs have been built from source with python2/3 in
the recommended way and the plpython3.so is present in /usr/local/pgsql/lib.
I dropped the python2 database but still got the problem.
The session:
------------
postgres@mayon:~$ pg_upgrade -b /usr/local/pgsql9.4/bin -B /usr/local/pgsql/bin -d /mnt/pgdata9.4 -D /mnt/pgdata
Performing Consistency Checks
-----------------------------
Checking cluster versions ok
Checking database user is the install user ok
Checking database connection settings ok
Checking for prepared transactions ok
Checking for reg* system OID user data types ok
Checking for contrib/isn with bigint-passing mismatch ok
Creating dump of global objects ok
Creating dump of database schemas
ok
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
Failure, exiting
postgres@mayon:~$ cat *.txt
Could not load library "$libdir/plpython3"
FATAL: Python major version mismatch in session
DETAIL: This session has previously used Python major version 2, and it is now attempting to use Python major version
3.
HINT: Start a new session to use a different Python major version.
server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.