[llvm-bugs] [Bug 30910] New: Deleting MCJIT execution engine causes SIGSEGV, Segmentation fault in "__cxa_throw"

via llvm-bugs llvm-bugs at lists.llvm.org
Thu Nov 3 17:04:40 PDT 2016


https://llvm.org/bugs/show_bug.cgi?id=30910

            Bug ID: 30910
           Summary: Deleting MCJIT execution engine causes SIGSEGV,
                    Segmentation fault in "__cxa_throw"
           Product: libraries
           Version: 3.9
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: release blocker
          Priority: P
         Component: MCJIT
          Assignee: unassignedbugs at nondot.org
          Reporter: alex.moiseenko at gmail.com
                CC: llvm-bugs at lists.llvm.org
    Classification: Unclassified

The scenario is similar to the reported bug here:
https://groups.google.com/forum/#!topic/llvm-dev/MQOJJa-uFSo

Basically its like this:
1. Create MCJIT ExecutionEngine.
2. Delete ExecutionEngine.
3. Call try-catch block after it.

When try/catch block is used after ExecutionEngine is deleted, I get the
following segmentation fault:
-------------------------------
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff712632e in ?? () from /lib/x86_64-linux-gnu/libgcc_s.so.1
(gdb) where
#0  0x00007ffff712632e in ?? () from /lib/x86_64-linux-gnu/libgcc_s.so.1
#1  0x00007ffff7126829 in ?? () from /lib/x86_64-linux-gnu/libgcc_s.so.1
#2  0x00007ffff71270c6 in _Unwind_Find_FDE ()
   from /lib/x86_64-linux-gnu/libgcc_s.so.1
#3  0x00007ffff7123b63 in ?? () from /lib/x86_64-linux-gnu/libgcc_s.so.1
#4  0x00007ffff7124d80 in ?? () from /lib/x86_64-linux-gnu/libgcc_s.so.1
#5  0x00007ffff712522e in _Unwind_RaiseException ()
   from /lib/x86_64-linux-gnu/libgcc_s.so.1
#6  0x00007ffff76c190c in __cxa_throw ()
   from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#7  0x0000000000b5ed35 in main ()
    at /home/gavgav/Documents/testllvm/testllvm.cpp:839
-------------------------------

The issue is reproducible only on Linux (works on Windows). Linux distribution
is Ubuntu 16.04 x64.

I found that if I comment the line "Dyld.deregisterEHFrames();" inside MCJIT
destructor, then the issue disappears. So its something with dynamic linker
exception handler frames deregistration.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20161104/65c5a3df/attachment.html>


More information about the llvm-bugs mailing list