[SERVER-15774] findAndModify triggers rollback invariant failure with --notablescan Created: 21/Oct/14  Updated: 06/Feb/15  Resolved: 02/Nov/14

Status: Closed
Project: Core Server
Component/s: Storage
Affects Version/s: 2.7.8
Fix Version/s: None

Type: Bug Priority: Major - P3
Reporter: Kamran K. Assignee: Daniel Pasette (Inactive)
Resolution: Done Votes: 0
Labels: 28qa
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Related
related to SERVER-17198 logOp rollback in findAndModify when ... Closed
is related to SERVER-15192 Make all logOp listeners rollback-safe Closed
Operating System: ALL
Participants:

 Description   

The following invariant failure only occurs when the server is running with the --notablescan option:

Output and backtrace:

2014-10-21T18:49:33.968-0400 I STORAGE  [conn1]    ***** ROLLING BACK 149 changes
2014-10-21T18:49:33.969-0400 I STORAGE  [conn1] CUSTOM ROLLBACK mongo::repl::logOp(mongo::OperationContext*, char const*, char const*, mongo::BSONObj const&, mongo::BSONObj*, bool*, bool)::RollbackPreventer
2014-10-21T18:49:33.969-0400 F REPLSETS [conn1] Rollback of logOp not currently allowed (SERVER-15192)
2014-10-21T18:49:33.969-0400 I -        [conn1] Fatal Assertion 18805
 
 
Program received signal SIGTRAP, Trace/breakpoint trap.
[Switching to Thread 0x7ffff7fce700 (LWP 18773)]
0x00007ffff7bcc20b 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  0x00007ffff7bcc20b in raise (sig=5) at ../nptl/sysdeps/unix/sysv/linux/pt-raise.c:37
#1  0x0000000001892006 in mongo::mongo_breakpoint () at src/mongo/util/debug_util.cpp:58
#2  0x0000000001888ba4 in mongo::breakpoint () at src/mongo/util/debug_util.h:73
#3  0x0000000001887b15 in mongo::fassertFailed (msgid=18805) at src/mongo/util/assert_util.cpp:153
#4  0x00000000015cc8fa in mongo::repl::RollbackPreventer::rollback (this=0x2f4e3b8) at src/mongo/db/repl/oplog.cpp:423
#5  0x00000000016f9995 in mongo::DurRecoveryUnit::rollbackInnermostChanges (this=0x5802050) at src/mongo/db/storage/mmap_v1/dur_recovery_unit.cpp:140
#6  0x00000000016f9652 in mongo::DurRecoveryUnit::endUnitOfWork (this=0x5802050) at src/mongo/db/storage/mmap_v1/dur_recovery_unit.cpp:101
#7  0x00000000011e7f2c in mongo::WriteUnitOfWork::~WriteUnitOfWork (this=0x7ffff7fcc270, __in_chrg=<optimized out>) at src/mongo/db/operation_context.h:160
#8  0x000000000129586f in mongo::CmdFindAndModify::run (this=0x26f9dc0 <mongo::cmdFindAndModify>, txn=0x2fb0ea0, dbname=..., cmdObj=..., x=0, errmsg=..., result=..., y=false) at src/mongo/db/commands/find_and_modify.cpp:377
#9  0x000000000130737f in mongo::_execCommand (txn=0x2fb0ea0, c=0x26f9dc0 <mongo::cmdFindAndModify>, dbname=..., cmdObj=..., queryOptions=0, errmsg=..., result=..., fromRepl=false) at src/mongo/db/dbcommands.cpp:1158
#10 0x0000000001308334 in mongo::Command::execCommand (txn=0x2fb0ea0, c=0x26f9dc0 <mongo::cmdFindAndModify>, queryOptions=0, cmdns=0x36a9814 "test.$cmd", cmdObj=..., result=..., fromRepl=false) at src/mongo/db/dbcommands.cpp:1372
#11 0x0000000001308c41 in mongo::_runCommands (txn=0x2fb0ea0, ns=0x36a9814 "test.$cmd", _cmdobj=..., b=..., anObjBuilder=..., fromRepl=false, queryOptions=0) at src/mongo/db/dbcommands.cpp:1448
#12 0x0000000001521122 in mongo::runCommands (txn=0x2fb0ea0, ns=0x36a9814 "test.$cmd", jsobj=..., curop=..., b=..., anObjBuilder=..., fromRepl=false, queryOptions=0) at src/mongo/db/query/new_find.cpp:125
#13 0x0000000001522adf in mongo::newRunQuery (txn=0x2fb0ea0, m=..., q=..., curop=..., result=..., fromDBDirectClient=false) at src/mongo/db/query/new_find.cpp:529
#14 0x000000000140f051 in mongo::receivedQuery (txn=0x2fb0ea0, c=..., dbresponse=..., m=..., fromDBDirectClient=false) at src/mongo/db/instance.cpp:272
#15 0x0000000001410172 in mongo::assembleResponse (txn=0x2fb0ea0, m=..., dbresponse=..., remote=..., fromDBDirectClient=false) at src/mongo/db/instance.cpp:445
#16 0x0000000001124db0 in mongo::MyMessageHandler::process (this=0x2f4e188, m=..., port=0x2f69390, le=0x5802000) at src/mongo/db/db.cpp:184
#17 0x00000000018adfbb in mongo::PortMessageServer::handleIncomingMsg (arg=0x2f52220) at src/mongo/util/net/message_server_port.cpp:234
#18 0x00007ffff7bc4182 in start_thread (arg=0x7ffff7fce700) at pthread_create.c:312
#19 0x00007ffff6cc4fbd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111


Version: 91c8c4425c166



 Comments   
Comment by Kamran K. [ 02/Nov/14 ]

The invariant failure is no longer reproducible (tested with 3e31d5fab0).

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