[SERVER-11756] getLastError not set properly when an error occurs during write commands on mongos Created: 18/Nov/13  Updated: 10/Dec/14  Resolved: 18/Nov/13

Status: Closed
Project: Core Server
Component/s: Sharding
Affects Version/s: 2.5.3
Fix Version/s: None

Type: Task Priority: Major - P3
Reporter: Randolph Tan Assignee: Unassigned
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Participants:

 Description   

sample mongos session:

mongos> db.user.insert({ _id: 1 })
Insert WriteResult({ "ok" : 1, "n" : 1 })
mongos> db.user.insert({ _id: 1 })
Insert WriteResult({
	"ok" : 0,
	"code" : 11000,
	"errmsg" : "E11000 duplicate key error index: test.user.$_id_  dup key: { : 1.0 }",
	"n" : 0
})
mongos> db.getLastErrorObj()
{
	"singleShard" : "localhost:30000",
	"n" : 0,
	"connectionId" : 7,
	"err" : null,
	"ok" : 1
}
 

sample mongod session (expected):

db.user.insert({ _id: 2 })
Insert WriteResult({ "ok" : 1, "n" : 1 })
> db.user.insert({ _id: 2 })
Insert WriteResult({
	"ok" : 0,
	"code" : 11000,
	"errmsg" : "E11000 duplicate key error index: test.user.$_id_  dup key: { : 2.0 }",
	"n" : 0
})
> db.getLastErrorObj()
{
	"err" : "E11000 duplicate key error index: test.user.$_id_  dup key: { : 2.0 }",
	"code" : 11000,
	"n" : 0,
	"connectionId" : 1,
	"ok" : 1
}



 Comments   
Comment by Randolph Tan [ 18/Nov/13 ]

This is an error in reporting. The get last error object was not properly being set because I forgot to set the useClusterWriteCommands parameter to true.

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