Chunk::Chunk(OperationContext* txn, ChunkManager* manager, const ChunkType& from) : _manager(manager), _lastmod(from.getVersion()), _dataWritten(mkDataWritten()) { string ns = from.getNS(); _shardId = from.getShard(); verify(_lastmod.isSet()); _min = from.getMin().getOwned(); _max = from.getMax().getOwned(); _jumbo = from.getJumbo(); uassert(10170, "Chunk needs a ns", !ns.empty()); uassert(13327, "Chunk ns must match server ns", ns == _manager->getns()); uassert(10172, "Chunk needs a min", !_min.isEmpty()); uassert(10173, "Chunk needs a max", !_max.isEmpty()); uassert(10171, "Chunk needs a server", grid.shardRegistry()->getShard(txn, _shardId)); }