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

Update on invalid loc fails in concurrent circumstances

    • Type: Icon: Bug Bug
    • Resolution: Done
    • Priority: Icon: Major - P3 Major - P3
    • 3.0.0-rc6
    • Affects Version/s: 2.8.0-rc4
    • Component/s: Querying
    • Fully Compatible
    • ALL
      1. Start mongod with storage engine as MMapV1
      2. Turn on recordNeedsFetchFail failpoint
      3. Save attached 'fsm_test.js' to jstests/concurrency
      4. 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
      

            Assignee:
            david.storch@mongodb.com David Storch
            Reporter:
            jonathan.balsano@mongodb.com Jonathan Balsano
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

              Created:
              Updated:
              Resolved: