-
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
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