[Bug 251192] databases/postgresql13-server: fix crashes related to LLVM JIT

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Mon Nov 16 19:18:43 UTC 2020


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=251192

            Bug ID: 251192
           Summary: databases/postgresql13-server: fix crashes related to
                    LLVM JIT
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: Individual Port(s)
          Assignee: pgsql at FreeBSD.org
          Reporter: amdmi3 at FreeBSD.org
          Assignee: pgsql at FreeBSD.org
             Flags: maintainer-feedback?(pgsql at FreeBSD.org)

Created attachment 219740
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=219740&action=edit
Patch

I've ran into reproducible postgresql13 crash with LLVM enabled.

Can be reproduced with the following query:

SET jit_above_cost = 0;
SET jit_inline_above_cost = 0;
SET jit_optimize_above_cost = 0;
SELECT (jsonb_array_elements('[true]'::jsonb)->>0)::boolean;

Problem summary: thread local storage access from code inlined by LLVM JIT
instantly crashes (llvm11 also reports an error about unsupported relocation).
On FreeBSD TLS accesses are quite common as functions like isspace() (used in
boolin and input functions for many other commonly used postgresql types)
involve caching of locale specific data in TLS. 

Upstream bug including details, investigation and a workaround:

https://www.postgresql.org/message-id/flat/16696-29d944a33801fbfe%40postgresql.org#e010f0f56325aac5de96f8d0bb77dec0

For now, I suggest to apply the attached patch which disables inlining of
functions which access TLS. Alternative would be to disable LLVM completely and
mark it BROKEN, but IMO that'd be an overkill.

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-ports-bugs mailing list