Details
Description
When the collStats command is given a scale value that is too large for the integer type, a 4.4 server may fail with a BadValue error. This behavior was addressed in 4.9 and 5.0 when the collStats option handling was converted to using a IDL-generated parser that uses BSONElement::safeNumberInt().
4.4.5:
|
|
> db.t.insert({_id: 0})
|
WriteResult({ "nInserted" : 1 })
|
> db.t.stats().storageSize
|
4096
|
> db.t.stats(100).storageSize
|
40
|
> db.t.stats(Number.MAX_VALUE).storageSize
|
> db.t.stats(Number.MAX_VALUE)
|
{ "ns" : "test.t", "ok" : 0, "errmsg" : "scale has to be >= 1" }
|
|
4.9.0-rc1:
|
|
> db.t.insert({_id: 0})
|
WriteResult({ "nInserted" : 1 })
|
> db.t.stats().storageSize
|
4096
|
> db.t.stats(100).storageSize
|
40
|
> db.t.stats(Number.MAX_VALUE).storageSize
|
0
|
Attachments
Issue Links
- is related to
-
SERVER-54470 Add $collStats aggregate pipeline stage to API version 1
-
- Closed
-
-
SERVER-56689 mongos collStats does not handle large values for scale
-
- Closed
-
-
SERVER-52545 Specify input/output to listIndexes command in IDL
-
- Closed
-
-
SERVER-43902 Apply scaling for totalIndexSize after summing the sizes from individual shards
-
- Closed
-