Skip to content

GHC segfault at internal_dlopen on macos

Hello. I got a segfault crash from GHC 9.4.4 while compilng a big private project on macos Ventura 13.2.1 on Apple M1 max device. I was able to get a Core dump which seems to indicate the segfault happened in "internal_dlopen": It's not clear whether this is a GHC issue or linker issue, but report this here.

(lldb) bt 
* thread #29, stop reason = ESR_EC_DABORT_EL0 (fault address: 0x8ab639e00)
  * frame #0: 0x00000001ad440f90 dyld`lsl::Allocator::free(void*) + 60
    frame #1: 0x00000001ad43fc2c dyld`lsl::UniquePtr<char const>::~UniquePtr() + 52
    frame #2: 0x00000001ad43f570 dyld`dyld4::FileRecord::~FileRecord() + 52
    frame #3: 0x00000001ad4276f8 dyld`lsl::UniquePtr<dyld4::Atlas::Image>::~UniquePtr() + 68
    frame #4: 0x00000001ad453a9c dyld`lsl::BTree<lsl::UniquePtr<dyld4::Atlas::Image>, std::__1::less<lsl::UniquePtr<dyld4::Atlas::Image> >, false>::NodeCore<31u, 15u>::deallocateChildren() + 116
    frame #5: 0x00000001ad453a68 dyld`lsl::BTree<lsl::UniquePtr<dyld4::Atlas::Image>, std::__1::less<lsl::UniquePtr<dyld4::Atlas::Image> >, false>::NodeCore<31u, 15u>::deallocateChildren() + 64
    frame #6: 0x00000001ad453a68 dyld`lsl::BTree<lsl::UniquePtr<dyld4::Atlas::Image>, std::__1::less<lsl::UniquePtr<dyld4::Atlas::Image> >, false>::NodeCore<31u, 15u>::deallocateChildren() + 64
    frame #7: 0x00000001ad427678 dyld`lsl::BTree<lsl::UniquePtr<dyld4::Atlas::Image>, std::__1::less<lsl::UniquePtr<dyld4::Atlas::Image> >, false>::clear() + 32
    frame #8: 0x00000001ad42700c dyld`dyld4::RuntimeState::freeProcessSnapshot() + 60
    frame #9: 0x00000001ad44c990 dyld`dyld4::APIs::dlopen_from(char const*, int, void*) + 932
    frame #10: 0x00000001050f28dc libHSrts_thr-ghc9.4.4.dylib`internal_dlopen + 44
    frame #11: 0x00000001050f27a4 libHSrts_thr-ghc9.4.4.dylib`addDLL + 36
    frame #12: 0x0000000104c41f10 libHSghci-9.4.4-ghc9.4.4.dylib`Lc3gS_info + 36
    frame #13: 0x00000001050fe134 libHSrts_thr-ghc9.4.4.dylib`schedule + 1176 
Edited by Ian-Woo Kim
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information