fix CIRA node overwrite on DB error (#7674)

Jakub Maruszczak committed Mar 15, 2026 at 12:13 UTC f9022e4a407c55e37d956341927dc241112c1356
1 file changed +3
mpsserver.js
+3
@@ -459,6 +459,7 @@ module.exports.CreateMpsServer = function (parent, db, args, certificates) {
459
460 // Fetch the node
461 obj.db.Get(socket.tag.nodeid, function (err, nodes) {
462 + if (err) { parent.debug('mps', 'CIRA db.Get error for ' + socket.tag.nodeid + ': ' + err); obj.close(socket); return; }
463 if ((nodes == null) || (nodes.length !== 1)) {
464 var mesh = obj.parent.webserver.meshes[socket.tag.meshid];
465 if (mesh == null) {
@@ -692,6 +693,7 @@ module.exports.CreateMpsServer = function (parent, db, args, certificates) {
693 socket.tag.connectTime = Date.now();
694
695 obj.db.Get(socket.tag.nodeid, function (err, nodes) {
696 + if (err) { parent.debug('mps', 'CIRA db.Get error for ' + socket.tag.nodeid + ': ' + err); obj.close(socket); return; }
697 if ((nodes == null) || (nodes.length !== 1)) {
698 // Check if we already have too many devices for this domain
699 if (domain.limits && (typeof domain.limits.maxdevices == 'number')) {
@@ -770,6 +772,7 @@ module.exports.CreateMpsServer = function (parent, db, args, certificates) {
772 } else if (initialMesh.mtype == 2) { // If this is a agent mesh, search the mesh for this device UUID
773 // Intel AMT GUID (socket.tag.SystemId) will be used to search the node
774 obj.db.getAmtUuidMeshNode(initialMesh.domain, initialMesh.mtype, socket.tag.SystemId, function (err, nodes) { // TODO: Need to optimize this request with indexes
775 + if (err) { parent.debug('mps', 'CIRA db.Get error for ' + socket.tag.SystemId + ': ' + err); obj.close(socket); return; }
776 if ((nodes == null) || (nodes.length === 0) || (obj.parent.webserver.meshes == null)) {
777 // New CIRA connection for unknown node, create a new device.
778 unknownNodeCount++;