Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-19437

Unhandled exception under low resource simulation

    • Type: Icon: Bug Bug
    • Resolution: Won't Fix
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Storage, Usability
    • ALL
    • Hide
      Show
      Install application verifier from here https://dev.windows.com/en-us/downloads/windows-10-sdk Start mongod in a loop and wait for it to break into debugger Run any simple CRUD operation. Configure appverif /verify mongod.exe /faults 5 1000

      Single mongod (starting w/ default parameters - No startup parameters)
      version:
      db version v3.1.6-pre-
      git version: 23055835b7455c87120dc6f5a87ff0b497ac6d66

      The test simulate low resources by inject random failures to memory allocation , on many place we reportOutOfMemoryErrorAndExit() and terminate but it's appear that new throws an exception that we didn't handle.
      see example below

       # Child-SP          RetAddr           Call Site
      00 00000023`7054e280 00007ff7`4cec4112 mongod!abort+0x34 [f:\dd\vctools\crt\crtw32\misc\abort.c @ 88]
      01 00000023`7054e2b0 00007ff7`4cef3727 mongod!terminate+0x1e [f:\dd\vctools\crt\crtw32\eh\hooks.cpp @ 96]
      02 00000023`7054e2e0 00007ff9`e90e1c72 mongod!__CxxUnhandledExceptionFilter+0x37 [f:\dd\vctools\crt\crtw32\eh\unhandld.cpp @ 39]
      03 00000023`7054e310 00007ff9`ebd0fb33 KERNELBASE!UnhandledExceptionFilter+0x1a2
      04 00000023`7054e400 00007ff9`ebcf2896 ntdll!RtlUserThreadStart$filt$0+0x3e
      05 00000023`7054e440 00007ff9`ebd03f0d ntdll!_C_specific_handler+0x96
      06 00000023`7054e4b0 00007ff9`ebcc4887 ntdll!RtlpExecuteHandlerForException+0xd
      07 00000023`7054e4e0 00007ff9`ebcc3aad ntdll!RtlDispatchException+0x197
      08 00000023`7054ebb0 00007ff9`e9008b9c ntdll!RtlRaiseException+0x18d
      09 00000023`7054f370 00007ff7`4cec1203 KERNELBASE!RaiseException+0x68
      0a 00000023`7054f450 00007ff7`4cec0530 mongod!_CxxThrowException+0xb3 [f:\dd\vctools\crt\crtw32\eh\throw.cpp @ 154]
      0b 00000023`7054f4c0 00007ff7`4c5bd804 mongod!operator new+0x68 [f:\dd\vctools\crt\crtw32\heap\new.cpp @ 62]
      0c 00000023`7054f510 00007ff7`4c5bc7a9 mongod!std::_List_alloc<0,std::_List_base_types<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,mongo::InitializerDependencyGraph::NodeData>,std::allocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,mongo::InitializerDependencyGraph::NodeData> > > >::_Buynode0+0x24 [c:\program files (x86)\microsoft visual studio 12.0\vc\include\list @ 782]
      0d 00000023`7054f550 00007ff7`4c5bd6dc mongod!std::_List_buy<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,mongo::InitializerDependencyGraph::NodeData>,std::allocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,mongo::InitializerDependencyGraph::NodeData> > >::_Buynode<std::piecewise_construct_t const & __ptr64,std::tuple<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const & __ptr64>,std::tuple<> >+0x19 [c:\program files (x86)\microsoft visual studio 12.0\vc\include\list @ 830]
      0e 00000023`7054f5b0 00007ff7`4c5be40c mongod!std::unordered_map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,mongo::InitializerDependencyGraph::NodeData,std::hash<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::equal_to<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,mongo::InitializerDependencyGraph::NodeData> > >::operator[]+0x5c [c:\program files (x86)\microsoft visual studio 12.0\vc\include\unordered_map @ 315]
      0f 00000023`7054f600 00007ff7`4c5b9104 mongod!mongo::InitializerDependencyGraph::addInitializer+0xcc [c:\src\mongo\src\mongo\base\initializer_dependency_graph.cpp @ 46]
      10 00000023`7054f6c0 00007ff7`4c573378 mongod!mongo::GlobalInitializerRegisterer::GlobalInitializerRegisterer+0x54 [c:\src\mongo\src\mongo\base\global_initializer_registerer.cpp @ 44]
      11 00000023`7054f720 00007ff7`4cec9b8f mongod!mongo::fts::`anonymous namespace'::`dynamic initializer for '_mongoInitializerRegisterer_languageEnglishV1''+0xe8 [c:\src\mongo\src\mongo\db\fts\fts_language.cpp @ 127]
      12 00000023`7054f7f0 00007ff7`4cec9ac5 mongod!_initterm+0x3f [f:\dd\vctools\crt\crtw32\startup\crt0dat.c @ 955]
      13 00000023`7054f820 00007ff7`4ced2555 mongod!_cinit+0x65 [f:\dd\vctools\crt\crtw32\startup\crt0dat.c @ 321]
      14 00000023`7054f850 00007ff9`eb9513d2 mongod!__tmainCRTStartup+0x119 [f:\dd\vctools\crt\crtw32\startup\crt0.c @ 238]
      15 00000023`7054f890 00007ff9`ebc85444 KERNEL32!BaseThreadInitThunk+0x22
      16 00000023`7054f8c0 00000000`00000000 ntdll!RtlUserThreadStart+0x34
      

            Assignee:
            Unassigned Unassigned
            Reporter:
            eitan.klein Eitan Klein
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: