Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

installation problem in centos 7 - postgres 11.10 #140

Open
ztiagoxbr opened this issue Jan 15, 2021 · 14 comments
Open

installation problem in centos 7 - postgres 11.10 #140

ztiagoxbr opened this issue Jan 15, 2021 · 14 comments

Comments

@ztiagoxbr
Copy link

upon completing the package installation, and running ''create extension mongo_fdw'' on postgres, the following error occurs:

ERROR: could not load library "/usr/pgsql-11/lib/mongo_fdw.so": /usr/pgsql-11/lib/mongo_fdw.so: undefined symbol: mongoc_collection_find_with_opts
SQL state: XX000

@vaibhavdalvi93
Copy link

Thanks @ztiagoxbr for reporting an issue.

Can you provide operating system and mongo_fdw version details? which will help us to investigate this issue further.

@ztiagoxbr
Copy link
Author

@vaibhavdalvi93
for sure, the information is as follows:

CentOS Linux release 7.7.1908 (Core)
mongo_fdw is in the latest version, I use it using git clone https://github.com/EnterpriseDB/mongo_fdw.git
PostgreSQL 11.10 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39), 64-bit

@vaibhavdalvi93
Copy link

Thanks for the information.

Have you did mongo_fdw installation through recently released RPM or downloaded source from HEAD and compiled the source by your own?
If you did source compilation then you have used "autogen.sh --with-master" script?

I am asking this because released version has mongo-c-driver(mongo client) version 1.9.5 where HEAD has 1.17.3.

@ztiagoxbr
Copy link
Author

that's right, i compiled it using "autogen.sh --with-master"

however the driver was installed, along with the following items: cmake3, gcc, gcc-c++, openssl-devel cyrus-sasl-devel, pkgconfig, mongo-c-driver, mongo-c-driver-devel, mongo-c-driver-libs, libbson, libbson-devel, git, postgresql-common, epel-release-latest-7.noarch.rpm, centos-release-scl, postgresql11-devel, git gcc automake autoconf libtool.

and the command to download the mongo_fdw package: git clone https://github.com/EnterpriseDB/mongo_fdw.git --recursive

@vaibhavdalvi93
Copy link

Thanks.

I think you are using old version of driver which don't have "mongoc_collection_find_with_opts" defined in it. I mean you are using old shared library available in /usr/local/lib.

What is "LD_LBRARY_PATH" set when you started the postgres server?

The environment variable LD_LIBRARY_PATH should have "/usr/local/lib64" path because this location contains required latest driver library i.e. libmongoc.so. After setting this variable, start the postgres server. With the latest changes, mongoc driver and bson libraries gets stored in "/usr/local/lib64" location.

This may resolve your problem.

@ztiagoxbr
Copy link
Author

I managed to solve this problem by declaring this value, but now another one appears to me.

could not load library "/usr/pgsql-11/lib/mongo_fdw.so": /usr/local/lib64/libmongoc-1.0.so.0: version `LIBMONGOC_1.0' not found (required by /usr/pgsql-11/lib/mongo_fdw.so)

@rajkumarraghuwanshi
Copy link

Could you provide some more information so we can debug it more.

  1. can you confirm if you installed postgresql11 using yum packages.
  2. did you get any error while compiling mongo_fdw sources.
  3. current libmongo-c driver version (cat mongo_fdw/mongo-c-driver/VERSION_CURRENT).
  4. output of ldd /usr/pgsql-11/lib/mongo_fdw.so

@ztiagoxbr
Copy link
Author

1 - yes, the installation was done through the yum repository

2 - from what I saw, then do a compilation it returns this following error:

src/mongoc/mongoc-read-prefs.c: In function 'mongoc_read_prefs_set_mode':
src/mongoc/mongoc-read-prefs.c:49:4: warning: implicit declaration of function 'bson_return_if_fail' [-Wimplicit-function-declaration]
bson_return_if_fail(read_prefs);
^
CC src/mongoc/libmongoc_1_0_la-mongoc-write-command.lo
CC src/mongoc/libmongoc_1_0_la-mongoc-rand.lo
CC src/mongoc/libmongoc_1_0_la-mongoc-scram.lo
CC src/mongoc/libmongoc_1_0_la-mongoc-stream-tls.lo
src/mongoc/mongoc-stream-tls.c: In function '_mongoc_stream_tls_check_closed':
src/mongoc/mongoc-stream-tls.c:830:4: warning: implicit declaration of function 'bson_return_val_if_fail' [-Wimplicit-function-declaration]
bson_return_val_if_fail(stream, -1);
^
CC src/mongoc/libmongoc_1_0_la-mongoc-ssl.lo
CC src/mongoc/libmongoc_1_0_la-mongoc-sasl.lo
CCLD libmongoc-1.0.la
CC tests/test_load-test-load.o
CCLD test-load
./.libs/libmongoc-priv.so: undefined reference to bson_return_if_fail' ./.libs/libmongoc-priv.so: undefined reference to bson_return_val_if_fail'
collect2: error: ld returned 1 exit status
make[1]: ** [test-load] Erro 1

3- 1.17.3

  1. result below:
    linux-vdso.so.1 => (0x00007ffcc4bf8000)
    libmongoc-1.0.so.0 => /lib64/libmongoc-1.0.so.0 (0x00007f5bfc7a8000)
    libbson-1.0.so.0 => /lib64/libbson-1.0.so.0 (0x00007f5bfc574000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f5bfc1a6000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f5bfcc11000)
    librt.so.1 => /lib64/librt.so.1 (0x00007f5bfbf9e000)
    libssl.so.10 => /lib64/libssl.so.10 (0x00007f5bfbd2c000)
    libcrypto.so.10 => /lib64/libcrypto.so.10 (0x00007f5bfb8c9000)
    libsasl2.so.3 => /lib64/libsasl2.so.3 (0x00007f5bfb6ac000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f5bfb490000)
    libm.so.6 => /lib64/libm.so.6 (0x00007f5bfb18e000)
    libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007f5bfaf41000)
    libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007f5bfac58000)
    libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007f5bfaa54000)
    libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007f5bfa821000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00007f5bfa61d000)
    libz.so.1 => /lib64/libz.so.1 (0x00007f5bfa407000)
    libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f5bfa1ed000)
    libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f5bf9fb6000)
    libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007f5bf9da6000)
    libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007f5bf9ba2000)
    libfreebl3.so => /lib64/libfreebl3.so (0x00007f5bf999f000)
    libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f5bf9778000)
    libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f5bf9516000)

@vaibhavdalvi93
Copy link

Thanks for more information.

Looks like you have installed mongoc-driver separately.

Please note that you don't need to install mongoc driver separately. The script "autogen.sh --with-master" do take care of building and installing driver as well.

Please follow below steps:
Download source code, run autogen.sh script(--with-master), Set LD_LIBRAY_PATH to '/usr/local/lib64' and then compile and install mongo_fdw code.

Before all this please remove all older mongoc driver libraries from your machine.

Hope, this helps.

@ztiagoxbr
Copy link
Author

I removed all installations of the mongoc driver but now I get this error when running ./autogen.sh --with-master

2021-01-21 09:14:40 (609 KB/s) - “json-c-0.15-20200726.tar.gz” salvo [348261]

/home/user/mongo_fdw
./autogen.sh: line 80: cmake3: comando não encontrado
make: *** Sem regra para processar o alvo install'. Pare. ./autogen.sh: line 69: cmake3: comando não encontrado make: *** Sem regra para processar o alvo install'. Pare.
Done

@vaibhavdalvi93
Copy link

Looks like cmake3 is not installed on your machine. Please install it to make this work.

@ztiagoxbr
Copy link
Author

but cmake3 is installed

The cmake3-3.17.5-1.el7.x86_64 package is already installed in its latest version

@rajkumarraghuwanshi
Copy link

rajkumarraghuwanshi commented Jan 25, 2021 via email

@vaibhavdalvi93
Copy link

Hi @ztiagoxbr ,

Could you please check if you're still facing reported issue?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants