postgrespro/pg_pathman

undefined symbol: is_dummy_rel

AdmiralUA opened this issue · 6 comments

День добрый.
Пытаюсь поставить pg_pathman на сервер, использую инструкцию из вашего README.md. Склонил, сделал make, добавил в postgresql.conf. Но при попытке запуска postgres выдает ошибку

FATAL: could not load library "/usr/lib/postgresql/11/lib/pg_pathman.so": /usr/lib/postgresql/11/lib/pg_pathman.so: undefined symbol: is_dummy_rel

Прошу проинструктировать, что делать в этой ситуации. Спасибо.

PostgreSQL 11.2 (Debian 11.2-1.pgdg90+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516, 64-bit

I have the same problem on my Ubuntu 14.04. PostgreSQL 11 didn't start with pg_pathman:

$ sudo service postgresql start 11  
 * Starting PostgreSQL 11 database server                                                                                                                                                                                                                                       * Error: /usr/lib/postgresql/11/bin/pg_ctl /usr/lib/postgresql/11/bin/pg_ctl start -D /var/lib/postgresql/11/main -l /var/log/postgresql/postgresql-11-main.log -s -o  -c config_file="/etc/postgresql/11/main/postgresql.conf"  exited with status 1: 
2019-07-22 13:53:18 +03 FATAL:  could not load library "/usr/lib/postgresql/11/lib/pg_pathman.so": /usr/lib/postgresql/11/lib/pg_pathman.so: undefined symbol: is_dummy_rel
2019-07-22 13:53:18 +03 LOG:  database system is shut down
pg_ctl: could not start server
Examine the log output.

pg_pathman version :

~/devel/pg_pathman (b75fbe7) $ git status
HEAD detached at 1.5.8

Environment info:

$ lsb_release -a                  
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04.5 LTS
Release:        14.04
Codename:       trusty
$ uname -a      
Linux aromanov 3.13.0-153-generic #203-Ubuntu SMP Thu Jun 14 08:52:28 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
$ psql 
=> SELECT version();
...
 PostgreSQL 11.2 (Ubuntu 11.2-1.pgdg14.04+1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 4.8.4-2ubuntu1~14.04.4) 4.8.4, 64-bit │

I solved my problem! :)
I had on my system PostgreSQL 11.2 (postgresql-11 package) and development filed for PostgreSQL 11.3 (postgresql-server-dev-11 package):

$ pg_config | grep VERSION
VERSION = PostgreSQL 11.3 (Ubuntu 11.3-1.pgdg14.04+1)
$ psql 
=> SELECT version();
...
 PostgreSQL 11.2 (Ubuntu 11.2-1.pgdg14.04+1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 4.8.4-2ubuntu1~14.04.4) 4.8.4, 64-bit

I upgraded of postgresql-11 package(sudo apt-get install postgresql-11), rebuild pg_pathman and it works!

@AdmiralUA , check version of postgresql-11 and postgresql-server-dev-11, maybe you have the same issue.

Thanks, I'll check it later.

So, you check it?

Yeah, Postgres 11 at some point removed is_dummy_rel and added it back in 11.3. So just do minor upgrade and you'll be fine.

select version();
                                                 version                                                 
---------------------------------------------------------------------------------------------------------
 PostgreSQL 10.6 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28), 64-bit
(1 row)

ERROR: could not load library "/usr/pgsql-10/lib/pg_pathman.so": /usr/pgsql-10/lib/pg_pathman.so: undefined symbol: is_dummy_rel