On Wed, Aug 18, 2021 at 8:01 AM Jelte Fennema <jelte.fenn...@microsoft.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