Re: Don't clean up LLVM state when exiting in a bad way

From: Zhihong Yu <zyu(at)yugabyte(dot)com>
To: Jelte Fennema <Jelte(dot)Fennema(at)microsoft(dot)com>
Cc: "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Don't clean up LLVM state when exiting in a bad way
Date: 2021-08-18 15:17:54
Message-ID: CALNJ-vRS561jVoXDQQDaJkNvpshkJfEsJWqcm=jp42j=pyBT_g@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Wed, Aug 18, 2021 at 8:01 AM Jelte Fennema <Jelte(dot)Fennema(at)microsoft(dot)com>
wrote:

> Hi,
>
> I ran into some segfaults when using Postgres that was compiled with LLVM
> 7. According to the backtraces these crashes happened during the call to
> llvm_shutdown, during cleanup after another out of memory condition. It
> seems that calls to LLVMOrcDisposeInstance, can crash (at least on LLVM 7)
> when LLVM is left in bad state. I attached the relevant part of the
> stacktrace to this email.
>
> With the attached patch these segfaults went away. The patch turns
> llvm_shutdown into a no-op whenever the backend is exiting with an error.
> Based on my understanding of the code this should be totally fine. No
> memory should be leaked, since all memory will be cleaned up anyway once
> the backend exits shortly after. The only reason this cleanup code even
> seems to exist at all is to get useful LLVM profiling data. To me it seems
> be acceptable if the profiling data is incorrect/missing when the backend
> exits with an error.
>
> Jelte
>
Hi,
Minor comment:

+ * shut LLVM down, this can result into a segfault. So if this
process

result into a segfault -> result in a segfault

Cheers

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Andrew Dunstan 2021-08-18 15:55:26 Re: NAMEDATALEN increase because of non-latin languages
Previous Message Jelte Fennema 2021-08-18 15:00:59 Don't clean up LLVM state when exiting in a bad way