mirror of
https://github.com/nodejs/node.git
synced 2024-12-01 16:10:02 +01:00
Helpful error when child_process.exec hit maxBuffer
This commit is contained in:
parent
1f041fe73e
commit
cb06abe1e5
@ -60,6 +60,8 @@ exports.execFile = function(file /* args, options, callback */) {
|
||||
var exited = false;
|
||||
var timeoutId;
|
||||
|
||||
var err;
|
||||
|
||||
function exithandler(code, signal) {
|
||||
if (exited) return;
|
||||
exited = true;
|
||||
@ -71,7 +73,9 @@ exports.execFile = function(file /* args, options, callback */) {
|
||||
|
||||
if (!callback) return;
|
||||
|
||||
if (code === 0 && signal === null) {
|
||||
if (err) {
|
||||
callback(err, stdout, stderr);
|
||||
} else if (code === 0 && signal === null) {
|
||||
callback(null, stdout, stderr);
|
||||
} else {
|
||||
var e = new Error('Command failed: ' + stderr);
|
||||
@ -103,6 +107,7 @@ exports.execFile = function(file /* args, options, callback */) {
|
||||
child.stdout.addListener('data', function(chunk) {
|
||||
stdout += chunk;
|
||||
if (stdout.length > options.maxBuffer) {
|
||||
err = new Error('maxBuffer exceeded.');
|
||||
kill();
|
||||
}
|
||||
});
|
||||
@ -110,6 +115,7 @@ exports.execFile = function(file /* args, options, callback */) {
|
||||
child.stderr.addListener('data', function(chunk) {
|
||||
stderr += chunk;
|
||||
if (stderr.length > options.maxBuffer) {
|
||||
err = new Error('maxBuffer exceeded.');
|
||||
kill();
|
||||
}
|
||||
});
|
||||
|
10
test/simple/test-exec-max-buffer.js
Normal file
10
test/simple/test-exec-max-buffer.js
Normal file
@ -0,0 +1,10 @@
|
||||
var common = require('../common');
|
||||
var exec = require('child_process').exec;
|
||||
var assert = require('assert');
|
||||
|
||||
var cmd = 'echo "hello world"';
|
||||
|
||||
exec(cmd, { maxBuffer: 5 }, function(err, stdout, stderr) {
|
||||
assert.ok(err);
|
||||
assert.ok(/maxBuffer/.test(err.message));
|
||||
});
|
Loading…
Reference in New Issue
Block a user