Re: PG v12.2 - Setting jit_above_cost is causing the server to crash

From: Dave Page <dpage(at)pgadmin(dot)org>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Aditya Toshniwal <aditya(dot)toshniwal(at)enterprisedb(dot)com>, Andres Freund <andres(at)anarazel(dot)de>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: PG v12.2 - Setting jit_above_cost is causing the server to crash
Date: 2020-02-27 12:53:26
Message-ID: CA+OCxoz0bWi+R2WpocfkD20Lgrg69z1jQ_SZd-zmdzHW0zt+bg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin pgsql-hackers

Hi

On Thu, Feb 27, 2020 at 12:41 PM Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:

> Aditya Toshniwal <aditya(dot)toshniwal(at)enterprisedb(dot)com> writes:
> > On Mon, Feb 24, 2020 at 12:46 PM Andres Freund <andres(at)anarazel(dot)de>
> wrote:
> >> This isn't reproducible here. Are you sure that you're running on a
> >> clean installation?
>
> > Yes I did a fresh installation using installer provided here -
> > https://www.enterprisedb.com/downloads/postgresql
>
> There is apparently something wrong with the JIT stuff in EDB's 12.2
> build for macOS. At least, that's the conclusion I came to after
> off-list discussion with the submitter of bug #16264, which has pretty
> much exactly this symptom (especially if you're seeing "signal 9"
> reports in the postmaster log). For him, either disabling JIT or
> reverting to 12.1 made it go away.
>

We've been looking into this;

Apple started a notarisation process some time ago, designed to mark their
applications as conforming to various security requirements, but prior to
Catalina it was essentially optional. When Catalina was released, they made
notarisation for distributed software a requirement, but had the process
issue warnings for non-compliance. As-of the end of January, those warnings
became hard errors, so now our packages must be notarised, and for that to
happen, must be hardened by linking with a special runtime and having
securely time stamped signatures on every binary before being checked and
notarised as such by Apple. Without that, users would have to disable
security features on their systems before they could run our software.

Our packages are being successfully notarised at the moment, because that's
essentially done through a static analysis. We can (and have) added what
Apple call an entitlement in test builds which essentially puts a flag in
the notarisation for the product that declares that it will do JIT
operations, however, it seems that this alone is not enough and that in
addition to the entitlement, we also need to include the MAP_JIT flag in
mmap() calls. See
https://developer.apple.com/documentation/security/hardened_runtime and
https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_security_cs_allow-jit

We're working on trying to test a patch for that at the moment.

--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

In response to

Responses

Browse pgsql-admin by date

  From Date Subject
Next Message Hotmail 2020-02-27 15:37:50 Can pg_checksums disable checksums enabled by initdb —data-checksums
Previous Message manish yadav 2020-02-27 04:22:06 Re: pgbadger question

Browse pgsql-hackers by date

  From Date Subject
Next Message Michael Paquier 2020-02-27 12:55:31 Re: [Proposal] Level4 Warnings show many shadow vars
Previous Message Dave Cramer 2020-02-27 12:44:14 Re: Error on failed COMMIT