From: | "Hayato Kuroda (Fujitsu)" <kuroda(dot)hayato(at)fujitsu(dot)com> |
---|---|
To: | "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Regression test fails when 1) old PG is installed and 2) meson/ninja build is used |
Date: | 2025-04-11 07:53:07 |
Message-ID: | OSCPR01MB14966D8A33387F4561F0FB9CAF5B62@OSCPR01MB14966.jpnprd01.prod.outlook.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Dear hackers,
While creating patches for older branches I found the $SUBJECT. I do not have much knowledge
for meson thus I'm not sure it is intentional.
Reproducer
=======
I could reproduce the failure with steps:
1. install old PG, e.g., PG16. To your system. .so file must be put on your $$LD_LIBRARY_PATH.
2. build newer PG, e.g., master, with meson build system [1].
3. run regression test and ERROR would be reported [2].
This issue does not happen when I used autoconf/make build system.
Analysis
=====
According to the log, the instance could be started but psql could not work correctly:
```
----------------------------------- stdout -----------------------------------
# executing test in /home/hayato/builddir/testrun/regress/regress group regress test regress
# initializing database system by copying initdb template
# using temp instance on port 40047 with PID 949892
Bail out!# test failed
----------------------------------- stderr -----------------------------------
psql: symbol lookup error: psql: undefined symbol: PQservice
# command failed: "psql" -X -q -c "CREATE DATABASE \"regression\" ...
(test program exited with status code 2)
==============================================================================
```
It looks like that psql required the function `PQservice` in the library but it
could not find in the used libpq.so. Since the function has been introduced since
PG18, I suspect psql tried to link with .so file for old PG (installed one).
IIUC each commands should refer libraries exist in tmp_install, not the system's one.
Is this an issue to be solved on PG community, or specification of meson/ninja?
Or... could it happen only on my environment?
Note
====
I'm using AlmaLinux 9.5. I can give more detail if needed.
[1]:
```
$ meson setup -Dinjection_points=true -Dcassert=true --optimization=0 --debug ../postgres/
The Meson build system
Version: 0.63.3
...
Project name: postgresql
Project version: 18devel
...
$ ninja
...
```
[2]:
```
$ meson test --suite setup --suite regress
ninja: Entering directory `/home/hayato/builddir'
ninja: no work to do.
1/4 postgresql:setup / tmp_install OK 0.82s
2/4 postgresql:setup / install_test_files OK 0.05s
3/4 postgresql:setup / initdb_cache OK 1.88s
4/4 postgresql:regress / regress/regress ERROR 3.66s exit status 2
...
Ok: 3
Expected Fail: 0
Fail: 1
Unexpected Pass: 0
Skipped: 0
Timeout: 0
```
Best regards,
Hayato Kuroda
FUJITSU LIMITED
From | Date | Subject | |
---|---|---|---|
Next Message | Nazir Bilal Yavuz | 2025-04-11 08:01:21 | Re: Add pg_buffercache_evict_all() and pg_buffercache_mark_dirty[_all]() functions |
Previous Message | jian he | 2025-04-11 07:41:54 | disallow ALTER VIEW SET DEFAULT when the corresponding base relation column is a generated column |