Thread: BUG #13861: Database dump does not load when both plpython2u and plpython3u functions are used

BUG #13861: Database dump does not load when both plpython2u and plpython3u functions are used

From
roman.vanicek@gmail.com
Date:
The following bug has been logged on the website:

Bug reference:      13861
Logged by:          Roman Vanicek
Email address:      roman.vanicek@gmail.com
PostgreSQL version: 9.5.0
Operating system:   Linux Ubuntu 15.10
Description:

Use case:
I have a database that uses both plpython2u and plpython3u extensions and
some functions using them.

When trying do restore the database on 9.5 server after dump, it produces
fatal error.

On postgresql-9.4:
pg_dumpall > all.dump

On postgresql-9.5:
psql < all.dump

Result:
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.
connection to server was lost
On Wed, Jan 13, 2016 at 4:42 AM,  <roman.vanicek@gmail.com> wrote:
> Use case:
> I have a database that uses both plpython2u and plpython3u extensions and
> some functions using them.
>
> When trying do restore the database on 9.5 server after dump, it produces
> fatal error.
>
> On postgresql-9.4:
> pg_dumpall > all.dump
>
> On postgresql-9.5:
> psql < all.dump
>
> Result:
> 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.
> connection to server was lost

A problem has been fixed in this area a couple of days back:

commit: db8fa56d6ad15621ad4f74667bfd59533408ce16
author: Tom Lane <tgl@sss.pgh.pa.us>
date: Mon, 11 Jan 2016 19:55:39 -0500
Avoid dump/reload problems when using both plpython2 and plpython3.

Commit 803716013dc1350f installed a safeguard against loading plpython2
and plpython3 at the same time, but asserted that both could still be
used in the same database, just not in the same session.  However, that's
not actually all that practical because dumping and reloading will fail
(since both libraries necessarily get loaded into the restoring session).
pg_upgrade is even worse, because it checks for missing libraries by
loading every .so library mentioned in the entire installation into one
session, so that you can have only one across the whole cluster.

You may want to just wait for 9.5.1.
--
Michael