Skip to content

Update from 1.1 to 1.4.7 causes segmentation fault #135

@mdurbha72

Description

@mdurbha72

Problem description

Hello, I am trying to update pg_pathman 1.1 version on Postgres 9.5.6 to the latest pg_pathman 1.4.7

  1. I git cloned the 1.4.7 into a local directory

  2. I ran the command below -
    [root@xxx pg_pathman]# make install USE_PGXS=1
    /usr/bin/mkdir -p '/usr/pgsql-9.5/lib'
    /usr/bin/mkdir -p '/usr/pgsql-9.5/share/extension'
    /usr/bin/mkdir -p '/usr/pgsql-9.5/share/extension'
    /usr/bin/install -c -m 755 pg_pathman.so '/usr/pgsql-9.5/lib/pg_pathman.so'
    /usr/bin/install -c -m 644 .//pg_pathman.control '/usr/pgsql-9.5/share/extension/'
    /usr/bin/install -c -m 644 .//pg_pathman--1.0--1.1.sql .//pg_pathman--1.1--1.2.sql .//pg_pathman--1.2--1.3.sql .//pg_pathman--1.3--1.4.sql pg_pathman--1.4.sql '/usr/pgsql-9.5/share/extension/'

  3. I restarted Postgres

  4. Ran the command below. It fails with the error below and crashes Postgres instance. I tried it a couple of times and it still fails with an instance crash. Can you please help?

userdb=# ALTER EXTENSION pg_pathman UPDATE TO "1.4"; SET pg_pathman.enable = t
WARNING: Don't forget to execute "SET pg_pathman.enable = t" to activate pg_pathman
server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
The connection to the server was lost. Attempting reset: Failed.
->

--output from pg_log file -

2017-11-19 02:46:38 UTC [21603]: [1-1] [postgres] [dev_db] ERROR: XX000: pg_pathman's Pl/PgSQL frontend is incompatible with its shared library
2017-11-19 02:46:38 UTC [21603]: [2-1] [postgres] [dev_db] DETAIL: consider performing an update procedure
2017-11-19 02:46:38 UTC [21603]: [3-1] [postgres] [dev_db] HINT: pg_pathman will be disabled to allow you to resolve this issue
2017-11-19 02:46:38 UTC [21603]: [4-1] [postgres] [dev_db] LOCATION: validate_sql_facade_version, init.c:1297
2017-11-19 02:46:38 UTC [21603]: [5-1] [postgres] [dev_db] STATEMENT: select * from pg_extension;
2017-11-19 02:47:17 UTC [21603]: [6-1] [postgres] [dev_db] LOG: 00000: statement: ALTER EXTENSION pg_pathman UPDATE TO "1.4";
2017-11-19 02:47:17 UTC [21603]: [7-1] [postgres] [dev_db] LOCATION: exec_simple_query, postgres.c:946
2017-11-19 02:47:18 UTC [21603]: [8-1] [postgres] [dev_db] WARNING: 01000: Don't forget to execute "SET pg_pathman.enable = t" to activate pg_pathman
2017-11-19 02:47:18 UTC [21603]: [9-1] [postgres] [dev_db] LOCATION: exec_stmt_raise, pl_exec.c:3216
2017-11-19 02:47:18 UTC [21591]: [6-1] [] [] LOG: 00000: server process (PID 21603) was terminated by signal 11: Segmentation fault
2017-11-19 02:47:18 UTC [21591]: [7-1] [] [] DETAIL: Failed process was running: ALTER EXTENSION pg_pathman UPDATE TO "1.4";
2017-11-19 02:47:18 UTC [21591]: [8-1] [] [] LOCATION: LogChildExit, postmaster.c:3486
2017-11-19 02:47:18 UTC [21591]: [9-1] [] [] LOG: 00000: terminating any other active server processes
2017-11-19 02:47:18 UTC [21591]: [10-1] [] [] LOCATION: HandleChildCrash, postmaster.c:3206
2017-11-19 02:47:18 UTC [21597]: [3-1] [] [] WARNING: 57P02: terminating connection because of crash of another server process
2017-11-19 02:47:18 UTC [21597]: [4-1] [] [] DETAIL: The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory.

Environment

select * from pg_extension where extname = 'pg_pathman';
extname | extowner | extnamespace | extrelocatable | extversion | extconfig | extcondition
------------+----------+--------------+----------------+------------+---------------------+--------------
pg_pathman | 10 | 2200 | f | 1.1 | {40128019,40128028} | {"",""}
(1 row)

select version();
version

PostgreSQL 9.5.6 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-11), 64-bit
(1 row)

SELECT pgpro_version();
^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.

dev_db=# SELECT get_pathman_lib_version();
ERROR: function get_pathman_lib_version() does not exist
LINE 1: SELECT get_pathman_lib_version();
^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions