'Invalid epoch' fatal assertion when concurrently dropping and sharding collection

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Done
    • Priority: Major - P3
    • 3.1.7
    • Affects Version/s: 3.1.2
    • Component/s: Sharding
    • Fully Compatible
    • ALL
    • Hide
      'use strict';
      
      load('jstests/libs/parallelTester.js');
      
      function dropWorkload(host) {
          var mongos = new Mongo(host);
          var mongosAdmin = mongos.getDB('admin');
          var coll = mongos.getCollection('test.drop');
      
          while (true) {
              try {
                  coll.runCommand({drop: coll.getName()});
                  mongosAdmin.runCommand({shardCollection: coll.getFullName(), key: {_id: 1}});
              } catch (e) {
                  // ignore
              }
          }
      }
      
      // set up the sharded cluster and shard the collection
      var st = new ShardingTest({});
      var mongosAdmin = st.s0.getDB('admin');
      
      mongosAdmin.runCommand({enablesharding: 'test'});
      mongosAdmin.runCommand({shardCollection: 'test.drop', key: {_id: 1}});
      
      var threads = [];
      for (var i = 0; i < 5; i++) {
          var t = new ScopedThread(dropWorkload, st.s0.host);
      
          threads.push(t);
          t.start();
      }
      
      threads.forEach(function(t) {
          t.join();
      });
      
      Show
      'use strict'; load('jstests/libs/parallelTester.js'); function dropWorkload(host) { var mongos = new Mongo(host); var mongosAdmin = mongos.getDB('admin'); var coll = mongos.getCollection('test.drop'); while (true) { try { coll.runCommand({drop: coll.getName()}); mongosAdmin.runCommand({shardCollection: coll.getFullName(), key: {_id: 1}}); } catch (e) { // ignore } } } // set up the sharded cluster and shard the collection var st = new ShardingTest({}); var mongosAdmin = st.s0.getDB('admin'); mongosAdmin.runCommand({enablesharding: 'test'}); mongosAdmin.runCommand({shardCollection: 'test.drop', key: {_id: 1}}); var threads = []; for (var i = 0; i < 5; i++) { var t = new ScopedThread(dropWorkload, st.s0.host); threads.push(t); t.start(); } threads.forEach(function(t) { t.join(); });
    • Sharding 7 08/10/15
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      This bug was introduced in 3.1.2. It does not affect 3.0.2.

      Fatal assertion 28634 BadValue invalid epoch
      
      Program received signal SIGTRAP, Trace/breakpoint trap.
      [Switching to Thread 0x7f6c04134700 (LWP 11908)]
      0x00007f6c09dbe20b in raise (sig=5) at ../nptl/sysdeps/unix/sysv/linux/pt-raise.c:37
      37	../nptl/sysdeps/unix/sysv/linux/pt-raise.c: No such file or directory.
      (gdb) bt
      #0  0x00007f6c09dbe20b in raise (sig=5) at ../nptl/sysdeps/unix/sysv/linux/pt-raise.c:37
      #1  0x0000000000ff0238 in mongo::breakpoint () at src/mongo/util/debugger.cpp:57
      #2  0x0000000000fe25f3 in mongo::fassertFailedWithStatus (msgid=28634, status=...) at src/mongo/util/assert_util.cpp:186
      #3  0x0000000000c30d4b in mongo::fassert (msgid=28634, status=...) at src/mongo/util/assert_util.h:218
      #4  0x0000000000eb0b92 in mongo::CatalogManagerLegacy::updateCollection (this=0x3365cd0, collNs=..., coll=...) at src/mongo/s/catalog/legacy/catalog_manager_legacy.cpp:847
      #5  0x0000000000f79eaf in mongo::CollectionInfo::save (this=0x7f6c04132830, ns=...) at src/mongo/s/config.cpp:149
      #6  0x0000000000eac1ca in mongo::CatalogManagerLegacy::shardCollection (this=0x3365cd0, ns=..., fieldsAndOrder=..., unique=false, initPoints=0x7f6c04132fd0, initShards=0x0) at src/mongo/s/catalog/legacy/catalog_manager_legacy.cpp:498
      #7  0x0000000000f61112 in mongo::(anonymous namespace)::ShardCollectionCmd::run (this=0x17679e0 <mongo::(anonymous namespace)::shardCollectionCmd>, txn=0x0, dbname=..., cmdObj=..., options=0, errmsg=..., result=...)
          at src/mongo/s/commands/cluster_shard_collection_cmd.cpp:415
      #8  0x0000000000f9115c in mongo::Command::execCommandClientBasic (txn=0x0, c=0x17679e0 <mongo::(anonymous namespace)::shardCollectionCmd>, client=..., queryOptions=0, ns=0x7f6bd4000ec4 "admin.$cmd", cmdObj=..., result=...)
          at src/mongo/s/s_only.cpp:102
      #9  0x0000000000f915d6 in mongo::Command::runAgainstRegistered (ns=0x7f6bd4000ec4 "admin.$cmd", jsobj=..., anObjBuilder=..., queryOptions=0) at src/mongo/s/s_only.cpp:146
      #10 0x0000000000f998aa in mongo::Strategy::clientCommandOp (this=0x334e990, r=...) at src/mongo/s/strategy.cpp:308
      #11 0x0000000000f90612 in mongo::Request::process (this=0x7f6c04133b90, attempt=0) at src/mongo/s/request.cpp:121
      #12 0x0000000000b473f4 in mongo::ShardedMessageHandler::process (this=0x7fff09cf3b80, m=..., p=0x336a0f0) at src/mongo/s/server.cpp:149
      #13 0x0000000001007c7d in mongo::PortMessageServer::handleIncomingMsg (arg=0x336a0f0) at src/mongo/util/net/message_server_port.cpp:227
      #14 0x00007f6c09db6182 in start_thread (arg=0x7f6c04134700) at pthread_create.c:312
      #15 0x00007f6c09ae347d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
      

            Assignee:
            Kaloian Manassiev
            Reporter:
            Kamran K. (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: