-
Type:
Bug
-
Resolution: Done
-
Priority:
Major - P3
-
Affects Version/s: 2.8.0-rc4
-
Component/s: Querying
-
Fully Compatible
-
ALL
-
- Start mongod with storage engine as MMapV1
- Turn on recordNeedsFetchFail failpoint
- Save attached 'fsm_test.js' to jstests/concurrency
- Run `./mongo jstests/concurrency/fsm_tests.js' against the mongod
-
None
-
None
-
None
-
None
-
None
-
None
-
None
If you're trying to update the same document from multiple threads and looking it up by indexed _id, a yield to load the document from disk will result in an invalid document location in the UpdateStage. First turned up on MCI windows build in fsm_all.js, log is attached.
2015-01-12T15:46:53.716-0500 I QUERY Error: 48 threads threw
Error: [1] != [0] are not equal : {
"nMatched" : 0,
"nUpserted" : 0,
"nModified" : 0,
"writeError" : {
"code" : 96,
"errmsg" : "Exec error: InternalError update stage failed to read member w/ loc from child"
}
}
at quietlyDoAssert (jstests/concurrency/fsm_libs/assert.js:53:15)
at Function.assert.eq (src/mongo/shell/assert.js:38:5)
at wrapAssertFn (jstests/concurrency/fsm_libs/assert.js:60:16)
at Function.assertWithLevel.(anonymous function) [as eq] (jstests/concurrency/fsm_libs/assert.js:99:13)
at Object.data.assertResult (jstests/concurrency/fsm_workloads/update_multifield.js:84:35)
at Object.update (jstests/concurrency/fsm_workloads/update_multifield.js:53:18)
at Object.runFSM [as run] (jstests/concurrency/fsm_libs/fsm.js:19:16)
at <anonymous>:8:13
at Object.main (jstests/concurrency/fsm_libs/worker_thread.js:68:17)
at ____MongoToV8_newFunction_temp (<anonymous>:5:25)
at throwError (jstests/concurrency/fsm_libs/runner.js:261:23)
at jstests/concurrency/fsm_libs/runner.js:390:17
at Array.forEach (native)
at runWorkloads (jstests/concurrency/fsm_libs/runner.js:345:22)
at serial (jstests/concurrency/fsm_libs/runner.js:406:13)
at jstests/concurrency/fsm_test.js:27:1 at jstests/concurrency/fsm_libs/runner.js:273
- links to