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

remove unnecessary fatal assertion when building multiple indexes concurrently via system.indexes writes

    • Fully Compatible
    • ALL

      The fassert is not necessary and has been removed. Additionally, the createIndexes command has been updated to always produce both numIndexesBefore and numIndexesAfter on success.

      ------
      This bug affects both the WT and mmapv1 storage engines. The fassert is only triggered by writing directly to system.indexes and not by ensureIndex/createIndexes. It does not affect 2.6.7.

      2015-01-19T15:15:38.621-0500 F WRITE    [conn2] Created multiple indexes while attempting to create only 1; numIndexesBefore = 1; numIndexesAfter = 3
      2015-01-19T15:15:38.621-0500 I -        [conn2] Fatal Assertion 28547
      
      #0  0x00007ffff7bcc20b in raise (sig=5) at ../nptl/sysdeps/unix/sysv/linux/pt-raise.c:37
      #1  0x00000000018bbfdd in mongo::breakpoint () at src/mongo/util/debugger.cpp:63
      #2  0x00000000018b1762 in mongo::fassertFailed (msgid=28547) at src/mongo/util/assert_util.cpp:165
      #3  0x000000000130b39b in mongo::singleCreateIndex (txn=0x7fffde0f67e0, indexDesc=..., result=0x7fffde0f3a20) at src/mongo/db/commands/write_commands/batch_executor.cpp:1178
      #4  0x000000000130a935 in mongo::insertOne (state=0x7fffde0f4eb0, result=0x7fffde0f3a20) at src/mongo/db/commands/write_commands/batch_executor.cpp:1067
      #5  0x000000000130ab79 in mongo::WriteBatchExecutor::execOneInsert (this=0x7fffde0f52c0, state=0x7fffde0f4eb0, error=0x7fffde0f4e88) at src/mongo/db/commands/write_commands/batch_executor.cpp:1091
      #6  0x000000000130953e in mongo::WriteBatchExecutor::execInserts (this=0x7fffde0f52c0, request=..., errors=0x7fffde0f5140) at src/mongo/db/commands/write_commands/batch_executor.cpp:882
      #7  0x0000000001308f7b in mongo::WriteBatchExecutor::bulkExecute (this=0x7fffde0f52c0, request=..., upsertedIds=0x7fffde0f5160, errors=0x7fffde0f5140)
          at src/mongo/db/commands/write_commands/batch_executor.cpp:764
      #8  0x0000000001306cc1 in mongo::WriteBatchExecutor::executeBatch (this=0x7fffde0f52c0, request=..., response=0x7fffde0f5300) at src/mongo/db/commands/write_commands/batch_executor.cpp:272
      #9  0x0000000001310eb0 in mongo::WriteCmd::run (this=0x30e3170, txn=0x7fffde0f67e0, dbName=..., cmdObj=..., options=0, errMsg=..., result=..., fromRepl=false)
          at src/mongo/db/commands/write_commands/write_commands.cpp:147
      #10 0x000000000132d8e3 in mongo::_execCommand (txn=0x7fffde0f67e0, c=0x30e3170, dbname=..., cmdObj=..., queryOptions=0, errmsg=..., result=..., fromRepl=false) at src/mongo/db/dbcommands.cpp:1267
      #11 0x000000000132e860 in mongo::Command::execCommand (txn=0x7fffde0f67e0, c=0x30e3170, queryOptions=0, cmdns=0x33ea814 "test.$cmd", cmdObj=..., result=..., fromRepl=false)
          at src/mongo/db/dbcommands.cpp:1483
      #12 0x000000000132f142 in mongo::_runCommands (txn=0x7fffde0f67e0, ns=0x33ea814 "test.$cmd", _cmdobj=..., b=..., anObjBuilder=..., fromRepl=false, queryOptions=0) at src/mongo/db/dbcommands.cpp:1558
      #13 0x0000000001531cf6 in mongo::runCommands (txn=0x7fffde0f67e0, ns=0x33ea814 "test.$cmd", jsobj=..., curop=..., b=..., anObjBuilder=..., fromRepl=false, queryOptions=0) at src/mongo/db/query/find.cpp:137
      #14 0x0000000001533d1e in mongo::runQuery (txn=0x7fffde0f67e0, m=..., q=..., nss=..., curop=..., result=..., fromDBDirectClient=false) at src/mongo/db/query/find.cpp:606
      #15 0x0000000001438e94 in mongo::receivedQuery (txn=0x7fffde0f67e0, c=..., dbresponse=..., m=..., fromDBDirectClient=false) at src/mongo/db/instance.cpp:220
      #16 0x000000000143a03e in mongo::assembleResponse (txn=0x7fffde0f67e0, m=..., dbresponse=..., remote=..., fromDBDirectClient=false) at src/mongo/db/instance.cpp:403
      #17 0x0000000001137214 in mongo::MyMessageHandler::process (this=0x30b01b0, m=..., port=0x30d7610, le=0x33f4410) at src/mongo/db/db.cpp:206
      #18 0x00000000018d9c0b in mongo::PortMessageServer::handleIncomingMsg (arg=0x30d7610) at src/mongo/util/net/message_server_port.cpp:227
      #19 0x00007ffff7bc4182 in start_thread (arg=0x7fffde0f7700) at pthread_create.c:312
      #20 0x00007ffff6cc500d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
      

      Version: 2d7050b6c3b

            Assignee:
            benety.goh@mongodb.com Benety Goh
            Reporter:
            kamran.khan Kamran K.
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: