Fixed MongoDB bulk write of events and power events.
Ylian Saint-Hilaire committed
Aug 26, 2021 at 14:48 UTC
88ae5a30b49e48733564dbbd2c63974bf9887fe3
2 files changed
+8
-3
db.js
+2
-2
@@ -1901,7 +1901,7 @@ module.exports.CreateDB = function (parent, func) {
1901
// Perform pending operations
1902
obj.dbCounters.eventsSetBulk++;
1903
var ops = [];
1904
- for (var i in obj.eventsFilePendingSets) { ops.push({ document: obj.eventsFilePendingSets[i] }); }
1904
+ for (var i in obj.eventsFilePendingSets) { ops.push({ insertOne: { document: obj.eventsFilePendingSets[i] } }); }
1905
obj.eventsFilePendingCbs = obj.eventsFilePendingCb;
1906
obj.eventsFilePendingCb = null;
1907
obj.eventsFilePendingSets = null;
@@ -1920,7 +1920,7 @@ module.exports.CreateDB = function (parent, func) {
1920
// Perform pending operations
1921
obj.dbCounters.powerSetBulk++;
1922
var ops = [];
1923
- for (var i in obj.powerFilePendingSets) { ops.push({ document: obj.powerFilePendingSets[i] }); }
1923
+ for (var i in obj.powerFilePendingSets) { ops.push({ insertOne: { document: obj.powerFilePendingSets[i] } }); }
1924
obj.powerFilePendingCbs = obj.powerFilePendingCb;
1925
obj.powerFilePendingCb = null;
1926
obj.powerFilePendingSets = null;
meshagent.js
+6
-1
@@ -1481,8 +1481,13 @@ module.exports.CreateMeshAgent = function (parent, db, ws, req, args, domain) {
1481
// TODO: This this extra stats from the tunnel, you can merge this into the tunnel event in the database.
1482
//console.log(command);
1483
1484
+ // Validate input
1485
+ if ((command.sent == null) || (typeof command.sent != 'string')) return;
1486
+ if ((command.sentActual == null) || (typeof command.sentActual != 'string')) return;
1487
+ if ((command.sentActual == null) || (typeof command.sentActual != 'number')) return;
1488
+
1489
// Event the session closed compression data.
1485
- var event = { etype: 'node', action: 'sessioncompression', nodeid: obj.dbNodeKey, domain: domain.id, sent: command.sent, sentActual: command.sentActual, msgid: 54, msgArgs: [command.sentRatio, command.sent, command.sentActual], msg: 'Agent closed session with ' + command.sentRatio + '% agent to server compression. Sent: ' + command.sent + ', Compressed: ' + command.sentActual + '.' };
1490
+ var event = { etype: 'node', action: 'sessioncompression', nodeid: obj.dbNodeKey, domain: domain.id, sent: parseInt(command.sent), sentActual: parseInt(command.sentActual), msgid: 54, msgArgs: [command.sentRatio, parseInt(command.sent), parseInt(command.sentActual)], msg: 'Agent closed session with ' + command.sentRatio + '% agent to server compression. Sent: ' + command.sent + ', Compressed: ' + command.sentActual + '.' };
1491
parent.parent.DispatchEvent(parent.CreateMeshDispatchTargets(obj.dbMeshKey, [obj.dbNodeKey]), obj, event);
1492
break;
1493
}