sh.status was showing a successful migration when there weren't any and I tried it down to this function sh.getRecentMigrations() reporting this as success:
db.changelog.aggregate( [ { $match : { time : { $gt : yesterday }, what : "moveChunk.from", "details.errmsg" : { "$exists" : false } } }]).toArray()
[
{
"_id" : "tugc2.mongodb.com-2015-01-22T01:20:49-54c050716fa2c02a2608c1f5",
"server" : "tugc2.mongodb.com",
"clientAddr" : "50.23.195.163:56685",
"time" : ISODate("2015-01-22T01:20:49.565Z"),
"what" : "moveChunk.from",
"ns" : "ycsb.usertable",
"details" : {
"min" : {
"_id" : { "$minKey" : 1 }
},
"max" : {
"_id" : NumberLong("-3074457345618258602")
},
"step 1 of 6" : 0,
"step 2 of 6" : 31,
"step 3 of 6" : 4,
"to" : "ycsbTest1",
"from" : "ycsbTest2",
"note" : "aborted"
}
}
]
Clearly aborted != success. For inexplicable reasons it's looking for "errmsg" in "moveChunk.from" - rather than "details.note":"aborted" or something in the new actionlog?