microsoft / microsoft/mimalloc
Crash on Windows Server 2019 using Mimalloc v2.0.6
Nessuno ha ancora preso questa issue.
- Lingua principale
- C
- Stelle
- 13.4k
- Fork
- 1.2k
- Merge medio
- 4g 45m
- PR unite (30g)
- 13
Descrizione
Hello!
We recently started testing mimalloc v2.0.6 in our project and ran into an issue on Windows Server 2019. However, we don't have any issues on Win10/11. On startup we have a crash:
Faulting application name: launcher.exe, version: 0.0.0.0, time stamp: 0x632c2d38
Faulting module name: ucrtbase.dll, version: 10.0.17763.719, time stamp: 0x48ac8393
Exception code: 0xc0000409
Fault offset: 0x000000000006e77e
Faulting process id: 0xebc
Faulting application start time: 0x01d8ce7793646e97
Faulting application path: D:\bin\launcher.exe
Faulting module path: C:\windows\System32\ucrtbase.dll
Report Id: d62340f4-1b35-4f85-a29b-34ed8fccdff8
Faulting package full name:
Faulting package-relative application ID:

Here is a callstack:
ntdll.dll!RtlReportFatalFailure() Unknown
ntdll.dll!RtlReportCriticalFailure() Unknown
ntdll.dll!RtlpHeapHandleError() Unknown
ntdll.dll!RtlpHpHeapHandleError() Unknown
ntdll.dll!RtlpLogHeapFailure() Unknown
ntdll.dll!RtlFreeHeap() Unknown
ucrtbase.dll!_free_base() Unknown
[Inline Frame] rttr_core.dll!std::_Deallocate(void * _Ptr, unsigned _int64 Bytes) Line 255 C++
[Inline Frame] rttr_core.dll!std::allocator::deallocate(unsigned int * const) Line 830 C++
[Inline Frame] rttr_core.dll!std::vector<unsigned int,std::allocator>::Tidy() Line 1893 C++
[Inline Frame] rttr_core.dll!std::vector<unsigned int,std::allocator>::{dtor}() Line 791 C++
[Inline Frame] rttr_core.dll!std::Vb_val<std::allocator>::{dtor}() Line 2658 C++
[Inline Frame] rttr_core.dll!std::vector<bool,std::allocator>::{dtor}() Line 2837 C++
rttr_core.dll!rttr::detail::constructor_wrapper_base::create_signature_string() Line 95 C++
rttr_core.dll!rttr::detail::constructor_wrapper_base::init() Line 58 C++
[Inline Frame] core.dll!rttr::detail::constructor_wrapper<engine::math::vec2,rttr::detail::class_ctor,0,rttr::detail::as_object,0,rttr::detail::default_args<>,rttr::detail::parameter_infos<rttr::detail::parameter_info_wrapper<float,0,rttr::detail::no_param_name,void>,rttr::detail::parameter_info_wrapper<float,1,rttr::detail::no_param_name,void>>,rttr::type_list<>,float,float>::{ctor}(std::arrayrttr::detail::metadata,0) Line 88 C++
[Inline Frame] core.dll!rttr::detail::make_unique(std::arrayrttr::detail::metadata,0 &&) Line 276 C++
core.dll!rttr::registration::bind<rttr::detail::ctor,engine::math::vec2,rttr::detail::public_access,rttr::type_list<>,float,float>::create_constructor_wrapper<rttr::detail::as_object,0,rttr::detail::parameter_info_wrapper<float,0,rttr::detail::no_param_name,void>,rttr::detail::parameter_info_wrapper<float,1,rttr::detail::no_param_name,void>>(std::arrayrttr::detail::metadata,0 metadata_list, rttr::detail::default_args<> def_args, rttr::detail::parameter_infos<rttr::detail::parameter_info_wrapper<float,0,rttr::detail::no_param_name,void>,rttr::detail::parameter_info_wrapper<float,1,rttr::detail::no_param_name,void>> param_infos) Line 133 C++
[Inline Frame] core.dll!rttr::registration::bind<rttr::detail::ctor,engine::math::vec2,rttr::detail::public_access,rttr::type_list<>,float,float>::operator()(const rttr::detail::as_object &) Line 202 C++
core.dll!engine::rttr_auto_register_reflection_function() Line 106 C++
ucrtbase.dll!initterm() Unknown
core.dll!dllmain_crt_process_attach(HINSTANCE * const instance, void * const reserved) Line 66 C++
core.dll!dllmain_dispatch(HINSTANCE * const instance, const unsigned long reason, void * const reserved) Line 276 C++
ntdll.dll!LdrpCallInitRoutine() Unknown
ntdll.dll!LdrpInitializeNode() Unknown
ntdll.dll!LdrpInitializeGraphRecurse() Unknown
ntdll.dll!LdrpInitializeGraphRecurse() Unknown
ntdll.dll!LdrpInitializeGraphRecurse() Unknown
ntdll.dll!LdrpInitializeGraphRecurse() Unknown
ntdll.dll!LdrpInitializeGraphRecurse() Unknown
ntdll.dll!LdrpInitializeProcess() Unknown
ntdll.dll!_LdrpInitialize() Unknown
ntdll.dll!LdrpInitialize() Unknown
ntdll.dll!LdrInitializeThunk() Unknown
I have already tried the fixes suggested in https://github.com/microsoft/mimalloc/issues/521 and in https://github.com/microsoft/mimalloc/issues/103. Such as link directly with mimalloc-redirect.lib and use /INCLUDE:mi_redirect_enable. As well as apply minject.exe after. These steps did not help.
I think the problem is with ucrtbase.dll. We are using version 10.0.17763.719.
PS. I didn't find the source code for malloc-redirect. Could you provide it?
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Riproduci l'avvio su Windows Server 2019 con mimalloc v2.0.6, quindi esamina il percorso segnalato rttr::detail::constructor_wrapper_base::create_signature_string e l'inizializzazione di core.dll intorno a dllmain_crt_process_attach. Confronta il comportamento con le correzioni di reindirizzamento di mimalloc tentate; il lavoro è completo quando sono state stabilite la causa del crash e una correzione compatibile, oppure il malloc-redirect source richiesto.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- c, cpp
- Ambito
- operating-systems
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100