Обсуждение: BUG #15686: pg_dump: server version: 11.2; pg_dump version: 11.2
The following bug has been logged on the website: Bug reference: 15686 Logged by: Andrew Davis Email address: developerandy@gmail.com PostgreSQL version: 11.2 Operating system: RHEL 6.10 Description: I recently installed PostgreSQL 11.2 (we were formerly using 9.5.3) and ran our tests. One of our tests performs a `pg_dump` and I receive the following error: 2019-03-08 16:43:54.417 [ 123 ] [INFO ] Starting database (dir) dump with: /path/to/postgresql/bin/pg_dump --file /path/to/file database_name 2019-03-08 16:43:54.429 [ 123 ] [ERROR] pg_dump: server version: 11.2; pg_dump version: 11.2 2019-03-08 16:43:54.429 [ 123 ] [ERROR] pg_dump: aborting because of server version mismatch The server and pg_dump versions are the same and I'm not sure how to proceed. Is there something in the schema generated from Rails that may be causing this? Thank you for your time. Andy
PG Bug reporting form <noreply@postgresql.org> writes: > I recently installed PostgreSQL 11.2 (we were formerly using 9.5.3) and ran > our tests. One of our tests performs a `pg_dump` and I receive the following > error: > 2019-03-08 16:43:54.417 [ 123 ] [INFO ] Starting database (dir) dump with: > /path/to/postgresql/bin/pg_dump --file /path/to/file database_name > 2019-03-08 16:43:54.429 [ 123 ] [ERROR] pg_dump: server version: 11.2; > pg_dump version: 11.2 > 2019-03-08 16:43:54.429 [ 123 ] [ERROR] pg_dump: aborting because of server > version mismatch That's pretty bizarre-looking, isn't it. Looking at the code, I suspect that the problem is that your pg_dump is linking to an old version of libpq.so. Although what pg_dump is printing for "server version" is the string received from the server, the actual version comparison is done numerically and it depends on how libpq's PQserverVersion() function parsed the string. In the 9.5 branch, the earliest version that would have done the right thing for new-style two-part server version numbers was 9.5.4. Hence, you need to make sure your old libpq library gets replaced by the new installation, or that your loader search path finds wherever you've decided to put the new library. regards, tom lane
Thanks, Tom!
I found out what was going on but wasn't sure how to update my bug-report.
I still had some 9.5.3 items in my PATH, LD_LIBRARY_PATH, and LIBRARY_PATH. Even though I was using the proper version of pg_dump and the database, it must have picked up on some of those.
Thank you so much for investigating!
Andy
On Mon, Mar 11, 2019 at 11:41 AM Tom Lane <tgl@sss.pgh.pa.us> wrote:
PG Bug reporting form <noreply@postgresql.org> writes:
> I recently installed PostgreSQL 11.2 (we were formerly using 9.5.3) and ran
> our tests. One of our tests performs a `pg_dump` and I receive the following
> error:
> 2019-03-08 16:43:54.417 [ 123 ] [INFO ] Starting database (dir) dump with:
> /path/to/postgresql/bin/pg_dump --file /path/to/file database_name
> 2019-03-08 16:43:54.429 [ 123 ] [ERROR] pg_dump: server version: 11.2;
> pg_dump version: 11.2
> 2019-03-08 16:43:54.429 [ 123 ] [ERROR] pg_dump: aborting because of server
> version mismatch
That's pretty bizarre-looking, isn't it. Looking at the code, I suspect
that the problem is that your pg_dump is linking to an old version of
libpq.so. Although what pg_dump is printing for "server version" is
the string received from the server, the actual version comparison is
done numerically and it depends on how libpq's PQserverVersion() function
parsed the string. In the 9.5 branch, the earliest version that would
have done the right thing for new-style two-part server version numbers
was 9.5.4.
Hence, you need to make sure your old libpq library gets replaced by
the new installation, or that your loader search path finds wherever
you've decided to put the new library.
regards, tom lane