BUG #17733: ERROR: could not load library "/Users/frank/postgres/postgresql-13.9/lib/postgresql/llvmjit.so": dl

Started by PG Bug reporting formover 3 years ago7 messagesbugs
Jump to latest
#1PG Bug reporting form
noreply@postgresql.org

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!

#2Frank Reppin
frankreppin@gmail.com
In reply to: PG Bug reporting form (#1)
Re: BUG #17733: ERROR: could not load library "/Users/frank/postgres/postgresql-13.9/lib/postgresql/llvmjit.so": dl

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

Am Mi., 28. Dez. 2022 um 17:16 Uhr schrieb PG Bug reporting form <
noreply@postgresql.org>:

Show quoted text

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!

#3Andres Freund
andres@anarazel.de
In reply to: PG Bug reporting form (#1)
Re: BUG #17733: ERROR: could not load library "/Users/frank/postgres/postgresql-13.9/lib/postgresql/llvmjit.so": dl

Hi,

On 2022-12-28 16:15:27 +0000, PG Bug reporting form wrote:

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

That looks like an issue with the specific build - you're going to have to
take that up with EDB.

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)

It's pretty odd that llvmjit.so is linking to ncurses. Looks like some
compiler flags might have been injected in a too broad way.

Are other libraries, e.g. plpgsql.so and libpq.dylib also referencing ncurses?

Greetings,

Andres Freund

#4Frank Reppin
frankreppin@gmail.com
In reply to: Andres Freund (#3)
Re: BUG #17733: ERROR: could not load library "/Users/frank/postgres/postgresql-13.9/lib/postgresql/llvmjit.so": dl

Dear Andres, dear list,

it's just only llvmjit.so which (weirdly) links to libncurses.6.dylib here
in EDBs postgresql-13.9 build - nothing else.
Neither plpgsql.so nor libpq.dylib reference libncurses.6.dylib - to answer
your specific question about them.

Since I agree that this is no classic pgsql bug at all - I too wonder how
to lure someone at EDB on this matter.
There seems no community support mail - just options for users owning a
'plan' ( I at least couldn't figure one out ).
But it too seems that EDB staff lurks in here on a regular basis - so my
hope was to have them pick it up from here ;)
FWIW - I'll CC Sandeep Thakkar (from former issue #16460) in good hope to
get things sorted.

Thankyou!
cheers,
Frank Reppin

Am Do., 29. Dez. 2022 um 21:36 Uhr schrieb Andres Freund <andres@anarazel.de

Show quoted text

:

Hi,

On 2022-12-28 16:15:27 +0000, PG Bug reporting form wrote:

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

That looks like an issue with the specific build - you're going to have to
take that up with EDB.

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)

It's pretty odd that llvmjit.so is linking to ncurses. Looks like some
compiler flags might have been injected in a too broad way.

Are other libraries, e.g. plpgsql.so and libpq.dylib also referencing
ncurses?

Greetings,

Andres Freund

#5Sandeep Thakkar
sandeep.thakkar@enterprisedb.com
In reply to: Frank Reppin (#4)
Re: BUG #17733: ERROR: could not load library "/Users/frank/postgres/postgresql-13.9/lib/postgresql/llvmjit.so": dl

Hi,

Thanks for reporting the bug. This certainly looks like a linking issue.
I'll fix and provide the updates for PostgreSQL 13 at the earliest.

On Fri, Dec 30, 2022 at 3:39 AM Frank Reppin <frankreppin@gmail.com> wrote:

Dear Andres, dear list,

it's just only llvmjit.so which (weirdly) links to libncurses.6.dylib here
in EDBs postgresql-13.9 build - nothing else.
Neither plpgsql.so nor libpq.dylib reference libncurses.6.dylib - to
answer your specific question about them.

Since I agree that this is no classic pgsql bug at all - I too wonder how
to lure someone at EDB on this matter.
There seems no community support mail - just options for users owning a
'plan' ( I at least couldn't figure one out ).
But it too seems that EDB staff lurks in here on a regular basis - so my
hope was to have them pick it up from here ;)
FWIW - I'll CC Sandeep Thakkar (from former issue #16460) in good hope to
get things sorted.

Thankyou!
cheers,
Frank Reppin

Am Do., 29. Dez. 2022 um 21:36 Uhr schrieb Andres Freund <
andres@anarazel.de>:

Hi,

On 2022-12-28 16:15:27 +0000, PG Bug reporting form wrote:

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

That looks like an issue with the specific build - you're going to have to
take that up with EDB.

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)

It's pretty odd that llvmjit.so is linking to ncurses. Looks like some
compiler flags might have been injected in a too broad way.

Are other libraries, e.g. plpgsql.so and libpq.dylib also referencing
ncurses?

Greetings,

Andres Freund

--
Sandeep Thakkar

#6Sandeep Thakkar
sandeep.thakkar@enterprisedb.com
In reply to: Sandeep Thakkar (#5)
Re: BUG #17733: ERROR: could not load library "/Users/frank/postgres/postgresql-13.9/lib/postgresql/llvmjit.so": dl

Hi,

The issue is fixed and the website and the StackBuilder links are updated.
Thanks again for reporting the issue.

On Mon, Jan 2, 2023 at 10:16 AM Sandeep Thakkar <
sandeep.thakkar@enterprisedb.com> wrote:

Hi,

Thanks for reporting the bug. This certainly looks like a linking issue.
I'll fix and provide the updates for PostgreSQL 13 at the earliest.

On Fri, Dec 30, 2022 at 3:39 AM Frank Reppin <frankreppin@gmail.com>
wrote:

Dear Andres, dear list,

it's just only llvmjit.so which (weirdly) links to libncurses.6.dylib
here in EDBs postgresql-13.9 build - nothing else.
Neither plpgsql.so nor libpq.dylib reference libncurses.6.dylib - to
answer your specific question about them.

Since I agree that this is no classic pgsql bug at all - I too wonder how
to lure someone at EDB on this matter.
There seems no community support mail - just options for users owning a
'plan' ( I at least couldn't figure one out ).
But it too seems that EDB staff lurks in here on a regular basis - so my
hope was to have them pick it up from here ;)
FWIW - I'll CC Sandeep Thakkar (from former issue #16460) in good hope to
get things sorted.

Thankyou!
cheers,
Frank Reppin

Am Do., 29. Dez. 2022 um 21:36 Uhr schrieb Andres Freund <
andres@anarazel.de>:

Hi,

On 2022-12-28 16:15:27 +0000, PG Bug reporting form wrote:

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

That looks like an issue with the specific build - you're going to have
to
take that up with EDB.

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)

It's pretty odd that llvmjit.so is linking to ncurses. Looks like some
compiler flags might have been injected in a too broad way.

Are other libraries, e.g. plpgsql.so and libpq.dylib also referencing
ncurses?

Greetings,

Andres Freund

--
Sandeep Thakkar

--
Sandeep Thakkar

#7Frank Reppin
frankreppin@gmail.com
In reply to: Sandeep Thakkar (#6)
Re: BUG #17733: ERROR: could not load library "/Users/frank/postgres/postgresql-13.9/lib/postgresql/llvmjit.so": dl

Just tested... works fine now ( postgresql-13.9-3-osx-binaries.zip ).
While we are at it... what is the recommended procedure to report such
issues back to EDB (without eligible support plan)?

Thankyou!
cheers, FR

On Thu, Jan 5, 2023, 03:04 Sandeep Thakkar <sandeep.thakkar@enterprisedb.com>
wrote:

Show quoted text

Hi,

The issue is fixed and the website and the StackBuilder links are updated.
Thanks again for reporting the issue.

On Mon, Jan 2, 2023 at 10:16 AM Sandeep Thakkar <
sandeep.thakkar@enterprisedb.com> wrote:

Hi,

Thanks for reporting the bug. This certainly looks like a linking issue.
I'll fix and provide the updates for PostgreSQL 13 at the earliest.

On Fri, Dec 30, 2022 at 3:39 AM Frank Reppin <frankreppin@gmail.com>
wrote:

Dear Andres, dear list,

it's just only llvmjit.so which (weirdly) links to libncurses.6.dylib
here in EDBs postgresql-13.9 build - nothing else.
Neither plpgsql.so nor libpq.dylib reference libncurses.6.dylib - to
answer your specific question about them.

Since I agree that this is no classic pgsql bug at all - I too wonder
how to lure someone at EDB on this matter.
There seems no community support mail - just options for users owning a
'plan' ( I at least couldn't figure one out ).
But it too seems that EDB staff lurks in here on a regular basis - so my
hope was to have them pick it up from here ;)
FWIW - I'll CC Sandeep Thakkar (from former issue #16460) in good hope
to get things sorted.

Thankyou!
cheers,
Frank Reppin

Am Do., 29. Dez. 2022 um 21:36 Uhr schrieb Andres Freund <
andres@anarazel.de>:

Hi,

On 2022-12-28 16:15:27 +0000, PG Bug reporting form wrote:

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

That looks like an issue with the specific build - you're going to have
to
take that up with EDB.

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)

It's pretty odd that llvmjit.so is linking to ncurses. Looks like some
compiler flags might have been injected in a too broad way.

Are other libraries, e.g. plpgsql.so and libpq.dylib also referencing
ncurses?

Greetings,

Andres Freund

--
Sandeep Thakkar

--
Sandeep Thakkar