@cello-protocol/daemon 0.0.209 → 0.0.211
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/dist/bin/cello-daemon.js +11 -1
- package/dist/bin/cello-daemon.js.map +1 -1
- package/dist/connect-or-start.js +8 -2
- package/dist/connect-or-start.js.map +1 -1
- package/dist/log-collapse.d.ts +66 -0
- package/dist/log-collapse.d.ts.map +1 -0
- package/dist/log-collapse.js +244 -0
- package/dist/log-collapse.js.map +1 -0
- package/dist/log-rotate.d.ts +67 -0
- package/dist/log-rotate.d.ts.map +1 -0
- package/dist/log-rotate.js +134 -0
- package/dist/log-rotate.js.map +1 -0
- package/dist/session-relay.d.ts.map +1 -1
- package/dist/session-relay.js +61 -6
- package/dist/session-relay.js.map +1 -1
- package/package.json +5 -5
package/dist/bin/cello-daemon.js
CHANGED
|
@@ -22,6 +22,7 @@ import { RandomizedPollScheduler } from "../manifest-poll-scheduler.js";
|
|
|
22
22
|
// race" from "broken" — connectOrStart relies on exactly that distinction, so the constant is shared
|
|
23
23
|
// rather than written down twice.
|
|
24
24
|
import { DaemonAlreadyRunningError, EXIT_ALREADY_RUNNING } from "../singleton-lock.js";
|
|
25
|
+
import { createCollapsingLogger } from "../log-collapse.js";
|
|
25
26
|
import { extractErrorMessage } from "../error-message.js";
|
|
26
27
|
const MAX_CONNECTIONS = 16;
|
|
27
28
|
// DOD-REGISTRY-1: build-time-pinned registry signer pubkey. The daemon polls GET /registry
|
|
@@ -31,7 +32,7 @@ const REGISTRY_SIGNER_PUBKEY = "d4f9a531205a3aca23dede0ad5f4fb6cd42260c8bbae5f33
|
|
|
31
32
|
const REGISTRY_POLL_MIN_MS = 5 * 60_000; // 5 minutes
|
|
32
33
|
const REGISTRY_POLL_MAX_MS = 15 * 60_000; // 15 minutes
|
|
33
34
|
// Composition root: stdout JSON logger
|
|
34
|
-
const
|
|
35
|
+
const stdoutLogger = {
|
|
35
36
|
debug(event, context) {
|
|
36
37
|
const line = JSON.stringify({ level: "debug", event, ...context, ts: new Date().toISOString() });
|
|
37
38
|
process.stdout.write(line + "\n");
|
|
@@ -49,6 +50,15 @@ const logger = {
|
|
|
49
50
|
process.stdout.write(line + "\n");
|
|
50
51
|
},
|
|
51
52
|
};
|
|
53
|
+
/**
|
|
54
|
+
* DOD-M15-LOGBOUND-1: every line the daemon writes goes through the repeat collapser.
|
|
55
|
+
*
|
|
56
|
+
* It is wrapped at the composition root rather than at call sites, because a discipline every
|
|
57
|
+
* call site has to remember is not a property. The measured cost of not having it was 168 MB of
|
|
58
|
+
* one sentence, and eleven hours in which the loop producing it was invisible inside its own
|
|
59
|
+
* output.
|
|
60
|
+
*/
|
|
61
|
+
const logger = createCollapsingLogger(stdoutLogger);
|
|
52
62
|
const celloDir = process.env.CELLO_DIR || join(homedir(), ".cello");
|
|
53
63
|
const socketPath = join(celloDir, "daemon.sock");
|
|
54
64
|
const lockFilePath = join(celloDir, "daemon.lock");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cello-daemon.js","sourceRoot":"","sources":["../../src/bin/cello-daemon.ts"],"names":[],"mappings":";AACA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,yBAAyB,EAAE,mBAAmB,EAAuB,MAAM,yBAAyB,CAAC;AAC9G,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,+BAA+B,EAAE,MAAM,2BAA2B,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACxE,mGAAmG;AACnG,qGAAqG;AACrG,kCAAkC;AAClC,OAAO,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEvF,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,MAAM,eAAe,GAAG,EAAE,CAAC;AAE3B,2FAA2F;AAC3F,yFAAyF;AACzF,gGAAgG;AAChG,MAAM,sBAAsB,GAAG,kEAAkE,CAAC;AAClG,MAAM,oBAAoB,GAAG,CAAC,GAAG,MAAM,CAAC,CAAE,YAAY;AACtD,MAAM,oBAAoB,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC,aAAa;AAEvD,uCAAuC;AACvC,MAAM,
|
|
1
|
+
{"version":3,"file":"cello-daemon.js","sourceRoot":"","sources":["../../src/bin/cello-daemon.ts"],"names":[],"mappings":"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"}
|
package/dist/connect-or-start.js
CHANGED
|
@@ -16,8 +16,8 @@
|
|
|
16
16
|
* forever, and a daemon that trusted it would never start again).
|
|
17
17
|
*/
|
|
18
18
|
import { spawn } from "node:child_process";
|
|
19
|
-
import { openSync } from "node:fs";
|
|
20
19
|
import { mkdir, readFile } from "node:fs/promises";
|
|
20
|
+
import { openLogHandle } from "./log-rotate.js";
|
|
21
21
|
import { join } from "node:path";
|
|
22
22
|
import { readLock, removeLock } from "./lock-file.js";
|
|
23
23
|
import { probeSingletonLock, SINGLETON_LOCK_FILENAME, EXIT_ALREADY_RUNNING } from "./singleton-lock.js";
|
|
@@ -111,7 +111,13 @@ async function spawnDaemon(celloDir, daemonBin, lockFilePath, logger) {
|
|
|
111
111
|
// then hits a broken pipe and, with no stdout 'error' handler, EPIPE-crashes it. The
|
|
112
112
|
// daemon would "start" and die a second later → ECONNREFUSED on the socket. Writing to
|
|
113
113
|
// a file also gives operators a durable ~/.cello/daemon.log to debug from.
|
|
114
|
-
|
|
114
|
+
//
|
|
115
|
+
// DOD-M15-LOGBOUND-1: and it is rotated HERE, immediately before the handle is taken, because
|
|
116
|
+
// this is the only moment nothing holds it. The daemon writes to the descriptor below, not to
|
|
117
|
+
// the path, so once the child has it a rename moves the name and nothing else. `openLogHandle`
|
|
118
|
+
// keeps the rotate and the open in one call for that reason — splitting them is how the order
|
|
119
|
+
// gets reversed later by someone who cannot see why it mattered.
|
|
120
|
+
const out = openLogHandle(logPath);
|
|
115
121
|
const child = spawn(process.execPath, [daemonBin], {
|
|
116
122
|
detached: true,
|
|
117
123
|
stdio: ["ignore", out, out],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connect-or-start.js","sourceRoot":"","sources":["../src/connect-or-start.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"connect-or-start.js","sourceRoot":"","sources":["../src/connect-or-start.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import type { Logger } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* DOD-M15-LOGBOUND-1 part A — write a repeating log line ONCE, then count it.
|
|
4
|
+
*
|
|
5
|
+
* The file that produced this order was 180 MB and 469,065 lines. 168 MB of it — 95% — was a
|
|
6
|
+
* single `session.key.announce.failed` line repeated 413,590 times, byte-identical apart from its
|
|
7
|
+
* timestamp, from a retry that never gave up.
|
|
8
|
+
*
|
|
9
|
+
* **The disk was the smaller half.** That loop hid behind its own output for eleven hours. A file
|
|
10
|
+
* that is 95% one sentence is not a diagnostic surface; it is a haystack the daemon builds around
|
|
11
|
+
* its own needle, faster than anyone can read it.
|
|
12
|
+
*
|
|
13
|
+
* **This is the rule `045-REFUSALSTORM` applies to the operator's inbox, one layer down.** Same
|
|
14
|
+
* idea in two places, not two mechanisms.
|
|
15
|
+
*
|
|
16
|
+
* ⚠️ **This makes a storm cheap. It does not make a storm correct.** The loops themselves are
|
|
17
|
+
* fixed by `045-REFUSALSTORM` and `DOD-M15-KEYANNOUNCE-LOOP-1`; this unit must not be cited as
|
|
18
|
+
* covering either.
|
|
19
|
+
*
|
|
20
|
+
* ## The gate is a RATE, not a count — and the first build got this wrong
|
|
21
|
+
*
|
|
22
|
+
* The obvious design suppresses everything after the first occurrence and re-reports at the 10th,
|
|
23
|
+
* 100th, 1,000th. It was built that way, and review found two defects in it that matter more than
|
|
24
|
+
* the bytes it saved:
|
|
25
|
+
*
|
|
26
|
+
* 1. **A bounded retry that failed three times printed one line.** Three is not a power of ten, so
|
|
27
|
+
* attempts two and three were dropped and nothing anywhere ever said they happened. An operator
|
|
28
|
+
* whose standing receiver cannot bind then reads one `session.node.create.failed` followed by
|
|
29
|
+
* `session.standing_receiver.dead`, and cannot tell a retry that ran from a retry that never
|
|
30
|
+
* fired — which is the first thing they would go and check.
|
|
31
|
+
* 2. **A chronic failure went permanently silent.** A run never expired, so something failing once
|
|
32
|
+
* an hour reached its 10th occurrence on day one and was next written on day four. The daemon
|
|
33
|
+
* stopped reporting an ongoing failure precisely because it had been failing for a long time.
|
|
34
|
+
*
|
|
35
|
+
* So nothing is suppressed until a key is genuinely FLOODING: more than {@link STORM_BURST}
|
|
36
|
+
* occurrences inside {@link STORM_WINDOW_MS}. Below that rate every line is written exactly as it
|
|
37
|
+
* was before this unit existed. The measured storm ran at 4–17 lines/second and trips the gate on
|
|
38
|
+
* its 21st line; an ordinary two-to-nine repeat never trips it at all, and neither does a slow
|
|
39
|
+
* chronic failure — which is how both defects above stay fixed rather than traded against each
|
|
40
|
+
* other.
|
|
41
|
+
*/
|
|
42
|
+
/** Occurrences of one key inside one window that mean "this is a flood, not a repeat". */
|
|
43
|
+
export declare const STORM_BURST = 20;
|
|
44
|
+
/** The window the burst is measured over. Also the idle period that ENDS a storm. */
|
|
45
|
+
export declare const STORM_WINDOW_MS = 10000;
|
|
46
|
+
/**
|
|
47
|
+
* Bound on the table. Without one, the thing that removes an unbounded log would itself be an
|
|
48
|
+
* unbounded map — the same defect one layer further in.
|
|
49
|
+
*
|
|
50
|
+
* Eviction is least-recently-USED, and that is load-bearing rather than tidy. Plenty of events
|
|
51
|
+
* carry a value unique to the occurrence — a fresh root hash, a content hash, a peer id — so in
|
|
52
|
+
* ordinary operation the table is mostly keys that will never be seen again. Under
|
|
53
|
+
* insertion-order eviction the one key the table exists to hold, the one being hit thousands of
|
|
54
|
+
* times a second, is evicted on the same schedule as keys that are read once; the count resets and
|
|
55
|
+
* the single number that made the storm diagnosable is destroyed. Under LRU a never-repeating key
|
|
56
|
+
* is always the oldest and is always the first to go.
|
|
57
|
+
*/
|
|
58
|
+
export declare const LOG_COLLAPSE_MAX_KEYS = 2048;
|
|
59
|
+
/**
|
|
60
|
+
* Wrap a logger so a FLOODING line is written once and then counted.
|
|
61
|
+
*
|
|
62
|
+
* Wrapping the composition root covers every call site at once, which is what makes this a
|
|
63
|
+
* property of the daemon's logging rather than a discipline each call site has to remember.
|
|
64
|
+
*/
|
|
65
|
+
export declare function createCollapsingLogger(sink: Logger, now?: () => number): Logger;
|
|
66
|
+
//# sourceMappingURL=log-collapse.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log-collapse.d.ts","sourceRoot":"","sources":["../src/log-collapse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,0FAA0F;AAC1F,eAAO,MAAM,WAAW,KAAK,CAAC;AAE9B,qFAAqF;AACrF,eAAO,MAAM,eAAe,QAAS,CAAC;AAEtC;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,qBAAqB,OAAO,CAAC;AA0E1C;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,MAAiB,GAAG,MAAM,CAyIzF"}
|
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DOD-M15-LOGBOUND-1 part A — write a repeating log line ONCE, then count it.
|
|
3
|
+
*
|
|
4
|
+
* The file that produced this order was 180 MB and 469,065 lines. 168 MB of it — 95% — was a
|
|
5
|
+
* single `session.key.announce.failed` line repeated 413,590 times, byte-identical apart from its
|
|
6
|
+
* timestamp, from a retry that never gave up.
|
|
7
|
+
*
|
|
8
|
+
* **The disk was the smaller half.** That loop hid behind its own output for eleven hours. A file
|
|
9
|
+
* that is 95% one sentence is not a diagnostic surface; it is a haystack the daemon builds around
|
|
10
|
+
* its own needle, faster than anyone can read it.
|
|
11
|
+
*
|
|
12
|
+
* **This is the rule `045-REFUSALSTORM` applies to the operator's inbox, one layer down.** Same
|
|
13
|
+
* idea in two places, not two mechanisms.
|
|
14
|
+
*
|
|
15
|
+
* ⚠️ **This makes a storm cheap. It does not make a storm correct.** The loops themselves are
|
|
16
|
+
* fixed by `045-REFUSALSTORM` and `DOD-M15-KEYANNOUNCE-LOOP-1`; this unit must not be cited as
|
|
17
|
+
* covering either.
|
|
18
|
+
*
|
|
19
|
+
* ## The gate is a RATE, not a count — and the first build got this wrong
|
|
20
|
+
*
|
|
21
|
+
* The obvious design suppresses everything after the first occurrence and re-reports at the 10th,
|
|
22
|
+
* 100th, 1,000th. It was built that way, and review found two defects in it that matter more than
|
|
23
|
+
* the bytes it saved:
|
|
24
|
+
*
|
|
25
|
+
* 1. **A bounded retry that failed three times printed one line.** Three is not a power of ten, so
|
|
26
|
+
* attempts two and three were dropped and nothing anywhere ever said they happened. An operator
|
|
27
|
+
* whose standing receiver cannot bind then reads one `session.node.create.failed` followed by
|
|
28
|
+
* `session.standing_receiver.dead`, and cannot tell a retry that ran from a retry that never
|
|
29
|
+
* fired — which is the first thing they would go and check.
|
|
30
|
+
* 2. **A chronic failure went permanently silent.** A run never expired, so something failing once
|
|
31
|
+
* an hour reached its 10th occurrence on day one and was next written on day four. The daemon
|
|
32
|
+
* stopped reporting an ongoing failure precisely because it had been failing for a long time.
|
|
33
|
+
*
|
|
34
|
+
* So nothing is suppressed until a key is genuinely FLOODING: more than {@link STORM_BURST}
|
|
35
|
+
* occurrences inside {@link STORM_WINDOW_MS}. Below that rate every line is written exactly as it
|
|
36
|
+
* was before this unit existed. The measured storm ran at 4–17 lines/second and trips the gate on
|
|
37
|
+
* its 21st line; an ordinary two-to-nine repeat never trips it at all, and neither does a slow
|
|
38
|
+
* chronic failure — which is how both defects above stay fixed rather than traded against each
|
|
39
|
+
* other.
|
|
40
|
+
*/
|
|
41
|
+
/** Occurrences of one key inside one window that mean "this is a flood, not a repeat". */
|
|
42
|
+
export const STORM_BURST = 20;
|
|
43
|
+
/** The window the burst is measured over. Also the idle period that ENDS a storm. */
|
|
44
|
+
export const STORM_WINDOW_MS = 10_000;
|
|
45
|
+
/**
|
|
46
|
+
* Bound on the table. Without one, the thing that removes an unbounded log would itself be an
|
|
47
|
+
* unbounded map — the same defect one layer further in.
|
|
48
|
+
*
|
|
49
|
+
* Eviction is least-recently-USED, and that is load-bearing rather than tidy. Plenty of events
|
|
50
|
+
* carry a value unique to the occurrence — a fresh root hash, a content hash, a peer id — so in
|
|
51
|
+
* ordinary operation the table is mostly keys that will never be seen again. Under
|
|
52
|
+
* insertion-order eviction the one key the table exists to hold, the one being hit thousands of
|
|
53
|
+
* times a second, is evicted on the same schedule as keys that are read once; the count resets and
|
|
54
|
+
* the single number that made the storm diagnosable is destroyed. Under LRU a never-repeating key
|
|
55
|
+
* is always the oldest and is always the first to go.
|
|
56
|
+
*/
|
|
57
|
+
export const LOG_COLLAPSE_MAX_KEYS = 2048;
|
|
58
|
+
/** Separator for key parts. A control character cannot appear in an event name or a field value. */
|
|
59
|
+
const SEP = String.fromCharCode(31);
|
|
60
|
+
/**
|
|
61
|
+
* The collapse key.
|
|
62
|
+
*
|
|
63
|
+
* ⚠️ **IT MUST NOT BE LOOSER THAN event + session + reason**, and it is exactly that. Keying on the
|
|
64
|
+
* event name alone would merge a hundred sessions failing once each into one line reading "x100" —
|
|
65
|
+
* strictly worse than the noise this removes, because a fan-out is the shape you most need to see
|
|
66
|
+
* and it would be reported as a repeat. The level is in the key too: the same event at `warn` and
|
|
67
|
+
* at `error` is two facts.
|
|
68
|
+
*
|
|
69
|
+
* **And it is deliberately NOT the whole payload**, which is the second thing the first build got
|
|
70
|
+
* wrong. Keying on every field looked tighter and therefore safer, and it is neither:
|
|
71
|
+
*
|
|
72
|
+
* - `session.key.announce.failed` — the very event this unit was written for — carries an `attempt`
|
|
73
|
+
* counter. Every attempt is a different payload, so a full-payload key collapses NOTHING on the
|
|
74
|
+
* one path that produced 168 MB. The historical storm only collapsed because the pre-fix bug
|
|
75
|
+
* pinned `attempt` at 1; the fix that made the retry chain correct is what would have defeated it.
|
|
76
|
+
* - A loop minting a fresh key per iteration also churns the whole table at the rate it runs,
|
|
77
|
+
* evicting every other run in it.
|
|
78
|
+
*
|
|
79
|
+
* The cost of the looser key is paid elsewhere rather than ignored: because suppression is gated on
|
|
80
|
+
* a RATE, a payload field that changes between occurrences is written in full at any ordinary rate,
|
|
81
|
+
* and is only folded once the key is genuinely flooding — at which point a count and a rate are
|
|
82
|
+
* more use than ten thousand individual values. Milestones republish the most recent payload, so
|
|
83
|
+
* the newest values stay on the record.
|
|
84
|
+
*
|
|
85
|
+
* Returns `null` when the key cannot be built from what the call site passed. **Such a line does
|
|
86
|
+
* not collapse at all** — losing the saving is correct where losing the distinction is not.
|
|
87
|
+
*/
|
|
88
|
+
function collapseKey(level, event, ctx) {
|
|
89
|
+
const sessionId = ctx["sessionId"];
|
|
90
|
+
const reason = ctx["reason"];
|
|
91
|
+
if (typeof sessionId !== "string" && typeof reason !== "string")
|
|
92
|
+
return null;
|
|
93
|
+
return [level, event, String(sessionId ?? ""), String(reason ?? "")].join(SEP);
|
|
94
|
+
}
|
|
95
|
+
/** First occurrence, then the 10th, 100th, 1,000th — a power of ten. */
|
|
96
|
+
function isMilestone(count) {
|
|
97
|
+
if (count === 1)
|
|
98
|
+
return true;
|
|
99
|
+
let n = count;
|
|
100
|
+
while (n % 10 === 0)
|
|
101
|
+
n /= 10;
|
|
102
|
+
return n === 1;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Wrap a logger so a FLOODING line is written once and then counted.
|
|
106
|
+
*
|
|
107
|
+
* Wrapping the composition root covers every call site at once, which is what makes this a
|
|
108
|
+
* property of the daemon's logging rather than a discipline each call site has to remember.
|
|
109
|
+
*/
|
|
110
|
+
export function createCollapsingLogger(sink, now = Date.now) {
|
|
111
|
+
const runs = new Map();
|
|
112
|
+
/**
|
|
113
|
+
* Report a fold that has ended: how many lines it swallowed, and over how long.
|
|
114
|
+
*
|
|
115
|
+
* ⚠️ **THE WINDOW IS MEASURED TO THE LAST OCCURRENCE, NOT TO NOW**, and getting that wrong made
|
|
116
|
+
* this line state the opposite of what happened. A flood of 479 lines over 25 seconds — 19 a
|
|
117
|
+
* second — was reported as `repeatWindowMs: 21623950`, six hours, because the idle gap that
|
|
118
|
+
* proved the flood was over had already been folded into the elapsed time. An operator dividing
|
|
119
|
+
* those two numbers reads 1.3 an hour: a trickle, when it was the storm.
|
|
120
|
+
*/
|
|
121
|
+
function closeRun(run) {
|
|
122
|
+
sink[run.level](run.event, {
|
|
123
|
+
...run.lastCtx,
|
|
124
|
+
repeatedCount: run.suppressedCount,
|
|
125
|
+
repeatWindowMs: Math.max(0, run.lastAtMs - run.suppressStartMs),
|
|
126
|
+
repeatEnded: true,
|
|
127
|
+
});
|
|
128
|
+
run.suppressing = false;
|
|
129
|
+
run.suppressedCount = 0;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* One amortised look at the oldest run per line written.
|
|
133
|
+
*
|
|
134
|
+
* Without it a fold that simply STOPS is never reported: the closing line is emitted by the
|
|
135
|
+
* key's own next occurrence, and a storm whose cause is fixed — or whose daemon is shut down —
|
|
136
|
+
* has no next occurrence. The measured 413,590-line storm would have ended on
|
|
137
|
+
* `repeatedCount: 100000`, understating itself fourfold, with nothing saying it had finished.
|
|
138
|
+
*/
|
|
139
|
+
function sweepOldest(at, currentKey) {
|
|
140
|
+
const oldest = runs.entries().next();
|
|
141
|
+
if (oldest.done)
|
|
142
|
+
return;
|
|
143
|
+
const [key, run] = oldest.value;
|
|
144
|
+
if (key === currentKey)
|
|
145
|
+
return;
|
|
146
|
+
if (at - run.lastAtMs < STORM_WINDOW_MS)
|
|
147
|
+
return;
|
|
148
|
+
if (run.suppressing)
|
|
149
|
+
closeRun(run);
|
|
150
|
+
runs.delete(key);
|
|
151
|
+
}
|
|
152
|
+
function emit(level, event, ctx) {
|
|
153
|
+
const key = collapseKey(level, event, ctx);
|
|
154
|
+
if (key === null) {
|
|
155
|
+
sink[level](event, ctx);
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
const at = now();
|
|
159
|
+
sweepOldest(at, key);
|
|
160
|
+
const existing = runs.get(key);
|
|
161
|
+
if (existing === undefined) {
|
|
162
|
+
if (runs.size >= LOG_COLLAPSE_MAX_KEYS) {
|
|
163
|
+
const oldest = runs.entries().next();
|
|
164
|
+
if (!oldest.done) {
|
|
165
|
+
// Evicting a run mid-fold would take its total with it and restart the next occurrence
|
|
166
|
+
// from one. Over-reporting is the safe direction; losing the count is not.
|
|
167
|
+
if (oldest.value[1].suppressing)
|
|
168
|
+
closeRun(oldest.value[1]);
|
|
169
|
+
runs.delete(oldest.value[0]);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
runs.set(key, {
|
|
173
|
+
level, event, windowStartMs: at, lastAtMs: at, windowCount: 1,
|
|
174
|
+
suppressing: false, suppressStartMs: 0, suppressedCount: 0, lastCtx: ctx,
|
|
175
|
+
});
|
|
176
|
+
sink[level](event, ctx);
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
179
|
+
// Least-recently-USED: re-inserting moves this key to the young end of the eviction order.
|
|
180
|
+
runs.delete(key);
|
|
181
|
+
runs.set(key, existing);
|
|
182
|
+
/**
|
|
183
|
+
* A gap longer than a window means the flood has stopped — measured from the PREVIOUS
|
|
184
|
+
* occurrence, never from the window's own tally. Reading the tally was the first version of
|
|
185
|
+
* this and it could never end a storm: during one, the count carried over from the last
|
|
186
|
+
* window is high by definition, so the "has it died down" test was never true.
|
|
187
|
+
*/
|
|
188
|
+
const idle = at - existing.lastAtMs >= STORM_WINDOW_MS;
|
|
189
|
+
if (idle) {
|
|
190
|
+
if (existing.suppressing)
|
|
191
|
+
closeRun(existing);
|
|
192
|
+
existing.windowStartMs = at;
|
|
193
|
+
existing.windowCount = 0;
|
|
194
|
+
}
|
|
195
|
+
else if (at - existing.windowStartMs >= STORM_WINDOW_MS) {
|
|
196
|
+
/**
|
|
197
|
+
* ⚠️ A FULL WINDOW PASSED WITH TRAFFIC — so re-test the RATE, do not just roll the window.
|
|
198
|
+
* Without this, `suppressing` latches: the only exit is a ten-second silence, so a retry
|
|
199
|
+
* that starts fast and backs off to anything under one line per ten seconds stays folded
|
|
200
|
+
* forever. Measured on the built module: 30 lines in 3 seconds trips the gate, and the next
|
|
201
|
+
* 1,200 occurrences spread over three hours produce three lines. That is the chronic-failure
|
|
202
|
+
* silence this redesign was written to remove, re-entered through a different door.
|
|
203
|
+
*/
|
|
204
|
+
if (existing.suppressing && existing.windowCount <= STORM_BURST)
|
|
205
|
+
closeRun(existing);
|
|
206
|
+
existing.windowStartMs = at;
|
|
207
|
+
existing.windowCount = 0;
|
|
208
|
+
}
|
|
209
|
+
existing.lastAtMs = at;
|
|
210
|
+
existing.windowCount += 1;
|
|
211
|
+
if (existing.suppressing) {
|
|
212
|
+
existing.lastCtx = ctx;
|
|
213
|
+
existing.suppressedCount += 1;
|
|
214
|
+
// The 1st suppressed occurrence is not a milestone worth printing — the line that tripped
|
|
215
|
+
// the gate, immediately above it, already said the fold had started.
|
|
216
|
+
if (existing.suppressedCount === 1 || !isMilestone(existing.suppressedCount))
|
|
217
|
+
return;
|
|
218
|
+
sink[level](event, {
|
|
219
|
+
...ctx,
|
|
220
|
+
repeatedCount: existing.suppressedCount,
|
|
221
|
+
repeatWindowMs: Math.max(0, at - existing.suppressStartMs),
|
|
222
|
+
});
|
|
223
|
+
return;
|
|
224
|
+
}
|
|
225
|
+
if (existing.windowCount > STORM_BURST) {
|
|
226
|
+
// The gate trips. This line is still written in full, and says that the ones behind it
|
|
227
|
+
// will not be — an operator should never have to infer that lines are being dropped.
|
|
228
|
+
existing.suppressing = true;
|
|
229
|
+
existing.suppressStartMs = at;
|
|
230
|
+
existing.suppressedCount = 0;
|
|
231
|
+
existing.lastCtx = ctx;
|
|
232
|
+
sink[level](event, { ...ctx, repeatsCollapsing: true, repeatRatePerWindow: existing.windowCount });
|
|
233
|
+
return;
|
|
234
|
+
}
|
|
235
|
+
sink[level](event, ctx);
|
|
236
|
+
}
|
|
237
|
+
return {
|
|
238
|
+
debug: (event, ctx) => { emit("debug", event, ctx); },
|
|
239
|
+
info: (event, ctx) => { emit("info", event, ctx); },
|
|
240
|
+
warn: (event, ctx) => { emit("warn", event, ctx); },
|
|
241
|
+
error: (event, ctx) => { emit("error", event, ctx); },
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
//# sourceMappingURL=log-collapse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log-collapse.js","sourceRoot":"","sources":["../src/log-collapse.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DOD-M15-LOGBOUND-1 part B — bound `daemon.log` by rotating it at SPAWN.
|
|
3
|
+
*
|
|
4
|
+
* **The daemon does not own its log file, and that constraint decides the whole design.**
|
|
5
|
+
* `spawnDaemon` does `openSync(logPath, "a")` and hands that descriptor to the child as stdout
|
|
6
|
+
* and stderr. The daemon therefore writes to a file *handle*, not to a path: renaming the file
|
|
7
|
+
* underneath it moves nothing, because the handle follows the inode and the daemon carries on
|
|
8
|
+
* filling the renamed file.
|
|
9
|
+
*
|
|
10
|
+
* So the spawner is the only party that can rotate cleanly, and spawn is the only moment at
|
|
11
|
+
* which nothing holds the handle. That is why this is here and not in the daemon, and it is why
|
|
12
|
+
* {@link openLogHandle} does both steps in one function — the rotate-then-open ORDER is the
|
|
13
|
+
* property, and a property split across two call sites is a property waiting to be reversed.
|
|
14
|
+
*
|
|
15
|
+
* **⚠️ WHAT THIS DOES NOT BOUND, and it is the machines that need it most.** Rotation fires only
|
|
16
|
+
* on the `connectOrStart` path, which is how an operator's CLI starts the daemon. The demo box and
|
|
17
|
+
* the Hermes box start it under systemd, running `dist/bin/cello-daemon.js` directly — that path
|
|
18
|
+
* never reaches here, so **those two long-lived daemons are not bounded by this at all**. They are
|
|
19
|
+
* also the ones that run for weeks without restarting, which is the case
|
|
20
|
+
* `052-LOGCEILING` covers (suggested post-launch, not yet ruled). Stated here rather than left to
|
|
21
|
+
* be discovered, because "rotation shipped" would otherwise read as a bound that those machines have.
|
|
22
|
+
*/
|
|
23
|
+
/**
|
|
24
|
+
* Cap for the live file: 64 MB. With one previous generation kept, the ceiling across restarts
|
|
25
|
+
* is 128 MB.
|
|
26
|
+
*
|
|
27
|
+
* A starting point rather than a finding. For scale: the measured file was 180 MB, of which 168 MB
|
|
28
|
+
* was one repeated line that part A of this unit now collapses, and the ordinary remainder grew at
|
|
29
|
+
* roughly 3 MB/day under heavy development.
|
|
30
|
+
*/
|
|
31
|
+
export declare const LOG_ROTATE_CAP_BYTES: number;
|
|
32
|
+
/** What a rotation attempt did, so the caller can put it on the record either way. */
|
|
33
|
+
export type RotateOutcome = {
|
|
34
|
+
rotated: true;
|
|
35
|
+
bytes: number;
|
|
36
|
+
rotatedTo: string;
|
|
37
|
+
} | {
|
|
38
|
+
rotated: false;
|
|
39
|
+
reason: "under_cap" | "absent" | "raced" | "failed";
|
|
40
|
+
error?: string;
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Rename `logPath` to `logPath.1` if it is over `capBytes`, replacing any older `.1`.
|
|
44
|
+
*
|
|
45
|
+
* **Never throws**, and that is a contract rather than defensiveness: a daemon that refuses to
|
|
46
|
+
* start because it could not tidy its log would be a strictly worse outcome than an oversized log.
|
|
47
|
+
* It reports what happened instead of being silent about it — see {@link openLogHandle}, which is
|
|
48
|
+
* where the reporting lands.
|
|
49
|
+
*
|
|
50
|
+
* **It never truncates.** A truncation of the live file either races the writer or throws away
|
|
51
|
+
* the tail, and the tail is the only part anyone reads.
|
|
52
|
+
*/
|
|
53
|
+
export declare function rotateLogIfOversized(logPath: string, capBytes?: number): RotateOutcome;
|
|
54
|
+
/**
|
|
55
|
+
* Rotate if needed, THEN open the log for append and return the descriptor.
|
|
56
|
+
*
|
|
57
|
+
* The ordering is the point. Open first and the rename moves only the name, leaving the daemon
|
|
58
|
+
* writing into the renamed inode — the rotation would appear to work and bound nothing.
|
|
59
|
+
*
|
|
60
|
+
* **The outcome is written as the first line of the fresh file**, because the alternative is a log
|
|
61
|
+
* that starts mid-story. Someone sent a 4 MB `daemon.log` to chase a failure that began before the
|
|
62
|
+
* restart has no way to know that `daemon.log.1` exists unless the file says so. And a rotation
|
|
63
|
+
* that FAILED has to say so loudest of all: it means the bound this unit ships does not exist on
|
|
64
|
+
* this machine, and nothing else would ever mention it.
|
|
65
|
+
*/
|
|
66
|
+
export declare function openLogHandle(logPath: string, capBytes?: number): number;
|
|
67
|
+
//# sourceMappingURL=log-rotate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log-rotate.d.ts","sourceRoot":"","sources":["../src/log-rotate.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,QAAmB,CAAC;AAerD,sFAAsF;AACtF,MAAM,MAAM,aAAa,GACrB;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACnD;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,WAAW,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5F;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,MAA6B,GAAG,aAAa,CAkC5G;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,MAA6B,GAAG,MAAM,CAiB9F"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { openSync, renameSync, statSync, writeSync } from "node:fs";
|
|
2
|
+
import { extractErrorMessage } from "./error-message.js";
|
|
3
|
+
/**
|
|
4
|
+
* DOD-M15-LOGBOUND-1 part B — bound `daemon.log` by rotating it at SPAWN.
|
|
5
|
+
*
|
|
6
|
+
* **The daemon does not own its log file, and that constraint decides the whole design.**
|
|
7
|
+
* `spawnDaemon` does `openSync(logPath, "a")` and hands that descriptor to the child as stdout
|
|
8
|
+
* and stderr. The daemon therefore writes to a file *handle*, not to a path: renaming the file
|
|
9
|
+
* underneath it moves nothing, because the handle follows the inode and the daemon carries on
|
|
10
|
+
* filling the renamed file.
|
|
11
|
+
*
|
|
12
|
+
* So the spawner is the only party that can rotate cleanly, and spawn is the only moment at
|
|
13
|
+
* which nothing holds the handle. That is why this is here and not in the daemon, and it is why
|
|
14
|
+
* {@link openLogHandle} does both steps in one function — the rotate-then-open ORDER is the
|
|
15
|
+
* property, and a property split across two call sites is a property waiting to be reversed.
|
|
16
|
+
*
|
|
17
|
+
* **⚠️ WHAT THIS DOES NOT BOUND, and it is the machines that need it most.** Rotation fires only
|
|
18
|
+
* on the `connectOrStart` path, which is how an operator's CLI starts the daemon. The demo box and
|
|
19
|
+
* the Hermes box start it under systemd, running `dist/bin/cello-daemon.js` directly — that path
|
|
20
|
+
* never reaches here, so **those two long-lived daemons are not bounded by this at all**. They are
|
|
21
|
+
* also the ones that run for weeks without restarting, which is the case
|
|
22
|
+
* `052-LOGCEILING` covers (suggested post-launch, not yet ruled). Stated here rather than left to
|
|
23
|
+
* be discovered, because "rotation shipped" would otherwise read as a bound that those machines have.
|
|
24
|
+
*/
|
|
25
|
+
/**
|
|
26
|
+
* Cap for the live file: 64 MB. With one previous generation kept, the ceiling across restarts
|
|
27
|
+
* is 128 MB.
|
|
28
|
+
*
|
|
29
|
+
* A starting point rather than a finding. For scale: the measured file was 180 MB, of which 168 MB
|
|
30
|
+
* was one repeated line that part A of this unit now collapses, and the ordinary remainder grew at
|
|
31
|
+
* roughly 3 MB/day under heavy development.
|
|
32
|
+
*/
|
|
33
|
+
export const LOG_ROTATE_CAP_BYTES = 64 * 1024 * 1024;
|
|
34
|
+
/** Name of the single previous generation. There is deliberately no `.2`. */
|
|
35
|
+
function rotatedPathFor(logPath) {
|
|
36
|
+
return `${logPath}.1`;
|
|
37
|
+
}
|
|
38
|
+
function sizeOf(path) {
|
|
39
|
+
try {
|
|
40
|
+
return statSync(path).size;
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Rename `logPath` to `logPath.1` if it is over `capBytes`, replacing any older `.1`.
|
|
48
|
+
*
|
|
49
|
+
* **Never throws**, and that is a contract rather than defensiveness: a daemon that refuses to
|
|
50
|
+
* start because it could not tidy its log would be a strictly worse outcome than an oversized log.
|
|
51
|
+
* It reports what happened instead of being silent about it — see {@link openLogHandle}, which is
|
|
52
|
+
* where the reporting lands.
|
|
53
|
+
*
|
|
54
|
+
* **It never truncates.** A truncation of the live file either races the writer or throws away
|
|
55
|
+
* the tail, and the tail is the only part anyone reads.
|
|
56
|
+
*/
|
|
57
|
+
export function rotateLogIfOversized(logPath, capBytes = LOG_ROTATE_CAP_BYTES) {
|
|
58
|
+
const size = sizeOf(logPath);
|
|
59
|
+
if (size === null)
|
|
60
|
+
return { rotated: false, reason: "absent" };
|
|
61
|
+
if (size <= capBytes)
|
|
62
|
+
return { rotated: false, reason: "under_cap" };
|
|
63
|
+
/**
|
|
64
|
+
* ⚠️ RE-STAT IMMEDIATELY BEFORE THE RENAME, because rotation is the one thing on this path that
|
|
65
|
+
* the singleton lock does NOT cover. `connectOrStart` states plainly that two callers can probe
|
|
66
|
+
* the lock as free at the same instant and both spawn. Both then arrive here. The damaging
|
|
67
|
+
* interleaving is: B sees an oversized file, A renames it to `.1` and opens a fresh one, then B
|
|
68
|
+
* renames that fresh near-empty file over `.1` — and 64 MB of retained history is replaced by a
|
|
69
|
+
* few bytes, losing exactly the tail rotation exists to keep. The window is small and the loser
|
|
70
|
+
* exits seconds later, but the cost of losing is the whole point of the feature.
|
|
71
|
+
*/
|
|
72
|
+
const stillOversized = sizeOf(logPath);
|
|
73
|
+
if (stillOversized === null || stillOversized <= capBytes)
|
|
74
|
+
return { rotated: false, reason: "raced" };
|
|
75
|
+
/**
|
|
76
|
+
* ⚠️ **THERE IS DELIBERATELY NO "don't let a smaller file replace a larger kept one" GUARD.** It
|
|
77
|
+
* was written, it looked prudent, and it silently turned the cap into a RATCHET: the kept file
|
|
78
|
+
* becomes the effective threshold, so once a 180 MB log has been rotated once, the live file has
|
|
79
|
+
* to exceed 180 MB — then more — before it will ever rotate again. The 128 MB ceiling this unit
|
|
80
|
+
* ships would not have existed on the first machine it ran on. The re-stat above already covers
|
|
81
|
+
* the race that guard was written for: in that interleaving the loser re-stats, finds the fresh
|
|
82
|
+
* near-empty file under the cap, and returns `raced` without renaming anything.
|
|
83
|
+
*/
|
|
84
|
+
try {
|
|
85
|
+
renameSync(logPath, rotatedPathFor(logPath));
|
|
86
|
+
return { rotated: true, bytes: stillOversized, rotatedTo: rotatedPathFor(logPath) };
|
|
87
|
+
}
|
|
88
|
+
catch (err) {
|
|
89
|
+
// EACCES / EROFS / EXDEV — a read-only or wrong-owner ~/.cello. None of them is a reason to
|
|
90
|
+
// fail a daemon start, and all of them mean this machine has no bound at all.
|
|
91
|
+
return { rotated: false, reason: "failed", error: extractErrorMessage(err) };
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Rotate if needed, THEN open the log for append and return the descriptor.
|
|
96
|
+
*
|
|
97
|
+
* The ordering is the point. Open first and the rename moves only the name, leaving the daemon
|
|
98
|
+
* writing into the renamed inode — the rotation would appear to work and bound nothing.
|
|
99
|
+
*
|
|
100
|
+
* **The outcome is written as the first line of the fresh file**, because the alternative is a log
|
|
101
|
+
* that starts mid-story. Someone sent a 4 MB `daemon.log` to chase a failure that began before the
|
|
102
|
+
* restart has no way to know that `daemon.log.1` exists unless the file says so. And a rotation
|
|
103
|
+
* that FAILED has to say so loudest of all: it means the bound this unit ships does not exist on
|
|
104
|
+
* this machine, and nothing else would ever mention it.
|
|
105
|
+
*/
|
|
106
|
+
export function openLogHandle(logPath, capBytes = LOG_ROTATE_CAP_BYTES) {
|
|
107
|
+
const outcome = rotateLogIfOversized(logPath, capBytes);
|
|
108
|
+
const fd = openSync(logPath, "a");
|
|
109
|
+
if (outcome.rotated) {
|
|
110
|
+
writeNotice(fd, {
|
|
111
|
+
level: "info", event: "daemon.log.rotated",
|
|
112
|
+
bytes: outcome.bytes, rotatedTo: outcome.rotatedTo,
|
|
113
|
+
impact: "everything logged before this line is in the file named by rotatedTo",
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
else if (outcome.reason === "failed") {
|
|
117
|
+
writeNotice(fd, {
|
|
118
|
+
level: "warn", event: "daemon.log.rotate.failed",
|
|
119
|
+
reason: outcome.reason, error: outcome.error ?? "",
|
|
120
|
+
impact: "daemon.log is over its cap and could not be rotated, so it is unbounded on this machine",
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
return fd;
|
|
124
|
+
}
|
|
125
|
+
function writeNotice(fd, fields) {
|
|
126
|
+
try {
|
|
127
|
+
writeSync(fd, JSON.stringify({ ...fields, ts: new Date().toISOString() }) + "\n");
|
|
128
|
+
}
|
|
129
|
+
catch {
|
|
130
|
+
// The notice is the least important thing this function does. Failing to write it must not
|
|
131
|
+
// cost the caller its descriptor.
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=log-rotate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log-rotate.js","sourceRoot":"","sources":["../src/log-rotate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-relay.d.ts","sourceRoot":"","sources":["../src/session-relay.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"session-relay.d.ts","sourceRoot":"","sources":["../src/session-relay.ts"],"names":[],"mappings":"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"}
|
package/dist/session-relay.js
CHANGED
|
@@ -1007,8 +1007,30 @@ export class SessionRelay {
|
|
|
1007
1007
|
* session depends on, which is what the condition now says.
|
|
1008
1008
|
*/
|
|
1009
1009
|
const liveSessions = [...this.#ctx.activeNodes.values()].filter((e) => e.agentName === agentName);
|
|
1010
|
-
if (liveSessions.length === 0)
|
|
1010
|
+
if (liveSessions.length === 0) {
|
|
1011
|
+
/**
|
|
1012
|
+
* ⚠️ **AN AGENT WITH NO SESSION HAS NOTHING TO RETRY, SO IT MUST NOT LOOK LIKE IT DOES —
|
|
1013
|
+
* `DOD-M15-IDLERETRY-1`, second half.**
|
|
1014
|
+
*
|
|
1015
|
+
* 061 stopped the ladder being OPENED for a session that needs nothing. It did not clear
|
|
1016
|
+
* one that was legitimately opened and is now moot. A ladder exists to get a LIVE session
|
|
1017
|
+
* its circuit back; when that session ends there is nothing left to get, and the entry is
|
|
1018
|
+
* the only thing `getStandingReceiverReachability` consults — so a perfectly idle agent
|
|
1019
|
+
* went on reporting `retrying`, and eventually `unreachable`, until the daemon restarted.
|
|
1020
|
+
*
|
|
1021
|
+
* Observed on the shipped 0.0.217 build: an agent with no live session at all, reading
|
|
1022
|
+
* `retrying`. That can only happen through a stale entry, which is what sent this back for
|
|
1023
|
+
* a second pass.
|
|
1024
|
+
*
|
|
1025
|
+
* Cleared HERE rather than at teardown on purpose: this is the one place that already
|
|
1026
|
+
* knows, every tick, that an agent holds nothing and wants nothing. A teardown hook would
|
|
1027
|
+
* be a second thing to keep in step with session lifecycle, and the whole class of defect
|
|
1028
|
+
* in this file is two things drifting apart.
|
|
1029
|
+
*/
|
|
1030
|
+
this.#ctx.srReservationRetry.delete(agentName);
|
|
1031
|
+
this.#ctx.srLastRejectionReason.delete(agentName);
|
|
1011
1032
|
continue;
|
|
1033
|
+
}
|
|
1012
1034
|
/**
|
|
1013
1035
|
* ⚠️ **RE-TAKE THE SESSION'S CIRCUIT — REBUILDING THE RECEIVER NO LONGER DOES IT.**
|
|
1014
1036
|
*
|
|
@@ -1027,6 +1049,43 @@ export class SessionRelay {
|
|
|
1027
1049
|
* every 30-second tick would be exactly that churn, wearing a new name — measured here as 52
|
|
1028
1050
|
* asks where the budget allows 37.
|
|
1029
1051
|
*/
|
|
1052
|
+
/**
|
|
1053
|
+
* ⚠️ **WHAT ACTUALLY NEEDS A CIRCUIT, DECIDED BEFORE THE BUDGET IS TOUCHED —
|
|
1054
|
+
* `DOD-M15-IDLERETRY-1`.**
|
|
1055
|
+
*
|
|
1056
|
+
* `#retryDue` was called FIRST, and it does not merely answer a question: on an agent it has
|
|
1057
|
+
* not seen before it WRITES a retry entry and returns false. So simply having a live session
|
|
1058
|
+
* while holding no circuit was enough to open a retry ladder — and for the INITIATOR of a
|
|
1059
|
+
* call that state is permanent and wrong, because an initiator DIALS OUT and never needs to
|
|
1060
|
+
* be dialable (055-ONDEMAND narrowed the reservation to the party being dialed, deliberately).
|
|
1061
|
+
*
|
|
1062
|
+
* Two things followed, and both were measured live on 2026-09-11 rather than reasoned:
|
|
1063
|
+
* - `cello_status` reported `retrying` for a healthy agent from its first call onward,
|
|
1064
|
+
* cleared only by a daemon restart — the same "a broken agent looks like a fine one"
|
|
1065
|
+
* defect 060-READY had just fixed, in a case it did not cover;
|
|
1066
|
+
* - worse, it is not cosmetic. Held past the retry interval, both agents emitted a real
|
|
1067
|
+
* `session.standing_receiver.reservation.retry` — the daemon asking relays for slots on
|
|
1068
|
+
* behalf of sessions that need none. That is churn against the scarce resource this
|
|
1069
|
+
* whole story exists to conserve.
|
|
1070
|
+
*
|
|
1071
|
+
* So the question "is there anything to re-take?" is answered from the SESSION NODES first.
|
|
1072
|
+
* A session that already holds its circuit, or has no relay endpoint recorded, needs
|
|
1073
|
+
* nothing. If none needs anything, this tick is a no-op and must leave no trace.
|
|
1074
|
+
*/
|
|
1075
|
+
const needRetake = liveSessions.filter((entry) => {
|
|
1076
|
+
const ep = this.#ctx.queries.getPersistedRelayEndpoint(agentName, entry.sessionId);
|
|
1077
|
+
if (!ep || ep.relayAddrs.length === 0)
|
|
1078
|
+
return false;
|
|
1079
|
+
/**
|
|
1080
|
+
* ⚠️ `heldRelayIdsOf`, NOT a substring test — the same distinction 056-SLOTDEAD had to
|
|
1081
|
+
* make one layer up. A circuit address that does not NAME its relay cannot be dialled
|
|
1082
|
+
* through, so a session announcing one holds nothing usable and DOES need a re-take.
|
|
1083
|
+
* A substring test counts it as held and leaves that session silently unreachable.
|
|
1084
|
+
*/
|
|
1085
|
+
return heldRelayIdsOf(entry.node).length === 0;
|
|
1086
|
+
});
|
|
1087
|
+
if (needRetake.length === 0)
|
|
1088
|
+
continue;
|
|
1030
1089
|
if (!this.#retryDue(agentName))
|
|
1031
1090
|
continue;
|
|
1032
1091
|
/**
|
|
@@ -1040,14 +1099,10 @@ export class SessionRelay {
|
|
|
1040
1099
|
* also set `relayPeerIds` non-empty, hiding the real loss from every later tick.
|
|
1041
1100
|
*/
|
|
1042
1101
|
let retook = false;
|
|
1043
|
-
for (const entry of
|
|
1102
|
+
for (const entry of needRetake) {
|
|
1044
1103
|
const ep = this.#ctx.queries.getPersistedRelayEndpoint(agentName, entry.sessionId);
|
|
1045
|
-
if (!ep || ep.relayAddrs.length === 0)
|
|
1046
|
-
continue;
|
|
1047
1104
|
const base = ep.relayAddrs[0];
|
|
1048
1105
|
const circuitAddr = base.includes(`/p2p/${ep.relayPeerId}`) ? `${base}/p2p-circuit` : `${base}/p2p/${ep.relayPeerId}/p2p-circuit`;
|
|
1049
|
-
if (entry.node.listenAddresses().some((a) => a.split("/").includes("p2p-circuit")))
|
|
1050
|
-
continue; // still holds one
|
|
1051
1106
|
if (await this.#ctx.retakeReservationOn(agentName, entry.node, circuitAddr, entry.correlationId))
|
|
1052
1107
|
retook = true;
|
|
1053
1108
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-relay.js","sourceRoot":"","sources":["../src/session-relay.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"session-relay.js","sourceRoot":"","sources":["../src/session-relay.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cello-protocol/daemon",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.211",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"engines": {
|
|
@@ -35,10 +35,10 @@
|
|
|
35
35
|
"@signalapp/sqlcipher": "^3.3.5",
|
|
36
36
|
"cbor-x": "^1.6.0",
|
|
37
37
|
"it-length-prefixed": "^10.0.1",
|
|
38
|
-
"@cello-protocol/crypto": "0.0.
|
|
39
|
-
"@cello-protocol/protocol-types": "0.0.
|
|
40
|
-
"@cello-protocol/gateway": "0.0.
|
|
41
|
-
"@cello-protocol/transport": "0.0.
|
|
38
|
+
"@cello-protocol/crypto": "0.0.87",
|
|
39
|
+
"@cello-protocol/protocol-types": "0.0.91",
|
|
40
|
+
"@cello-protocol/gateway": "0.0.71",
|
|
41
|
+
"@cello-protocol/transport": "0.0.93"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
44
|
"@types/node": "^25.6.2",
|