Обсуждение: BUG #17943: Undefined symbol LLVMBuildGEP in llvmjit.so during pg_restore

Поиск
Список
Период
Сортировка

BUG #17943: Undefined symbol LLVMBuildGEP in llvmjit.so during pg_restore

От
PG Bug reporting form
Дата:
The following bug has been logged on the website:

Bug reference:      17943
Logged by:          Hans Buschmann
Email address:      buschmann@nidsa.net
PostgreSQL version: 15.3
Operating system:   Fedora 38 x86-64
Description:

I tried to restore our standard db from a recent dump on PostgreSQL 15.3
installed from PGDG repositories with dnf.

During pg_restore I got the following error message:

pg_restore: error: could not execute query: ERROR:  could not load library
"/usr/pgsql-15/lib/llvmjit.so": /usr/pgsql-15/lib/llvmjit.so: undefined
symbol: LLVMBuildGEP
Command was: REFRESH MATERIALIZED VIEW archiv.mv_max_fac_order;


pg_restore: warning: errors ignored on restore: 1

For our system, jit isn't really important, but enabled in configuration.
So the error occurs only occasional here.

At the first attempt the following postgres / llvm packages where
installed:
postgresql15.x86_64
15.3-1PGDG.f38                                                  @pgdg15
postgresql15-contrib.x86_64
15.3-1PGDG.f38                                                  @pgdg15
postgresql15-devel.x86_64
15.3-1PGDG.f38                                                  @pgdg15
postgresql15-docs.x86_64
15.3-1PGDG.f38                                                  @pgdg15
postgresql15-libs.x86_64
15.3-1PGDG.f38                                                  @pgdg15
postgresql15-llvmjit.x86_64
15.3-1PGDG.f38                                                  @pgdg15
postgresql15-server.x86_64
15.3-1PGDG.f38                                                  @pgdg15

llvm.x86_64
16.0.3-1.fc38                                                  @updates
llvm-devel.x86_64
16.0.3-1.fc38                                                  @updates
llvm-libs.i686
16.0.3-1.fc38                                                  @updates
llvm-libs.x86_64
16.0.3-1.fc38                                                  @updates
llvm-static.x86_64
16.0.3-1.fc38                                                  @updates
llvm-test.x86_64
16.0.3-1.fc38                                                  @updates
llvm15-libs.x86_64
15.0.7-4.fc38                                                  @fedora 

Even after dnf remove llvm15-libs (leftover from a system upgrade from
Fedora 37) the same error persisted.

Any clues?

Hans Buschmann


Re: BUG #17943: Undefined symbol LLVMBuildGEP in llvmjit.so during pg_restore

От
Thomas Munro
Дата:
On Thu, May 25, 2023 at 4:19 AM PG Bug reporting form
<noreply@postgresql.org> wrote:>
> Any clues?

Is it possible that whoever packaged that compiled it against LLVM 15
but then put LLVM 16 into the package depencencies?  I'm not a Fedora
user so that might be a silly question... but do you still have the
ability to install LLVM 15?  Unfortunately PostgreSQL can't use LLVM16
yet, because we need to make some changes (hopefully in the next point
release):

https://www.postgresql.org/message-id/flat/CA+hUKGKNX_=f+1C4r06WETKTq0G4Z_7q4L4Fxn5WWpMycDj9Fw@mail.gmail.com



AW: BUG #17943: Undefined symbol LLVMBuildGEP in llvmjit.so during pg_restore

От
Hans Buschmann
Дата:

Hello Thomas,


Thank you for your information about LLVM16 support.

I noticed the discussion in hackers.


I wanted to point out that I used the standard repositories from PGDG15.

As to my knowledge they are packaged by Devrim, so this is the standard distribution for RedHat-style Linux on PGDG.

(This is shown by the dnf list lines in my OM)


I am not trying to use LLVM on my platform (tiny data, optimized SQL etc.) but I wanted to notice everybody that there are unreferenced symbols in llvmjit.so, something that should not happen.


I have no idea where this come from nor where it is used, but the unreferenced symbols should be at least masked with dummy rountines (or avoided) to prevent the error for other users where the problem matters much more!


Unfortunately this occurs on pg_restore, the ultimate backup/restore of a database, and data are not restored correctly and must be corrected manually afterwords.


Perhaps you could contact Devrim for clarification...


Hans Buschmann


Re: BUG #17943: Undefined symbol LLVMBuildGEP in llvmjit.so during pg_restore

От
Devrim Gündüz
Дата:
Hi,

On Thu, 2023-05-25 at 15:20 +1200, Thomas Munro wrote:
> Is it possible that whoever packaged that compiled it against LLVM 15
> but then put LLVM 16 into the package depencencies? 

Me. The answer is yes.

I hit the same issue on my laptop a couple of days ago. Will rebuild
RPMs against LLVM15 (which is a separate package), and will release
until Monday.

Regards,
--
Devrim Gündüz
Open Source Solution Architect, PostgreSQL Major Contributor
Twitter: @DevrimGunduz , @DevrimGunduzTR