Re: BUG #16843: pg_upgrade from 12.5 to 13.1 with extension plperlu failed - Mailing list pgsql-bugs

From GMX LINREG
Subject Re: BUG #16843: pg_upgrade from 12.5 to 13.1 with extension plperlu failed
Date
Msg-id 7912997.NyiUUSuA9g@wolfclan.ang.de
Whole thread Raw
In response to Re: BUG #16843: pg_upgrade from 12.5 to 13.1 with extension plperlu failed  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: BUG #16843: pg_upgrade from 12.5 to 13.1 with extension plperlu failed
List pgsql-bugs
Am Freitag, 29. Januar 2021, 16:04:54 CET schrieb Tom Lane:
> GMX Steffen <steffen.ang@gmx.de> writes:
> > OS Packages:
> > *postgresql*-llvmjit-13-lp152.3.1.noarch
> > *postgresql*12-pldebugger-1.0+git13.ddbce7b-lp152.1.4.x86_64
> > *postgresql*12-llvmjit-12.5-lp152.34.1.x86_64
> > *postgresql*-13-lp152.3.1.noarch
> > *postgresql*12-docs-12.5-lp152.34.1.noarch
> > *postgresql*12-contrib-12.5-lp152.34.1.x86_64
> > *postgresql*13-plperl-13.1-lp152.16.1.x86_64
> > *postgresql*12-server-12.5-lp152.34.1.x86_64
> > *postgresql*-docs-13-lp152.3.1.noarch
> > *postgresql*12-12.5-lp152.34.1.x86_64
> > *postgresql*12-pg_qualstats-2.0.2-lp152.2.3.x86_64
> > *postgresql*12-ip4r-2.4.1+git1.5f9ce88-lp152.8.2.x86_64
> > *postgresql*-server-13-lp152.3.1.noarch
> > *postgresql*12-pg_qualstats-llvmjit-2.0.2-lp152.2.3.x86_64
> > *postgresql*13-docs-13.1-lp152.16.1.noarch
> > *postgresql*13-server-13.1-lp152.16.1.x86_64
> > *postgresql*-contrib-13-lp152.3.1.noarch
> > *postgresql*12-ip4r-llvmjit-2.4.1+git1.5f9ce88-lp152.8.2.x86_64
> > *postgresql*13-13.1-lp152.16.1.x86_64
> > *postgresql*13-llvmjit-13.1-lp152.16.1.x86_64
> > *postgresql*-plperl-13-lp152.3.1.noarch
> > *postgresql*12-pldebugger-llvmjit-1.0+git13.ddbce7b-lp152.1.4.x86_64
> > *postgresql*13-contrib-13.1-lp152.16.1.x86_64
>
> This ... looks like a bit of a mess.  You evidently have three independent
> sets of Postgres packages, but surely there should only be two.  And
> why do they all have "lp152" in the version?  (And why are there only
> two versions of plperl?  And why are some of these "noarch"?  That
> would make sense for the docs subpackage, but not much else.)
>
> The pg_restore trace gives us no more info than we had before.  But
> given this package list, I am suspecting some confusion over which
> version of plperl.so should get loaded.  You might try looking into
> the destination postmaster's log file (not pg_upgrade's user-visible
> output) to see if there is any low-level message from the dynamic
> loader emitted just before it complains about plperlu not existing.
>
>             regards, tom lane

Hello,

- packages like "postgresql*-contrib-13-lp152.3.1.noarch" are meta packages (noarch) and depend to actual installed
version.in this case version 13.  
- lp152 is a label for opensuse leap 15.2

- when run version 12 it use /usr/lib/postgresql12/lib64/plperl.so
for version 13 it's use /usr/lib/postgresql13/lib64/plperl.so

- there is no low-level message from the dynamic loader. the extension can created everytime. And exist in the upgraded
database 

i hope you could read my last email: i resend three times :(
There you can see this:

psql (13.1)
Geben Sie »help« für Hilfe ein.

botdb=# \dL
                       Liste der Sprachen
  Name   | Eigentümer | Vertraut |         Beschreibung
---------+------------+----------+------------------------------
 plpgsql | postgres   | t        | PL/pgSQL procedural language
(1 Zeile)

==> NO LANGUAGE PLPERLU! "CREATE LANGUAGE plperlu" ==> create ONLY an extension!

botdb=# \dx
                         Liste der installierten Erweiterungen
     Name     | Version |   Schema   |                   Beschreibung
--------------+---------+------------+--------------------------------------------------
 hstore       | 1.5     | pg_catalog | data type for storing sets of (key, value) pairs
 pg_cron      | 4.0.4   | public     | Cron-like Job Scheduler for PostgreSQL
 pg_http      | 1.4.1   | public     | A web service for PostgreSQL
 pg_mqtt      | 1.1     | public     | A mqtt client daemon for PostgreSQL
 pg_reporting | 1.1     | public     | A reporting extension for PostgreSQL
 plperlu      | 1.0     | pg_catalog | PL/PerlU untrusted procedural language <====
 plpgsql      | 1.0     | pg_catalog | PL/pgSQL procedural language
(7 Zeilen)

==> EXTENSION plperlu ALREADY CREATED AND EXIST

The command "create language" create NO plperlu language object. ONLY a extension object. Correct?
Therefor it must fail to add a language to an extension! And i think the "create extension" run fine, so that the
commandalter extension / add language combination is only for older postgresql version okay. it is not needed any more. 
The failed upgraded database has the extension plperlu installed! So this is fine too.

best regards thomas steffen





pgsql-bugs by date:

Previous
From: Tom Lane
Date:
Subject: Re: BUG #16843: pg_upgrade from 12.5 to 13.1 with extension plperlu failed
Next
From: Tom Lane
Date:
Subject: Re: BUG #16843: pg_upgrade from 12.5 to 13.1 with extension plperlu failed