summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorIgor Canadi <icanadi@fb.com>2015-02-11 20:13:18 -0800
committerBenety Goh <benety@mongodb.com>2015-02-13 12:07:09 -0500
commitc1b5595b5fdf93e0599bbdd4154f35bfa10fadd1 (patch)
tree640c08a5b8e2fddde303836ef2d7d0c800216f3f /src
parent45aba2114c18968422b285ce87709043a9455b3c (diff)
downloadmongo-c1b5595b5fdf93e0599bbdd4154f35bfa10fadd1.tar.gz
SERVER-17269 Fix concurrency and sharding tests in Rocks
Signed-off-by: Benety Goh <benety@mongodb.com>
Diffstat (limited to 'src')
-rw-r--r--src/mongo/db/storage/rocks/rocks_index.cpp5
-rw-r--r--src/mongo/db/storage/rocks/rocks_record_store.cpp5
2 files changed, 8 insertions, 2 deletions
diff --git a/src/mongo/db/storage/rocks/rocks_index.cpp b/src/mongo/db/storage/rocks/rocks_index.cpp
index 34068b44e48..d1b159a7f31 100644
--- a/src/mongo/db/storage/rocks/rocks_index.cpp
+++ b/src/mongo/db/storage/rocks/rocks_index.cpp
@@ -544,7 +544,10 @@ namespace mongo {
}
rocksdb::Range wholeRange(_prefix, nextPrefix);
_db->GetApproximateSizes(&wholeRange, 1, &storageSize);
- return static_cast<long long>(storageSize);
+ // There might be some bytes in the WAL that we don't count here. Some
+ // tests depend on the fact that non-empty indexes have non-zero sizes
+ return static_cast<long long>(
+ std::max(storageSize, static_cast<uint64_t>(1)));
}
std::string RocksIndexBase::_makePrefixedKey(const std::string& prefix,
diff --git a/src/mongo/db/storage/rocks/rocks_record_store.cpp b/src/mongo/db/storage/rocks/rocks_record_store.cpp
index b75874b51e2..b711f4f29cb 100644
--- a/src/mongo/db/storage/rocks/rocks_record_store.cpp
+++ b/src/mongo/db/storage/rocks/rocks_record_store.cpp
@@ -191,7 +191,10 @@ namespace mongo {
int64_t RocksRecordStore::storageSize(OperationContext* txn, BSONObjBuilder* extraInfo,
int infoLevel) const {
// we're lying, but that's the best we can do for now
- return _dataSize.load();
+ // We need to make it multiple of 256 to make
+ // jstests/concurrency/fsm_workloads/convert_to_capped_collection.js happy
+ return static_cast<int64_t>(
+ std::max(_dataSize.load() & (~255), static_cast<long long>(256)));
}
RecordData RocksRecordStore::dataFor(OperationContext* txn, const RecordId& loc) const {