A top command that produces a document that is ~64MB can terminate the server. See top.cpp below (and SERVER-7459 and SERVER-17224)
db/stats/top.cpp
197 virtual bool run(OperationContext* txn, const string&, BSONObj& cmdObj, int, string& errmsg, BSONObjBuilder& result, bool fromRepl) { 198 { 199 BSONObjBuilder b( result.subobjStart( "totals" ) ); 200 b.append( "note", "all times in microseconds" );
If b.append throws, the destructor for b will call BSONObjBuilder::_done. _done will throw an exception if result is 64MB because it will attempt to grow to accommodate EOO, which pushes it past the internal 64MB limit.
- is related to
-
SERVER-7459 BSONObjBuilder and BSONArrayBuilder may throw (msgasserted) in destructor
- Closed