-
Type:
Bug
-
Resolution: Works as Designed
-
Priority:
Major - P3
-
None
-
Affects Version/s: 3.4.10
-
Component/s: None
-
None
-
ALL
-
None
-
3
-
None
-
None
-
None
-
None
-
None
-
None
I've moved some data manually, using moveChunk, and a document is missing. I can find it manually, by querying a shard which has it, but when i make the same query from the sharded shell it's not there. The balancer is now disabled.
mongos> db.smtp_in_auth.find({"_id": ObjectId('5a590cf4016548d302f5eae0')}) mongos> db.smtp_in_auth.find({"_id": ObjectId('5a590cf4016548d302f5eae0')}).explain() { "queryPlanner" : { "mongosPlannerVersion" : 1, "winningPlan" : { "stage" : "SINGLE_SHARD", "shards" : [ { "shardName" : "rs4", "connectionString" : "rs4/XXX:10104,XXY:10104", "serverInfo" : { "host" : "XYZ", "port" : 10104, "version" : "3.4.10", "gitVersion" : "078f28920cb24de0dd479b5ea6c66c644f6326e9" }, "plannerVersion" : 1, "namespace" : "db.col", "indexFilterSet" : false, "parsedQuery" : { "_id" : { "$eq" : ObjectId("5a590cf4016548d302f5eae0") } }, "winningPlan" : { "stage" : "SHARDING_FILTER", "inputStage" : { "stage" : "IDHACK" } }, "rejectedPlans" : [ ] } ] } }, "ok" : 1 } mongos> rs4:PRIMARY> use db switched to db db rs4:PRIMARY> db.col.findOne({"_id": ObjectId('5a590cf4016548d302f5eae0')}) null rs1:PRIMARY> use db switched to db db rs1:PRIMARY> db.col.findOne({"_id": ObjectId('5a590cf4016548d302f5eae0')}) { "_id" : ObjectId("5a590cf4016548d302f5eae0") }
So the cluster thinks that that _id is located on rs4, when it actually resides on rs1. I know from experience that restarting everything a couple of times fix this issue, but i'd rather not do that.