diff options
author | Gregory Wlodarek <gregory.wlodarek@mongodb.com> | 2021-05-05 20:25:54 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2021-05-05 22:32:48 +0000 |
commit | c48ddf533938bc4ae85ae120b63c1de0ee290e26 (patch) | |
tree | a924614140947f889a10668de646e3e1ab76e779 /src/mongo/db/commands/compact.cpp | |
parent | 7baccddd62e581aa69b1e8d2f59ea3f26e5d8ff0 (diff) | |
download | mongo-c48ddf533938bc4ae85ae120b63c1de0ee290e26.tar.gz |
SERVER-54878 Compact can log negative value for bytesFreed
Diffstat (limited to 'src/mongo/db/commands/compact.cpp')
-rw-r--r-- | src/mongo/db/commands/compact.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/mongo/db/commands/compact.cpp b/src/mongo/db/commands/compact.cpp index cb21eccb014..0eede8c5c2c 100644 --- a/src/mongo/db/commands/compact.cpp +++ b/src/mongo/db/commands/compact.cpp @@ -101,7 +101,15 @@ public: StatusWith<int64_t> status = compactCollection(opCtx, nss); uassertStatusOK(status.getStatus()); - result.appendNumber("bytesFreed", static_cast<long long>(status.getValue())); + + int64_t bytesFreed = status.getValue(); + if (bytesFreed < 0) { + // When compacting a collection that is actively being written to, it is possible that + // the collection is larger at the completion of compaction than when it started. + bytesFreed = 0; + } + + result.appendNumber("bytesFreed", static_cast<long long>(bytesFreed)); return true; } |