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

Fatal assertion on profiling-enabled secondary when dropping system.profile collection on primary

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major - P3
    • Resolution: Fixed
    • Affects Version/s: 3.1.3
    • Fix Version/s: 3.1.5
    • Component/s: Replication
    • Labels:
    • Backwards Compatibility:
      Fully Compatible
    • Operating System:
      ALL
    • Steps To Reproduce:
      Hide

      var rst = new ReplSetTest({nodes: 2});
      rst.startSet();
      rst.initiate();
      rst.awaitReplication();
       
      var primaryDB = rst.getPrimary().getDB('test');
      var secondaryDB = rst.getSecondary().getDB('test');
       
      // Enable profiling on all nodes
      primaryDB.runCommand({profile: 2});
      secondaryDB.runCommand({profile: 2});
       
      // Create the profile collection before disabling profiling on the primary
      primaryDB.foo.insert({});
      primaryDB.runCommand({profile: 0});
       
      // Drop the collection on the primary to trigger an fassert on the secondary
      primaryDB.system.profile.drop();
      rst.awaitReplication();
      

      Show
      var rst = new ReplSetTest({nodes: 2}); rst.startSet(); rst.initiate(); rst.awaitReplication();   var primaryDB = rst.getPrimary().getDB('test'); var secondaryDB = rst.getSecondary().getDB('test');   // Enable profiling on all nodes primaryDB.runCommand({profile: 2}); secondaryDB.runCommand({profile: 2});   // Create the profile collection before disabling profiling on the primary primaryDB.foo.insert({}); primaryDB.runCommand({profile: 0});   // Drop the collection on the primary to trigger an fassert on the secondary primaryDB.system.profile.drop(); rst.awaitReplication();
    • Sprint:
      RPL 5 06/26/16
    • Linked BF Score:
      0

      Description

      If profiling is enabled on a secondary and a system.profile drop occurs on the primary, the secondary will abort, as of 3.1.2.

      In previous versions, including 3.0.4-rc0, the same set of operations would result in a warning and a failed drop.

      3.1.2+

       I COMMAND  [repl writer worker 15] CMD: drop test.system.profile
       E REPL     [repl writer worker 15] Failed command { drop: "system.profile" } on test with status IllegalOperation turn off profiling before dropping system.profile collection during oplog application
       I -        [repl writer worker 15] Fatal Assertion 16359
       I -        [repl writer worker 15] 
      

      3.1.1 and 3.0.4-rc0

      I COMMAND  [repl writer worker 15] CMD: drop test.system.profile
      W REPL     [repl writer worker 15] Failed command { drop: "system.profile" } on test with status IllegalOperation turn off profiling before dropping system.profile collection during oplog application
      

        Attachments

          Issue Links

            Activity

              People

              • Votes:
                0 Vote for this issue
                Watchers:
                7 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: