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

Windows crash dump during fatal assertion does not contain exception record

    • Type: Icon: Bug Bug
    • Resolution: Done
    • Priority: Icon: Major - P3 Major - P3
    • 3.3.9
    • Affects Version/s: 3.3.3
    • Component/s: Diagnostics
    • Labels:
      None
    • Fully Compatible
    • ALL
    • Hide

      Prepare a debug Windows build of mongod.exe and start it with test commands enabled:

      start mongod.exe --dbpath D:\mongodb\data --logpath D:\mongodb\data\mongod.log --setParameter enableTestCommands=1
      
      E:\workspace\mongo>mongo.exe --nodb
      MongoDB shell version: 3.3.2-156-gad2b483
      > use admin;
      
      // This command will cause fassert to be generated at shutdown. This does not contain exception information.
      assert.commandWorked(db.runCommand({ configureFailPoint: "crashOnShutdown", mode: "alwaysOn", data: { how: 'abort' } }));
      
      // This command will cause segfault to be generated at shutdown. This generates the correct exception info.
      > assert.commandWorked(db.runCommand({ configureFailPoint: "crashOnShutdown", mode: "alwaysOn", data: { how: 'fault' } }));
      
      Show
      Prepare a debug Windows build of mongod.exe and start it with test commands enabled: start mongod.exe --dbpath D:\mongodb\data --logpath D:\mongodb\data\mongod.log --setParameter enableTestCommands=1 E:\workspace\mongo>mongo.exe --nodb MongoDB shell version: 3.3.2-156-gad2b483 > use admin; // This command will cause fassert to be generated at shutdown. This does not contain exception information. assert.commandWorked(db.runCommand({ configureFailPoint: "crashOnShutdown", mode: "alwaysOn", data: { how: 'abort' } })); // This command will cause segfault to be generated at shutdown. This generates the correct exception info. > assert.commandWorked(db.runCommand({ configureFailPoint: "crashOnShutdown", mode: "alwaysOn", data: { how: 'fault' } }));
    • TIG 16 (06/24/16)

      The Windows crash dump, which gets generated during a fatal server assertion does not contain exception record, which makes it useless in diagnosing failures.

      The stack trace, which gets printed is correct, but it looks like the place at which the stack dump is generated is after the stack containing the exception has unwound.

      If the crash happened due to access violation, the exception record is correct.

            Assignee:
            robert.guo@mongodb.com Robert Guo (Inactive)
            Reporter:
            kaloian.manassiev@mongodb.com Kaloian Manassiev
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: