[SERVER-16930] remove unnecessary fatal assertion when building multiple indexes concurrently via system.indexes writes Created: 19/Jan/15  Updated: 23/Jan/15  Resolved: 21/Jan/15

Status: Closed
Project: Core Server
Component/s: Concurrency, Index Maintenance
Affects Version/s: 2.8.0-rc5
Fix Version/s: 3.0.0-rc6

Type: Bug Priority: Major - P3
Reporter: Kamran K. Assignee: Benety Goh
Resolution: Done Votes: 0
Labels: 28qa
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: File server16930.js    
Issue Links:
Related
is related to SERVER-15882 implement insert into system.indexes ... Closed
is related to SERVER-12967 remove createIndexes 'noChangesMade' ... Closed
Backwards Compatibility: Fully Compatible
Operating System: ALL
Participants:

 Description   

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



 Comments   
Comment by Githook User [ 21/Jan/15 ]

Author:

{u'username': u'benety', u'name': u'Benety Goh', u'email': u'benety@mongodb.com'}

Message: SERVER-16930 createIndexes should always set numIndexesBefore and numIndexesAfter when it runs successfully
Branch: master
https://github.com/mongodb/mongo/commit/7d504b66098d1cfcafdb536ff0db3f7eb53f8c99

Generated at Thu Feb 08 03:42:45 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.