Monday, 3 April 2017

FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - process out of memory?

I am calling api based on user state selection on angular client , for some states i see it throws below erro , I never see this error before so i need some help here how can i resole this issue ?

app.js

app.get('/resolveData', function(req, res) {
    var env = req.query.env;
    logDirectory.resolveData(env, function(err, data) {
        if (err) {
            res.sendStatus(500);
        } else {
            res.json(data);
        }
    });
});

Ctrl.js

resolveData: function(env, cb) {
    var dir = logsDirectory + "/" + env;
    var results = [];
    var logFile;
    var regex = /\[\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\w+\]/;
    fs.readdir(dir, function(err, files) {
        if (err) {
            throw err;
        }
        logFile = getNewestFile(files, dir)
        console.log(logFile);
        var items = [];
        var item = [];
        var readStream = fs.createReadStream(dir + '/' + logFile, 'utf8');
        readStream.pipe(split()).on('data', function(line) {
            if (regex.test(line)) {
                item = [];
                items.push(item);
            }
            item.push(line);
            var lines = items.map(function(item) {
                return item.join(' ');
            });
            lines.forEach(function(line) {
                results.push({
                    value: line
                });
            });
        });
        readStream.on('end', function() {
            var slicedArray = results.slice(Math.max(results.length - 200, 1));
            cb(null, slicedArray);
            results = [];
        });
    });

    function getNewestFile(files, path) {
        var out = [];
        files.forEach(function(file) {
            var stats = fs.statSync(path + "/" + file);
            if (stats.isFile()) {
                out.push({
                    "file": file,
                    "mtime": stats.mtime.getTime()
                });
            }
        });
        out.sort(function(a, b) {
            return b.mtime - a.mtime;
        })
        return (out.length > 0) ? out[0].file : "";
    }
}

Error

722122 ms: Scavenge 1413.7(1457.6) - > 1413.7(1457.6) MB, 5.6 / 0 ms(+3.0 ms in 1 steps since last GC)[allocation failure][incremental marking delaying mark - sweep].
722374 ms: Mark - sweep 1413.7(1457.6) - > 1413.7(1457.6) MB, 251.9 / 0 ms(+4.0 ms in 2 steps since start of marking, biggest step 3.0 ms)[last resort gc].
722617 ms: Mark - sweep 1413.7(1457.6) - > 1413.7(1457.6) MB, 243.1 / 0 ms[last resort gc].


    <
    -- - JS stacktrace-- - >

    ===
    = JS stack trace === === === === === === === === === === === === === ==

    Security context: 000003 B8F34B4639 < JS Object >
    1: /* anonymous */ (aka /* anonymous */ )[C: \Users\ sh529u\ WebstormProjects\ Ulog - 0\ ulog\ logs\ logsDirectories.js: 71][pc = 0000025608426035](this = 000003 B8F34041B9 < undefined > , line = 0000031 DFA004101 < Very long string[3799] > )
2: arguments adaptor frame: 3 - > 1
3: InnerArrayForEach(aka InnerArrayForEach)[native array.js: ~924][pc = 000002560849 B37E](this = 000003 B8F34041B9 < undefined > , bk = 0000...



via hussain

No comments:

Post a Comment