Opened 6 years ago

Closed 6 years ago

#4097 closed task (fixed)

binary upgrade fail going from 10 (2.4) to 11 (head) (2.5)

Reported by: robe Owned by: robe
Priority: blocker Milestone: PostGIS 2.5.0
Component: build Version: master
Keywords: Cc:

Description

This I did by copying the pg 11 2.5 binaries (renaming to 2.4) and doing a pg_upgrade from pg 10.1 to 11beta1 (aroundish a little higher than beta1).

It failed in an unexpected location so could be my setup at fault and nothing in our code.

pg_restore: connecting to database for restore
pg_restore: dropping DATABASE PROPERTIES postgres
pg_restore: dropping DATABASE postgres
pg_restore: creating DATABASE "postgres"
pg_restore: connecting to new database "postgres"
pg_restore: connecting to database "postgres" as user "postgres"
pg_restore: creating COMMENT "DATABASE "postgres""
pg_restore: creating DATABASE PROPERTIES "postgres"
pg_restore: connecting to new database "postgres"
pg_restore: connecting to database "postgres" as user "postgres"
pg_restore: creating pg_largeobject "pg_largeobject"
pg_restore: creating pg_largeobject_metadata "pg_largeobject_metadata"
pg_restore: creating EXTENSION "postgis"
pg_restore: creating COMMENT "EXTENSION "postgis""
pg_restore: creating TYPE "public.addbandarg"
pg_restore: creating COMMENT "public.TYPE "addbandarg""
pg_restore: creating TYPE "public.agg_count"
pg_restore: creating SHELL TYPE "public.raster"
pg_restore: creating FUNCTION "public.raster_in("cstring")"
pg_restore: [archiver (db)] Error while PROCESSING TOC:
pg_restore: [archiver (db)] Error from TOC entry 545; 1255 33854 FUNCTION raster_in("cstring") postgres
pg_restore: [archiver (db)] could not execute query: FATAL:  terminating connection due to administrator command
server closed the connection unexpectedly
	This probably means the server terminated abnormally
	before or while processing the request.
    Command was: CREATE FUNCTION "public"."raster_in"("cstring") RETURNS "public"."raster"
    LANGUAGE "c" IMMUTABLE STRICT PARALLEL SAFE
    AS '$libdir/rtpostgis-2.5', 'RASTER_in';

-- For binary upgrade, handle extension membership the hard way
ALTER EXTENSION "postgis" ADD FUNCTION "public"."raster_in"("cstring");

I'm going to try next doing the regular binary upgrade, by that I mean upgrading my pg 10 to PostGIS 2.5 and then migrating to PostgreSQL 11 PostGIS 2.5

Change History (8)

comment:1 by robe, 6 years ago

Priority: mediumblocker

comment:2 by robe, 6 years ago

okay I reverted back to my old pg11, and the above didn't crash so I think that was just something else.

This is the error I was expecting which I got second time around: (note this is copying the postgis-2.5 to postgis-2.4) so they are no longer ABI compatible.

pg_restore: creating SHELL TYPE "public.pgis_abs"
pg_restore: creating FUNCTION "public.pgis_abs_in("cstring")"
pg_restore: [archiver (db)] Error while PROCESSING TOC:
pg_restore: [archiver (db)] Error from TOC entry 339; 1255 16453 FUNCTION pgis_abs_in("cstring") postgres
pg_restore: [archiver (db)] could not execute query: ERROR:  could not find function "pgis_abs_in" in file "C:/ming64gcc48/projects/postgresql/rel/pg11w64gcc48/lib/postgis-2.4.dll"
    Command was: CREATE FUNCTION "public"."pgis_abs_in"("cstring") RETURNS "public"."pgis_abs"
    LANGUAGE "c" IMMUTABLE STRICT PARALLEL SAFE
    AS '$libdir/postgis-2.4', 'pgis_abs_in';

-- For binary upgrade, handle extension membership the hard way
ALTER EXTENSION "postgis" ADD FUNCTION "public"."pgis_abs_in"("cstring");


Last edited 6 years ago by robe (previous) (diff)

comment:3 by robe, 6 years ago

In 16591:

put back pgis_abs_in and pgis_abs_out as stubs to maintain lib compatibility with PostGIS 2.4 and below
References #4097

comment:4 by robe, 6 years ago

Okay I put these back and that got rid of the pgis_abs error, but I'm still getting troubling crashes in raster and in different location from what I got earlier.

pg_restore: creating COMMENT "public.FUNCTION "addgeometrycolumn"("catalog_name" character varying, "schema_name" character varying, "table_name" character varying, "column_name" character varying, "new_srid_in" integer, "new_type" character varying, "new_dim" integer, "use_typmod" boolean)"
pg_restore: creating FUNCTION "public.addoverviewconstraints("name", "name", "name", "name", integer)"
pg_restore: creating COMMENT "public.FUNCTION "addoverviewconstraints"("ovtable" "name", "ovcolumn" "name", "reftable" "name", "refcolumn" "name", "ovfactor" integer)"
pg_restore: creating FUNCTION "public.addoverviewconstraints("name", "name", "name", "name", "name", "name", integer)"
pg_restore: creating COMMENT "public.FUNCTION "addoverviewconstraints"("ovschema" "name", "ovtable" "name", "ovcolumn" "name", "refschema" "name", "reftable" "name", "refcolumn" "name", "ovfactor" integer)"
pg_restore: creating FUNCTION "public.addrasterconstraints("name", "name", "text"[])"
pg_restore: creating COMMENT "public.FUNCTION "addrasterconstraints"("rasttable" "name", "rastcolumn" "name", VARIADIC "constraints" "text"[])"
pg_restore: creating FUNCTION "public.addrasterconstraints("name", "name", "name", "text"[])"
pg_restore: creating COMMENT "public.FUNCTION "addrasterconstraints"("rastschema" "name", "rasttable" "name", "rastcolumn" "name", VARIADIC "constraints" "text"[])"
pg_restore: creating FUNCTION "public.addrasterconstraints("name", "name", boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean)"
pg_restore: [archiver (db)] Error while PROCESSING TOC:
pg_restore: [archiver (db)] Error from TOC entry 1172; 1255 16806 FUNCTION addrasterconstraints("name", "name", boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean) postgres
pg_restore: [archiver (db)] could not execute query: FATAL:  terminating connection due to administrator command
server closed the connection unexpectedly
	This probably means the server terminated abnormally
	before or while processing the request.
    Command was: ALTER FUNCTION "public"."addrasterconstraints"("rasttable" "name", "rastcolumn" "name", "srid" boolean, "scale_x" boolean, "scale_y" boolean, "blocksize_x" boolean, "blocksize_y" boolean, "same_alignment" boolean, "regular_blocking" boolean, "num_bands" boolean, "pixel_types" boolean, "nodata_values" boolean, "out_db" boolean, "extent" boolean) OWNER TO postgres;


command: "C:\ming64gcc48\projects\postgresql\rel\pg11w64gcc48\bin/pg_restore" --port 5448 --username postgres --clean --create --exit-on-error --verbose --dbname template1 "pg_upgrade_dump_12938.custom" >> "pg_upgrade_dump_12938.log" 2>&1

So I'll leave this open until I figure out what's up here.

comment:5 by robe, 6 years ago

Type: defecttask

comment:6 by robe, 6 years ago

Okay someone took out this function so upgrade (by flipping the lib binaary) fails

pg_restore: [archiver (db)] Error from TOC entry 1175; 1255 17673 FUNCTION st_asbinary("public"."raster", boolean) postgres
pg_restore: [archiver (db)] could not execute query: ERROR:  could not find function "RASTER_to_binary" in file "C:/ming64gcc81/projects/postgresql/rel/pg11w64gcc81/lib/rtpostgis-2.4.dll"
    Command was: CREATE FUNCTION "public"."st_asbinary"("public"."raster", "outasin" boolean DEFAULT false) RETURNS "bytea"
    LANGUAGE "c" IMMUTABLE STRICT PARALLEL SAFE
    AS '$libdir/rtpostgis-2.4', 'RASTER_to_binary';

comment:7 by strk, 6 years ago

And remind me why this is a problem ? Are you preparing to drop minor from library version ?

comment:8 by robe, 6 years ago

Resolution: fixed
Status: assignedclosed

In 16835:

Stamp date of release.
Put in legacy stub function for RASTER_to_binary to allow pg upgrade (newer lib)
Closes #4097

Note: See TracTickets for help on using tickets.