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

Live oplog can be dropped

    XMLWordPrintable

Details

    • Bug
    • Status: Closed
    • Major - P3
    • Resolution: Fixed
    • None
    • 2.8.0-rc0
    • Replication
    • ALL
    • Hide

      var rt = new ReplSetTest(

      {nodes:2, useHostName:false, oplogSize:2}

      )
      rt.startSet()
      rt.initiate()
      var mFoo = rt.getMaster().getDB("test").foo;
      var sFoo = rt.getSecondary().getDB("test").foo;
      var sOplog = rt.getSecondary().getDB("local").oplog.rs
      var mOplog = rt.getPrimary().getDB("local").oplog.rs
      var counts = function () { return {m:mFoo.count(), s:sFoo.count() }}
      mFoo.insert({})
      mFoo.insert({});mFoo.getDB().getLastError(2);
      printjson(sOplog.find().sort({$natural:-1}).limit(-1).next())
      printjson(sOplog.drop())
      printjson(counts())
      mFoo.insert({});mFoo.getDB().getLastError();
      printjson(counts())
      sOplog.getDB().createCollection("oplog.rs",

      {capped:true, size:500000}

      )
      mFoo.insert({});mFoo.getDB().getLastError(2);
      var newEntry = sOplog.find().sort({$natural:-1}).limit(-1).next()
      printjson(newEntry)
      printjson(counts())

      printjson(sOplog.drop())
      mFoo.insert({});mFoo.getDB().getLastError();
      printjson(counts())
      mOplog.getDB().createCollection("oplog.rs",

      {capped:true, size:500000}

      )
      mFoo.insert({});mFoo.getDB().getLastError();
      printjson(counts())
      rt.stopSet()

      Show
      var rt = new ReplSetTest( {nodes:2, useHostName:false, oplogSize:2} ) rt.startSet() rt.initiate() var mFoo = rt.getMaster().getDB("test").foo; var sFoo = rt.getSecondary().getDB("test").foo; var sOplog = rt.getSecondary().getDB("local").oplog.rs var mOplog = rt.getPrimary().getDB("local").oplog.rs var counts = function () { return {m:mFoo.count(), s:sFoo.count() }} mFoo.insert({}) mFoo.insert({});mFoo.getDB().getLastError(2); printjson(sOplog.find().sort({$natural:-1}).limit(-1).next()) printjson(sOplog.drop()) printjson(counts()) mFoo.insert({});mFoo.getDB().getLastError(); printjson(counts()) sOplog.getDB().createCollection("oplog.rs", {capped:true, size:500000} ) mFoo.insert({});mFoo.getDB().getLastError(2); var newEntry = sOplog.find().sort({$natural:-1}).limit(-1).next() printjson(newEntry) printjson(counts()) printjson(sOplog.drop()) mFoo.insert({});mFoo.getDB().getLastError(); printjson(counts()) mOplog.getDB().createCollection("oplog.rs", {capped:true, size:500000} ) mFoo.insert({});mFoo.getDB().getLastError(); printjson(counts()) rt.stopSet()

    Description

      During the training, scotthernandez managed to drop the oplog on a slaveDelay secondary that was currently active with:

      db.getSiblingDB("local").oplog.rs.drop()

      db.getSiblingDB("local").oplog.rs.stats()

      Now returns:

      { "ok" : 0, "errmsg" : "ns not found" }

      Attachments

        Issue Links

          Activity

            People

              milkie@mongodb.com Eric Milkie
              derick Derick Rethans
              Votes:
              2 Vote for this issue
              Watchers:
              11 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: