The changes introduced in SERVER-27065 made it possible to move-construct or move-assign into a ClientCursorPin, which left an old ClientCursorPin object around which no longer corresponds to an actual pinned cursor, since ownership was transferred during the move. Nonetheless, when the old ClientCursorPin goes out of scope, it will decrement the number of pinned cursors, one more time than necessary. This happens during a getMore, so can be shown using serverStatus:
> db.foo.find() { "_id" : ObjectId("58813b945c612bc58ce4c0e3"), "x" : 1 } { "_id" : ObjectId("588b6e69bf0c887f6da894b4"), "x" : 1 } > db.serverStatus().metrics.cursor { "timedOut" : NumberLong(0), "open" : { "noTimeout" : NumberLong(0), "pinned" : NumberLong(0), "total" : NumberLong(0) } } > db.foo.find().batchSize(1) { "_id" : ObjectId("58813b945c612bc58ce4c0e3"), "x" : 1 } { "_id" : ObjectId("588b6e69bf0c887f6da894b4"), "x" : 1 } > db.serverStatus().metrics.cursor { "timedOut" : NumberLong(0), "open" : { "noTimeout" : NumberLong(0), "pinned" : NumberLong(-2), "total" : NumberLong(0) } }