Dear all,
... small update here (FWIW) - it is not even required to have some test data / test database.
A very simple 'select pg_jit_available()' is enough to come up with this error.
psql (13.9)
Type "help" for help.
postgres=# select version();
version
-------------------------------------------------------------------------------------------------------------
PostgreSQL 13.9 on x86_64-apple-darwin, compiled by Apple clang version 12.0.5 (clang-1205.0.22.11), 64-bit
(1 row)
postgres=# select pg_jit_available();
ERROR: could not load library "/Users/frank/postgres/postgresql-13.9/lib/postgresql/llvmjit.so": dlopen(/Users/frank/postgres/postgresql-13.9/lib/postgresql/llvmjit.so, 10): Library not loaded: @loader_path/../..//opt/local/lib/libncurses.6.dylib
Referenced from: /Users/frank/postgres/postgresql-13.9/lib/postgresql/llvmjit.so
Reason: no suitable image found. Did find:
file system relative paths not allowed in hardened programs
postgres=#
Additionally - this just works on 14.6 and 15.1 - likeley because they come without JIT capabilites ( pg_jit_available is false there - while jit = on for both ).
It also works on 12.13 ( where jit is on and pg_jit_available defaults to true ).
cheers,
Frank Reppin
The following bug has been logged on the website:
Bug reference: 17733
Logged by: Frank Reppin
Email address: frankreppin@gmail.com
PostgreSQL version: 13.9
Operating system: macOS Catalina 10.15.7
Description:
Dear all,
... this is maybe related to an older issue #16460 - and it currently only
fails on 13.x - tested with postgresql-13.9-1-osx-binaries.zip ( from EDB
).
Outcome with 13.9 is (simple testcase) in an otherwise empty database
testdb:
testdb=> create table t1 (id serial);
CREATE TABLE
testdb=> insert INTO t1 (id) select * from generate_series(1, 10000000);
ERROR: could not load library
"/Users/frank/postgres/postgresql-13.9/lib/postgresql/llvmjit.so":
dlopen(/Users/frank/postgres/postgresql-13.9/lib/postgresql/llvmjit.so, 10):
Library not loaded: @loader_path/../..//opt/local/lib/libncurses.6.dylib
Referenced from:
/Users/frank/postgres/postgresql-13.9/lib/postgresql/llvmjit.so
Reason: no suitable image found. Did find:
file system relative paths not allowed in hardened programs
testdb=> \q
frank@imac postgres % otool -L
/Users/frank/postgres/postgresql-13.9/lib/postgresql/llvmjit.so
/Users/frank/postgres/postgresql-13.9/lib/postgresql/llvmjit.so:
@loader_path/../../lib/libz.1.dylib (compatibility version 1.0.0, current
version 1.2.13)
@loader_path/../..//opt/local/lib/libncurses.6.dylib (compatibility version
6.0.0, current version 6.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version
1292.100.5)
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version
905.6.0)
I ran the very same test with postgresql-12.13 and postgresql-14.6 - both
succeeded there.
Please advise! :)
TY!