querysub 0.34.0 → 0.35.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -174,7 +174,7 @@ const IdentityController = SocketFunction.register(
|
|
|
174
174
|
})
|
|
175
175
|
);
|
|
176
176
|
|
|
177
|
-
const changeIdentityOnce = cache(
|
|
177
|
+
const changeIdentityOnce = cache(async function changeIdentityOnce(connectionId: { nodeId: string }) {
|
|
178
178
|
let nodeId = connectionId.nodeId;
|
|
179
179
|
let threadKeyCert = getThreadKeyCert();
|
|
180
180
|
let issuer = getIdentityCA();
|
|
@@ -191,7 +191,7 @@ const changeIdentityOnce = cache(measureWrap(async function changeIdentityOnce(c
|
|
|
191
191
|
IdentityController.nodes[nodeId].changeIdentity(signature, payload),
|
|
192
192
|
() => new Error(`Timeout calling changeIdentity for ${nodeId}`)
|
|
193
193
|
);
|
|
194
|
-
})
|
|
194
|
+
});
|
|
195
195
|
SocketFunction.addGlobalClientHook(async function identityHook(context) {
|
|
196
196
|
if (context.call.classGuid === IdentityController._classGuid) return;
|
|
197
197
|
// If we are talking to a client they should already know who we are (they established the connection!)
|
|
@@ -275,8 +275,10 @@ async function runHeartbeatAuditLoop() {
|
|
|
275
275
|
// We spent the money checking the node list, so we might as well update it
|
|
276
276
|
setNodeIds(nodeIds);
|
|
277
277
|
|
|
278
|
+
let pendingDeadCount = 0;
|
|
279
|
+
|
|
278
280
|
let removedNodeIds: string[] = [];
|
|
279
|
-
|
|
281
|
+
await Promise.all(nodeIds.map(async nodeId => {
|
|
280
282
|
let lastTime = Number((await archives().get(nodeId))?.toString()) || 0;
|
|
281
283
|
if (lastTime < deadTime) {
|
|
282
284
|
// Increment the dead count
|
|
@@ -290,14 +292,20 @@ async function runHeartbeatAuditLoop() {
|
|
|
290
292
|
deadCount.delete(nodeId);
|
|
291
293
|
} else {
|
|
292
294
|
console.log(yellow(`Node ${nodeId} was found to be dead, last heartbeat at ${formatDateTime(lastTime)} < dead threshold at ${formatDateTime(deadTime)}, dead count ${count}/${DEAD_CHECK_COUNT}. Total nodes seen ${nodeIds.length}`));
|
|
295
|
+
pendingDeadCount++;
|
|
293
296
|
}
|
|
294
297
|
} else {
|
|
295
298
|
deadCount.delete(nodeId);
|
|
296
299
|
diskLog("Read node heartbeat", { nodeId, lastTime });
|
|
297
300
|
}
|
|
301
|
+
}));
|
|
302
|
+
if (pendingDeadCount) {
|
|
303
|
+
console.log(blue(`Pending dead nodes ${pendingDeadCount}/${nodeIds.length}`));
|
|
298
304
|
}
|
|
299
305
|
|
|
300
306
|
if (removedNodeIds.length > 0) {
|
|
307
|
+
console.log(blue(`Removed ${removedNodeIds.length}/${nodeIds.length} nodes from node list`), { removedNodeIds });
|
|
308
|
+
await syncArchives();
|
|
301
309
|
void tellEveryoneNodesChanges();
|
|
302
310
|
}
|
|
303
311
|
});
|