Thanks to visit codestin.com
Credit goes to github.com

Skip to content

[llvm] Crash on Ubuntu, assertion at llvm-jit.cpp:113 #18227

@fanyang-mono

Description

@fanyang-mono

Steps to Reproduce

  1. Build mono-netcore with llvm
  2. Patch local dotnet
  3. Build a test app

Current Behavior

Assertion at llvm-jit.cpp:113, condition `GPOINTER_TO_UINT (res) % Alignment == 0' not met

Expected Behavior

No crash

On which platforms did you notice this

Couldn't reproduce on macOS
[ ] macOS
[x] Linux
[ ] Windows

Version Used:

mono master

Stacktrace

Assertion at llvm-jit.cpp:113, condition `GPOINTER_TO_UINT (res) % Alignment == 0' not met

#0  MonoJitMemoryManager::allocateDataSection (this=0x73d8a0, Size=640, Alignment=64, SectionID=1, SectionName=..., IsReadOnly=true) at llvm-jit.cpp:114
#1  0x00007ffff4cbe766 in llvm::RuntimeDyldImpl::emitSection(llvm::object::ObjectFile const&, llvm::object::SectionRef const&, bool) ()
   from /home/yangfan/fanyang/mono_latest/mono/.dotnet/shared/Microsoft.NETCore.App/5.0.0-alpha1.19507.3/libcoreclr.so
#2  0x00007ffff4cc070d in llvm::RuntimeDyldImpl::findOrEmitSection(llvm::object::ObjectFile const&, llvm::object::SectionRef const&, bool, std::map<llvm::object::SectionRef, unsigned int, std::less<llvm::object::SectionRef>, std::allocator<std::pair<llvm::object::SectionRef const, unsigned int> > >&) () from /home/yangfan/fanyang/mono_latest/mono/.dotnet/shared/Microsoft.NETCore.App/5.0.0-alpha1.19507.3/libcoreclr.so
#3  0x00007ffff4cd8657 in llvm::RuntimeDyldELF::processRelocationRef(unsigned int, llvm::object::content_iterator<llvm::object::RelocationRef>, llvm::object::ObjectFile const&, std::map<llvm::object::SectionRef, unsigned int, std::less<llvm::object::SectionRef>, std::allocator<std::pair<llvm::object::SectionRef const, unsigned int> > >&, std::map<llvm::RelocationValueRef, unsigned long, std::less<llvm::RelocationValueRef>, std::allocator<std::pair<llvm::RelocationValueRef const, unsigned long> > >&) () from /home/yangfan/fanyang/mono_latest/mono/.dotnet/shared/Microsoft.NETCore.App/5.0.0-alpha1.19507.3/libcoreclr.so
#4  0x00007ffff4cc331d in llvm::RuntimeDyldImpl::loadObjectImpl(llvm::object::ObjectFile const&) () from /home/yangfan/fanyang/mono_latest/mono/.dotnet/shared/Microsoft.NETCore.App/5.0.0-alpha1.19507.3/libcoreclr.so
#5  0x00007ffff4cdf0e7 in llvm::RuntimeDyldELF::loadObject(llvm::object::ObjectFile const&) () from /home/yangfan/fanyang/mono_latest/mono/.dotnet/shared/Microsoft.NETCore.App/5.0.0-alpha1.19507.3/libcoreclr.so
#6  0x00007ffff4cbd91f in llvm::RuntimeDyld::loadObject(llvm::object::ObjectFile const&) () from /home/yangfan/fanyang/mono_latest/mono/.dotnet/shared/Microsoft.NETCore.App/5.0.0-alpha1.19507.3/libcoreclr.so
#7  0x00007ffff49469b0 in llvm::orc::RTDyldObjectLinkingLayer::addObject(std::shared_ptr<llvm::object::OwningBinary<llvm::object::ObjectFile> >, std::shared_ptr<llvm::JITSymbolResolver>)::{lambda(std::_List_iterator<std::unique_ptr<llvm::orc::RTDyldObjectLinkingLayerBase::LinkedObject, std::default_delete<llvm::orc::RTDyldObjectLinkingLayerBase::LinkedObject> > >, llvm::RuntimeDyld&, std::shared_ptr<llvm::object::OwningBinary<llvm::object::ObjectFile> > const&, std::function<void ()>)#1}::operator()(std::_List_iterator<std::unique_ptr<llvm::orc::RTDyldObjectLinkingLayerBase::LinkedObject, std::default_delete<llvm::orc::RTDyldObjectLinkingLayerBase::LinkedObject> > >, llvm::RuntimeDyld&, std::shared_ptr<llvm::object::OwningBinary<llvm::object::ObjectFile> > const&, std::function<void ()>) const (__closure=0x2a79e50, H=std::unique_ptr<llvm::orc::RTDyldObjectLinkingLayerBase::LinkedObject> = {get() = 0x25f3e20}, RTDyld=...,
    ObjToLoad=std::shared_ptr<llvm::object::OwningBinary<llvm::object::ObjectFile>> (use count 1, weak count 0) = {...}, LOSHandleLoad=...)
    at /home/yangfan/fanyang/mono_latest/mono/llvm/usr/include/llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h:267
#8  0x00007ffff4957eb3 in llvm::orc::RTDyldObjectLinkingLayer::ConcreteLinkedObject<std::shared_ptr<llvm::RuntimeDyld::MemoryManager>, std::shared_ptr<llvm::JITSymbolResolver>, llvm::orc::RTDyldObjectLinkingLayer::addObject(std::shared_ptr<llvm::object::OwningBinary<llvm::object::ObjectFile> >, std::shared_ptr<llvm::JITSymbolResolver>)::{lambda(std::_List_iterator<std::unique_ptr<llvm::orc::RTDyldObjectLinkingLayerBase::LinkedObject, std::default_delete<llvm::orc::RTDyldObjectLinkingLayerBase::LinkedObject> > >, llvm::RuntimeDyld&, std::shared_ptr<llvm::object::OwningBinary<llvm::object::ObjectFile> > const&, std::function<void ()>)#1}>::finalize() (this=0x25f3e20)
    at /home/yangfan/fanyang/mono_latest/mono/llvm/usr/include/llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h:144
#9  0x00007ffff4957f81 in llvm::orc::RTDyldObjectLinkingLayer::ConcreteLinkedObject<std::shared_ptr<llvm::RuntimeDyld::MemoryManager>, std::shared_ptr<llvm::JITSymbolResolver>, llvm::orc::RTDyldObjectLinkingLayer::addObject(std::shared_ptr<llvm::object::OwningBinary<llvm::object::ObjectFile> >, std::shared_ptr<llvm::JITSymbolResolver>)::{lambda(std::_List_iterator<std::unique_ptr<llvm::orc::RTDyldObjectLinkingLayerBase::LinkedObject, std::default_delete<llvm::orc::RTDyldObjectLinkingLayerBase::LinkedObject> > >, llvm::RuntimeDyld&, std::shared_ptr<llvm::object::OwningBinary<llvm::object::ObjectFile> > const&, std::function<void ()>)#1}>::getSymbolMaterializer(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)::{lambda()#1}::operator()() const (__closure=0x28fefb0) at /home/yangfan/fanyang/mono_latest/mono/llvm/usr/include/llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h:159
#10 0x00007ffff495920e in std::_Function_handler<llvm::Expected<unsigned long> (), llvm::orc::RTDyldObjectLinkingLayer::ConcreteLinkedObject<std::shared_ptr<llvm::RuntimeDyld::MemoryManager>, std::shared_ptr<llvm::JITSymbolResolver>, llvm::orc::RTDyldObjectLinkingLayer::addObject(std::shared_ptr<llvm::object::OwningBinary<llvm::object::ObjectFile> >, std::shared_ptr<llvm::JITSymbolResolver>)::{lambda(std::_List_iterator<std::unique_ptr<llvm::orc::RTDyldObjectLinkingLayerBase::LinkedObject, std::default_delete<llvm::orc::RTDyldObjectLinkingLayerBase::LinkedObject> > >, llvm::RuntimeDyld&, std::shared_ptr<llvm::object::OwningBinary<llvm::object::ObjectFile> > const&, std::function<void ()>)#1}>::getSymbolMaterializer(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)::{lambda()#1}>::_M_invoke(std::_Any_data const&) (__functor=...) at /usr/include/c++/7/bits/std_function.h:302
#11 0x00007ffff4948af6 in std::function<llvm::Expected<unsigned long> ()>::operator()() const (this=0x7fffffff7c10) at /usr/include/c++/7/bits/std_function.h:706
#12 0x00007ffff4944a18 in llvm::JITSymbol::getAddress (this=0x7fffffff7c10) at /home/yangfan/fanyang/mono_latest/mono/llvm/usr/include/llvm/ExecutionEngine/JITSymbol.h:238
#13 0x00007ffff4947bae in MonoLLVMJIT::compile (this=0x726bc0, F=0x2576638, nvars=0, callee_vars=0x0, callee_addrs=0x0, eh_frame=0x7fffffff7eb8) at llvm-jit.cpp:399
#14 0x00007ffff4942adb in mono_llvm_compile_method (mono_ee=0x0, method=0x2576638, nvars=0, callee_vars=0x0, callee_addrs=0x0, eh_frame=0x7fffffff7eb8) at llvm-jit.cpp:487
#15 0x00007ffff493b47b in llvm_jit_finalize_method (ctx=0x2640130) at mini-llvm.c:10797
#16 0x00007ffff493521d in emit_method_inner (ctx=0x2640130) at mini-llvm.c:8687
#17 0x00007ffff49328ed in mono_llvm_emit_method (cfg=0x26f1550) at mini-llvm.c:8052
#18 0x00007ffff47a341e in mini_method_compile (method=0x28af318, opts=374434303, domain=0x700570, flags=JIT_FLAG_RUN_CCTORS, parts=0, aot_method_index=-1) at mini.c:3841
#19 0x00007ffff47a3f50 in mono_jit_compile_method_inner (method=0x28af318, target_domain=0x700570, opt=374434303, error=0x270ce38) at mini.c:4060
#20 0x00007ffff47aa56d in mono_jit_compile_method_with_opt (method=0x28af318, opt=374434303, jit_only=1, error=0x270ce38) at mini-runtime.c:2447
#21 0x00007ffff47aa788 in mono_jit_compile_method_jit_only (method=0x28af318, error=0x270ce38) at mini-runtime.c:2511
#22 0x00007ffff47abe7c in mono_jit_runtime_invoke (method=0x28af318, obj=0x0, params=0x0, exc=0x7fffffff8a48, error=0x270ce38) at mini-runtime.c:3053
#23 0x00007ffff4b1fb28 in do_runtime_invoke (method=0x28af318, obj=0x0, params=0x0, exc=0x7fffffff8a48, error=0x270ce38) at object.c:3052
#24 0x00007ffff4b1fd52 in mono_runtime_try_invoke (method=0x28af318, obj=0x0, params=0x0, exc=0x7fffffff8a48, error=0x270ce38) at object.c:3161
#25 0x00007ffff4b1b3e7 in mono_runtime_class_init_full (vtable=0x7fffe4b24558, error=0x270ce38) at object.c:551
#26 0x00007ffff4801ea2 in mono_method_to_ir (cfg=0x270c950, method=0x262ad90, start_bblock=0x28e5f10, end_bblock=0x28e6060, return_var=0x0, inline_args=0x0, inline_offset=0, is_virtual_call=0) at method-to-ir.c:9510
#27 0x00007ffff47a1f7b in mini_method_compile (method=0x262ad90, opts=374434303, domain=0x700570, flags=JIT_FLAG_RUN_CCTORS, parts=0, aot_method_index=-1) at mini.c:3467
#28 0x00007ffff47a3f50 in mono_jit_compile_method_inner (method=0x262ad90, target_domain=0x700570, opt=374434303, error=0x7fffffffa140) at mini.c:4060
#29 0x00007ffff47aa56d in mono_jit_compile_method_with_opt (method=0x262ad90, opt=374434303, jit_only=0, error=0x7fffffffa140) at mini-runtime.c:2447
#30 0x00007ffff47aa740 in mono_jit_compile_method (method=0x262ad90, error=0x7fffffffa140) at mini-runtime.c:2497
#31 0x00007ffff48a7f46 in common_call_trampoline (regs=0x7fffffffa1d8, code=0x401028de "H\213sxH\270\070\317d\002", m=0x262ad90, vt=0x0, vtable_slot=0x0, error=0x7fffffffa140) at mini-trampolines.c:635
#32 0x00007ffff48a8631 in mono_magic_trampoline (regs=0x7fffffffa1d8, code=0x401028de "H\213sxH\270\070\317d\002", arg=0x262ad90, tramp=0x40102880 "\350{\331\357\377\004\220\255b\002\350q\331\357\377\004h\256b\002")
    at mini-trampolines.c:773

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions