mirror of
https://github.com/mongodb/mongo.git
synced 2024-12-01 01:21:03 +01:00
26 lines
808 B
JavaScript
26 lines
808 B
JavaScript
// SERVER-17224 An aggregation result with exactly the right size could crash the server rather than
|
|
// returning an error.
|
|
(function() {
|
|
'use strict';
|
|
|
|
var t = db.server17224;
|
|
t.drop();
|
|
|
|
// first 63MB
|
|
for (var i = 0; i < 63; i++) {
|
|
t.insert({a: new Array(1024 * 1024 + 1).join('a')});
|
|
}
|
|
|
|
// the remaining ~1MB with room for field names and other overhead
|
|
t.insert({a: new Array(1024 * 1024 - 1105).join('a')});
|
|
|
|
// do not use cursor form, since it has a different workaroud for this issue.
|
|
assert.commandFailed(db.runCommand({
|
|
aggregate: t.getName(),
|
|
pipeline: [{$match: {}}, {$group: {_id: null, arr: {$push: {a: '$a'}}}}]
|
|
}));
|
|
|
|
// Make sure the server is still up.
|
|
assert.commandWorked(db.runCommand('ping'));
|
|
}());
|