Re: Pg_upgrade error could not load library from 7.14/8.4 to 10.10 version

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Ekaterina Amez <ekaterina(dot)amez(at)zunibal(dot)com>
Cc: pgsql-admin(at)lists(dot)postgresql(dot)org
Subject: Re: Pg_upgrade error could not load library from 7.14/8.4 to 10.10 version
Date: 2019-09-19 13:57:09
Message-ID: 22046.1568901429@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

Ekaterina Amez <ekaterina(dot)amez(at)zunibal(dot)com> writes:
> El 19/9/19 a las 10:07, Achilleas Mantzios escribió:
>> On 19/9/19 10:49 π.μ., Ekaterina Amez wrote:
>>> 2019-09-19 08:53:50.345 CEST [2283] postgres(at)template1 ERROR: could not load library "/usr/lib/postgresql/8.4/lib/plpgsql.so": /usr/lib/postgresql/8.4/lib/plpgsql.so: undefined symbol: SPI_push

This error is clearly due to trying to load the 8.4 version of plpgsql.so
into the v10 server. What seems like the likely cause is that the
pg_proc.probin entries for the plpgsql support functions were literally
"/usr/lib/postgresql/8.4/lib/plpgsql.so", rather than something that
would adapt to the new version. The preferred way to declare such
functions, for a long time, has been with probin = "$libdir/plpgsql",
relying on the server to subsitute an appropriate path for $libdir.

> With these results, finally I've:
>     1- modified template1 in PG 8.4 server to include plpgsql language,
> so it can be inherited in new databases created from this template.
>     2- Dropped and recreated my database (let's call it newdb).

This probably fixed it by ensuring that the plpgsql support functions
were declared with the standard value of probin.

> The conclusion is that I can avoid the use of plpgsql.so library. My
> question now would be related about the creation of the language in
> version 8.4: is it better to create it at template level or at database
> level?

I would not sweat too much about this, since you don't intend to keep
using 8.4 (or at least I hope not). Since 9.0, plpgsql is automatically
installed at initdb time and there's no need for an additional copy.

regards, tom lane

In response to

Responses

Browse pgsql-admin by date

  From Date Subject
Next Message Achilleas Mantzios 2019-09-19 14:07:22 Re: Pg_upgrade error could not load library from 7.14/8.4 to 10.10 version
Previous Message Achilleas Mantzios 2019-09-19 13:31:07 Re: Pg_upgrade error could not load library from 7.14/8.4 to 10.10 version