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

Reading the oplog in a txn is permitted and triggers an invariant

    XMLWordPrintableJSON

Details

    • Icon: Bug Bug
    • Resolution: Gone away
    • Icon: Major - P3 Major - P3
    • None
    • 3.7.9
    • Replication
    • None
    • Replication
    • ALL
    • Hide

      /*
       * Set up cluster.
       */
      var r = new ReplSetTest({nodes:2});
      r.startSet();r.initiate();
       
      const sessionOptions = {causalConsistency: false};
      const session = r.getPrimary().startSession(sessionOptions);
       
      /*
       * Repro
       */
      session.startTransaction();
      var res = session.getDatabase("local").getCollection("oplog.rs").findOne();
      session.commitTransaction();
       
      session.endSession();
      

      Show
      /* * Set up cluster. */ var r = new ReplSetTest({nodes:2}); r.startSet();r.initiate();   const sessionOptions = {causalConsistency: false }; const session = r.getPrimary().startSession(sessionOptions);   /* * Repro */ session.startTransaction(); var res = session.getDatabase( "local" ).getCollection( "oplog.rs" ).findOne(); session.commitTransaction();   session.endSession();

    Description

      Stacktrace:

       /home/guo/mongo/src/mongo/util/assert_util.cpp:104:5: mongo::invariantFailed(char const*, char const*, unsigned int)
       /home/guo/mongo/src/mongo/util/invariant.h:67:9: void mongo::invariantWithLocation<bool>(bool const&, char const*, char const*, unsigned int)
       /home/guo/mongo/src/mongo/db/storage/wiredtiger/wiredtiger_recovery_unit.cpp:225:5: mongo::WiredTigerRecoveryUnit::abandonSnapshot()
       /home/guo/mongo/src/mongo/db/exec/collection_scan.cpp:119:45: mongo::CollectionScan::doWork(unsigned long*)
       /home/guo/mongo/src/mongo/db/exec/plan_stage.cpp:46:29: mongo::PlanStage::work(unsigned long*)
       /home/guo/mongo/src/mongo/db/exec/limit.cpp:64:34: mongo::LimitStage::doWork(unsigned long*)
       /home/guo/mongo/src/mongo/db/exec/plan_stage.cpp:46:29: mongo::PlanStage::work(unsigned long*)
       /home/guo/mongo/src/mongo/db/query/plan_executor.cpp:553:45: mongo::PlanExecutor::getNextImpl(mongo::Snapshotted<mongo::BSONObj>*, mongo::RecordId*)
       /home/guo/mongo/src/mongo/db/query/plan_executor.cpp:404:23: mongo::PlanExecutor::getNext(mongo::BSONObj*, mongo::RecordId*)
       /home/guo/mongo/src/mongo/db/commands/find_cmd.cpp:348:57: mongo::(anonymous namespace)::FindCmd::run(mongo::OperationContext*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, mongo::BSONObj const&, mongo::BSONObjBuilder&)
      

      Attachments

        Activity

          People

            backlog-server-repl Backlog - Replication Team
            robert.guo@mongodb.com Robert Guo (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: