bunqueue 2.7.18 → 2.7.19
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/application/backgroundTasks.d.ts.map +1 -1
- package/dist/application/backgroundTasks.js +41 -0
- package/dist/application/backgroundTasks.js.map +1 -1
- package/dist/application/queueManager.d.ts +8 -1
- package/dist/application/queueManager.d.ts.map +1 -1
- package/dist/application/queueManager.js +37 -23
- package/dist/application/queueManager.js.map +1 -1
- package/dist/client/tcp/client.d.ts.map +1 -1
- package/dist/client/tcp/client.js +11 -8
- package/dist/client/tcp/client.js.map +1 -1
- package/dist/client/worker/ackBatcher.d.ts.map +1 -1
- package/dist/client/worker/ackBatcher.js +18 -8
- package/dist/client/worker/ackBatcher.js.map +1 -1
- package/dist/client/workflow/compensator.d.ts.map +1 -1
- package/dist/client/workflow/compensator.js +10 -2
- package/dist/client/workflow/compensator.js.map +1 -1
- package/dist/client/workflow/loops.d.ts.map +1 -1
- package/dist/client/workflow/loops.js +7 -0
- package/dist/client/workflow/loops.js.map +1 -1
- package/dist/client/workflow/types.d.ts +4 -0
- package/dist/client/workflow/types.d.ts.map +1 -1
- package/dist/domain/queue/dlqShard.d.ts.map +1 -1
- package/dist/domain/queue/dlqShard.js +6 -0
- package/dist/domain/queue/dlqShard.js.map +1 -1
- package/dist/infrastructure/backup/s3BackupOperations.d.ts.map +1 -1
- package/dist/infrastructure/backup/s3BackupOperations.js +44 -6
- package/dist/infrastructure/backup/s3BackupOperations.js.map +1 -1
- package/dist/infrastructure/cloud/cloudAgent.d.ts +1 -1
- package/dist/infrastructure/cloud/cloudAgent.d.ts.map +1 -1
- package/dist/infrastructure/cloud/cloudAgent.js +9 -11
- package/dist/infrastructure/cloud/cloudAgent.js.map +1 -1
- package/dist/infrastructure/cloud/redact.d.ts +11 -0
- package/dist/infrastructure/cloud/redact.d.ts.map +1 -0
- package/dist/infrastructure/cloud/redact.js +22 -0
- package/dist/infrastructure/cloud/redact.js.map +1 -0
- package/dist/infrastructure/cloud/snapshotCollector.d.ts +4 -0
- package/dist/infrastructure/cloud/snapshotCollector.d.ts.map +1 -1
- package/dist/infrastructure/cloud/snapshotCollector.js +32 -17
- package/dist/infrastructure/cloud/snapshotCollector.js.map +1 -1
- package/dist/infrastructure/cloud/snapshotHelpers.d.ts +9 -2
- package/dist/infrastructure/cloud/snapshotHelpers.d.ts.map +1 -1
- package/dist/infrastructure/cloud/snapshotHelpers.js +10 -8
- package/dist/infrastructure/cloud/snapshotHelpers.js.map +1 -1
- package/dist/infrastructure/persistence/sqlite.d.ts +1 -1
- package/dist/infrastructure/persistence/sqlite.d.ts.map +1 -1
- package/dist/infrastructure/persistence/sqlite.js +18 -0
- package/dist/infrastructure/persistence/sqlite.js.map +1 -1
- package/dist/infrastructure/persistence/sqliteSerializer.d.ts +16 -0
- package/dist/infrastructure/persistence/sqliteSerializer.d.ts.map +1 -1
- package/dist/infrastructure/persistence/sqliteSerializer.js +73 -8
- package/dist/infrastructure/persistence/sqliteSerializer.js.map +1 -1
- package/dist/infrastructure/scheduler/cronScheduler.d.ts.map +1 -1
- package/dist/infrastructure/scheduler/cronScheduler.js +11 -1
- package/dist/infrastructure/scheduler/cronScheduler.js.map +1 -1
- package/dist/infrastructure/server/protocol.d.ts +4 -0
- package/dist/infrastructure/server/protocol.d.ts.map +1 -1
- package/dist/infrastructure/server/protocol.js +17 -2
- package/dist/infrastructure/server/protocol.js.map +1 -1
- package/dist/infrastructure/server/socketWriteQueue.d.ts +67 -0
- package/dist/infrastructure/server/socketWriteQueue.d.ts.map +1 -0
- package/dist/infrastructure/server/socketWriteQueue.js +127 -0
- package/dist/infrastructure/server/socketWriteQueue.js.map +1 -0
- package/dist/infrastructure/server/tcp.d.ts +17 -0
- package/dist/infrastructure/server/tcp.d.ts.map +1 -1
- package/dist/infrastructure/server/tcp.js +104 -10
- package/dist/infrastructure/server/tcp.js.map +1 -1
- package/package.json +1 -1
|
@@ -22,17 +22,58 @@ export function unpack(buffer, fallback, context) {
|
|
|
22
22
|
return fallback;
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* Symbol marker stamped on a Job whose `depends_on` blob failed to decode.
|
|
27
|
+
*
|
|
28
|
+
* A corrupt dependency list must NOT collapse into `dependsOn: []` (which the
|
|
29
|
+
* recovery path treats as "ready, no deps" -> out-of-order execution). Rather
|
|
30
|
+
* than parking the job behind a magic-string dependency (which could collide
|
|
31
|
+
* with a real user-supplied jobId, and which leaks into waitingDeps forever),
|
|
32
|
+
* we signal corruption with a Symbol-keyed flag that cannot collide with any
|
|
33
|
+
* user data. The recovery path detects this flag and routes the job to the DLQ.
|
|
34
|
+
*
|
|
35
|
+
* A Symbol property is non-enumerable to JSON/msgpack and is never persisted,
|
|
36
|
+
* so it only exists on the in-memory Job for the duration of recovery.
|
|
37
|
+
*/
|
|
38
|
+
export const CORRUPT_DEPENDS_ON = Symbol('bunqueue.corruptDependsOn');
|
|
39
|
+
/** True if a Job was recovered with a corrupt `depends_on` blob. */
|
|
40
|
+
export function isCorruptDependsOn(job) {
|
|
41
|
+
return job[CORRUPT_DEPENDS_ON] === true;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Decode a job's `depends_on` blob, distinguishing a genuine decode FAILURE
|
|
45
|
+
* from a legitimately empty list. On decode failure, returns `corrupt: true`
|
|
46
|
+
* (with empty ids) instead of silently swallowing it into a healthy empty array.
|
|
47
|
+
*/
|
|
48
|
+
function decodeDependsOn(buffer, context) {
|
|
49
|
+
if (!buffer)
|
|
50
|
+
return { ids: [], corrupt: false };
|
|
51
|
+
try {
|
|
52
|
+
return { ids: msgpackDecode(buffer), corrupt: false };
|
|
53
|
+
}
|
|
54
|
+
catch (err) {
|
|
55
|
+
storageLog.error('Corrupt depends_on blob (routing job to DLQ)', {
|
|
56
|
+
context,
|
|
57
|
+
error: String(err),
|
|
58
|
+
});
|
|
59
|
+
return { ids: [], corrupt: true };
|
|
60
|
+
}
|
|
61
|
+
}
|
|
25
62
|
/** Convert database row to Job object */
|
|
26
63
|
export function rowToJob(row) {
|
|
27
64
|
const jobContext = `rowToJob:${row.id}`;
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
65
|
+
// A corrupt depends_on blob must NOT be silently swallowed into [] (which the
|
|
66
|
+
// recovery path treats as "ready, no deps" -> out-of-order execution).
|
|
67
|
+
// decodeDependsOn() surfaces the corruption via a `corrupt` flag; we then
|
|
68
|
+
// stamp the returned Job with the CORRUPT_DEPENDS_ON symbol so the recovery
|
|
69
|
+
// path can route it to the DLQ instead of enqueuing it as ready.
|
|
70
|
+
const decoded = decodeDependsOn(row.depends_on, `${jobContext}:dependsOn`);
|
|
71
|
+
const dependsOn = decoded.ids;
|
|
31
72
|
const childrenIds = row.children_ids
|
|
32
73
|
? unpack(row.children_ids, [], `${jobContext}:childrenIds`)
|
|
33
74
|
: [];
|
|
34
75
|
const tags = row.tags ? unpack(row.tags, [], `${jobContext}:tags`) : [];
|
|
35
|
-
|
|
76
|
+
const job = {
|
|
36
77
|
id: jobId(row.id),
|
|
37
78
|
queue: row.queue,
|
|
38
79
|
data: unpack(row.data, {}, `${jobContext}:data`),
|
|
@@ -81,6 +122,30 @@ export function rowToJob(row) {
|
|
|
81
122
|
? unpack(row.timeline, [], `${jobContext}:timeline`)
|
|
82
123
|
: [],
|
|
83
124
|
};
|
|
125
|
+
// Stamp a collision-proof corruption marker (non-enumerable Symbol, never
|
|
126
|
+
// persisted) so the recovery path routes this job to the DLQ rather than
|
|
127
|
+
// enqueuing it as ready. We keep dependsOn: [] here — the real deps are
|
|
128
|
+
// unrecoverable — but the marker prevents out-of-order execution.
|
|
129
|
+
if (decoded.corrupt) {
|
|
130
|
+
Object.defineProperty(job, CORRUPT_DEPENDS_ON, {
|
|
131
|
+
value: true,
|
|
132
|
+
enumerable: false,
|
|
133
|
+
configurable: true,
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
return job;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Brand a decoded id as a JobId, preserving its runtime type.
|
|
140
|
+
*
|
|
141
|
+
* Production ids are UUIDv7 strings (identity). msgpackr faithfully round-trips
|
|
142
|
+
* the original runtime type (including bigint), so we only stringify when the
|
|
143
|
+
* decoded value is genuinely non-string rather than unconditionally coercing —
|
|
144
|
+
* which would otherwise rewrite a recovered job's id and break id equality on
|
|
145
|
+
* the critical-loss -> DLQ -> restart recovery path.
|
|
146
|
+
*/
|
|
147
|
+
function brandId(id) {
|
|
148
|
+
return typeof id === 'string' ? jobId(id) : id;
|
|
84
149
|
}
|
|
85
150
|
/** Reconstruct DlqEntry from MessagePack-decoded data */
|
|
86
151
|
export function reconstructDlqEntry(entry) {
|
|
@@ -88,10 +153,10 @@ export function reconstructDlqEntry(entry) {
|
|
|
88
153
|
...entry,
|
|
89
154
|
job: {
|
|
90
155
|
...entry.job,
|
|
91
|
-
id:
|
|
92
|
-
dependsOn: entry.job.dependsOn.map((id) =>
|
|
93
|
-
parentId: entry.job.parentId ?
|
|
94
|
-
childrenIds: entry.job.childrenIds.map((id) =>
|
|
156
|
+
id: brandId(entry.job.id),
|
|
157
|
+
dependsOn: entry.job.dependsOn.map((id) => brandId(id)),
|
|
158
|
+
parentId: entry.job.parentId !== null ? brandId(entry.job.parentId) : null,
|
|
159
|
+
childrenIds: entry.job.childrenIds.map((id) => brandId(id)),
|
|
95
160
|
},
|
|
96
161
|
};
|
|
97
162
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqliteSerializer.js","sourceRoot":"","sources":["../../../src/infrastructure/persistence/sqliteSerializer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,IAAI,aAAa,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,UAAU,CAAC;AAC1E,OAAO,
|
|
1
|
+
{"version":3,"file":"sqliteSerializer.js","sourceRoot":"","sources":["../../../src/infrastructure/persistence/sqliteSerializer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,IAAI,aAAa,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,UAAU,CAAC;AAC1E,OAAO,EAA+C,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAG5F,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,wCAAwC;AACxC,MAAM,UAAU,IAAI,CAAC,IAAa;IAChC,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED,wCAAwC;AACxC,MAAM,UAAU,MAAM,CAAI,MAAyB,EAAE,QAAW,EAAE,OAAe;IAC/E,IAAI,CAAC,MAAM;QAAE,OAAO,QAAQ,CAAC;IAC7B,IAAI,CAAC;QACH,OAAO,aAAa,CAAC,MAAM,CAAM,CAAC;IACpC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,UAAU,CAAC,KAAK,CAAC,0BAA0B,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9E,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,2BAA2B,CAAC,CAAC;AAEtE,oEAAoE;AACpE,MAAM,UAAU,kBAAkB,CAAC,GAAQ;IACzC,OAAQ,GAA0C,CAAC,kBAAkB,CAAC,KAAK,IAAI,CAAC;AAClF,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe,CACtB,MAAyB,EACzB,OAAe;IAEf,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAChD,IAAI,CAAC;QACH,OAAO,EAAE,GAAG,EAAE,aAAa,CAAC,MAAM,CAAa,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACpE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,UAAU,CAAC,KAAK,CAAC,8CAA8C,EAAE;YAC/D,OAAO;YACP,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC;SACnB,CAAC,CAAC;QACH,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACpC,CAAC;AACH,CAAC;AAED,yCAAyC;AACzC,MAAM,UAAU,QAAQ,CAAC,GAAU;IACjC,MAAM,UAAU,GAAG,YAAY,GAAG,CAAC,EAAE,EAAE,CAAC;IACxC,8EAA8E;IAC9E,uEAAuE;IACvE,0EAA0E;IAC1E,4EAA4E;IAC5E,iEAAiE;IACjE,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,UAAU,YAAY,CAAC,CAAC;IAC3E,MAAM,SAAS,GAAa,OAAO,CAAC,GAAG,CAAC;IACxC,MAAM,WAAW,GAAa,GAAG,CAAC,YAAY;QAC5C,CAAC,CAAC,MAAM,CAAW,GAAG,CAAC,YAAY,EAAE,EAAE,EAAE,GAAG,UAAU,cAAc,CAAC;QACrE,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,IAAI,GAAa,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAW,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,UAAU,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE5F,MAAM,GAAG,GAAQ;QACf,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACjB,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,UAAU,OAAO,CAAC;QAChD,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,KAAK,EAAE,GAAG,CAAC,MAAM;QACjB,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,WAAW,EAAE,GAAG,CAAC,YAAY;QAC7B,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,WAAW,EAAE,GAAG,CAAC,YAAY;QAC7B,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,aAAa,EAAE,IAAI,EAAE,8CAA8C;QACnE,GAAG,EAAE,GAAG,CAAC,GAAG;QACZ,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,QAAQ,EAAE,GAAG,CAAC,SAAS;QACvB,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACzC,QAAQ,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI;QACrD,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7C,iBAAiB,EAAE,CAAC;QACpB,IAAI;QACJ,IAAI,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC;QACpB,OAAO,EAAE,GAAG,CAAC,QAAQ;QACrB,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,CAAC;QAC3B,eAAe,EAAE,GAAG,CAAC,YAAY;QACjC,gBAAgB,EAAE,GAAG,CAAC,kBAAkB,KAAK,CAAC;QAC9C,YAAY,EAAE,GAAG,CAAC,cAAc,KAAK,CAAC;QACtC,MAAM,EAAE,IAAI;QACZ,aAAa,EAAE,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,UAAU;QACnD,YAAY,EAAE,GAAG,CAAC,aAAa;QAC/B,UAAU,EAAE,CAAC;QACb,kEAAkE;QAClE,eAAe,EAAE,EAAE;QACnB,QAAQ,EAAE,IAAI;QACd,SAAS,EAAE,IAAI;QACf,mBAAmB,EAAE,KAAK;QAC1B,yBAAyB,EAAE,KAAK;QAChC,uBAAuB,EAAE,KAAK;QAC9B,yBAAyB,EAAE,KAAK;QAChC,gBAAgB,EAAE,IAAI;QACtB,mBAAmB,EAAE,KAAK;QAC1B,oBAAoB,EAAE,KAAK;QAC3B,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,IAAI;QACjB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACpB,CAAC,CAAC,MAAM,CAAqB,GAAG,CAAC,QAAQ,EAAE,EAAE,EAAE,GAAG,UAAU,WAAW,CAAC;YACxE,CAAC,CAAC,EAAE;KACP,CAAC;IAEF,0EAA0E;IAC1E,yEAAyE;IACzE,wEAAwE;IACxE,kEAAkE;IAClE,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,kBAAkB,EAAE;YAC7C,KAAK,EAAE,IAAI;YACX,UAAU,EAAE,KAAK;YACjB,YAAY,EAAE,IAAI;SACnB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,OAAO,CAAC,EAAW;IAC1B,OAAO,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,EAAY,CAAC;AAC5D,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,mBAAmB,CAAC,KAAe;IACjD,OAAO;QACL,GAAG,KAAK;QACR,GAAG,EAAE;YACH,GAAG,KAAK,CAAC,GAAG;YACZ,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACvD,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI;YAC1E,WAAW,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;SAC5D;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cronScheduler.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/scheduler/cronScheduler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,YAAY,EAA4B,MAAM,yBAAyB,CAAC;AACpG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAUvD,qEAAqE;AACrE,MAAM,WAAW,mBAAmB;IAClC,yEAAyE;IACzE,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAKD,6BAA6B;AAC7B,MAAM,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAEhF,uCAAuC;AACvC,MAAM,MAAM,mBAAmB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;AAQ9F;;;;;;GAMG;AACH,qBAAa,aAAa;IACxB,2DAA2D;IAC3D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4D;IACrF,sDAAsD;IACtD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyE;IAClG,iCAAiC;IACjC,OAAO,CAAC,UAAU,CAAK;IACvB,sDAAsD;IACtD,OAAO,CAAC,SAAS,CAA8C;IAC/D,qCAAqC;IACrC,OAAO,CAAC,cAAc,CAA+C;IACrE,uCAAuC;IACvC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAgC;IAC/C,OAAO,CAAC,WAAW,CAAoC;IACvD,OAAO,CAAC,UAAU,CAA6C;IAC/D,OAAO,CAAC,aAAa,CAAyE;IAC9F,0DAA0D;IAC1D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;gBAG7C,OAAO,CAAC,EAAE,mBAAmB;IAKzC;;OAEG;IACH,eAAe,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAIhD;;OAEG;IACH,kBAAkB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI;IAIvD;;OAEG;IACH,sBAAsB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,IAAI;IAIlE;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,GAAG,IAAI;IAIxF;;;OAGG;IACH,KAAK,IAAI,IAAI;IAab;;OAEG;IACH,IAAI,IAAI,IAAI;IAYZ;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO;
|
|
1
|
+
{"version":3,"file":"cronScheduler.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/scheduler/cronScheduler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,YAAY,EAA4B,MAAM,yBAAyB,CAAC;AACpG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAUvD,qEAAqE;AACrE,MAAM,WAAW,mBAAmB;IAClC,yEAAyE;IACzE,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAKD,6BAA6B;AAC7B,MAAM,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAEhF,uCAAuC;AACvC,MAAM,MAAM,mBAAmB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;AAQ9F;;;;;;GAMG;AACH,qBAAa,aAAa;IACxB,2DAA2D;IAC3D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4D;IACrF,sDAAsD;IACtD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyE;IAClG,iCAAiC;IACjC,OAAO,CAAC,UAAU,CAAK;IACvB,sDAAsD;IACtD,OAAO,CAAC,SAAS,CAA8C;IAC/D,qCAAqC;IACrC,OAAO,CAAC,cAAc,CAA+C;IACrE,uCAAuC;IACvC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAgC;IAC/C,OAAO,CAAC,WAAW,CAAoC;IACvD,OAAO,CAAC,UAAU,CAA6C;IAC/D,OAAO,CAAC,aAAa,CAAyE;IAC9F,0DAA0D;IAC1D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;gBAG7C,OAAO,CAAC,EAAE,mBAAmB;IAKzC;;OAEG;IACH,eAAe,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAIhD;;OAEG;IACH,kBAAkB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI;IAIvD;;OAEG;IACH,sBAAsB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,IAAI;IAIlE;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,GAAG,IAAI;IAIxF;;;OAGG;IACH,KAAK,IAAI,IAAI;IAab;;OAEG;IACH,IAAI,IAAI,IAAI;IAYZ;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO;IAuDjC;;;OAGG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAkB7B;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAItC;;OAEG;IACH,IAAI,IAAI,OAAO,EAAE;IAIjB;;OAEG;IACH,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI;IA4B5B;;;OAGG;IACH,OAAO,CAAC,YAAY;IA6BpB;;;;OAIG;YACW,IAAI;IA4GlB,wDAAwD;YAC1C,WAAW;IA4CzB;;;OAGG;IACH,QAAQ,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE;CA4BvE"}
|
|
@@ -125,6 +125,9 @@ export class CronScheduler {
|
|
|
125
125
|
const existing = this.cronJobs.get(cron.name);
|
|
126
126
|
if (existing) {
|
|
127
127
|
cron.executions = existing.cron.executions;
|
|
128
|
+
// Reset per-name overlap tracking on upsert: the redefined cron starts
|
|
129
|
+
// fresh and must not be blocked by the previous definition's last fire (H10)
|
|
130
|
+
this.lastFiredAt.delete(cron.name);
|
|
128
131
|
}
|
|
129
132
|
// Handle immediately option: set nextRun to now so it fires on next tick
|
|
130
133
|
// Only on first creation, not on upsert (otherwise it overrides skipMissedOnRestart)
|
|
@@ -150,6 +153,9 @@ export class CronScheduler {
|
|
|
150
153
|
return false;
|
|
151
154
|
// Just remove from map - heap entry becomes stale (lazy deletion)
|
|
152
155
|
this.cronJobs.delete(name);
|
|
156
|
+
// Clear per-name overlap tracking so a future cron re-added with the same
|
|
157
|
+
// name isn't blocked by this cron's stale last-fire timestamp (fixes H10)
|
|
158
|
+
this.lastFiredAt.delete(name);
|
|
153
159
|
// Reschedule in case removed cron was the next timer target
|
|
154
160
|
if (this.started) {
|
|
155
161
|
this.scheduleNext();
|
|
@@ -262,13 +268,17 @@ export class CronScheduler {
|
|
|
262
268
|
// Calculate new state BEFORE pushing job
|
|
263
269
|
const newExecutions = cron.executions + 1;
|
|
264
270
|
const executionTime = Date.now();
|
|
271
|
+
// The slot this fire was scheduled for (anchor for fixed-rate intervals)
|
|
272
|
+
const scheduledRun = cron.nextRun;
|
|
265
273
|
let newNextRun;
|
|
266
274
|
if (cron.schedule) {
|
|
267
275
|
const expanded = expandCronShortcut(cron.schedule);
|
|
268
276
|
newNextRun = getNextCronRun(expanded, executionTime, cron.timezone ?? undefined);
|
|
269
277
|
}
|
|
270
278
|
else if (cron.repeatEvery) {
|
|
271
|
-
|
|
279
|
+
// Fixed-rate: anchor to the scheduled slot, not wall-clock now, so a
|
|
280
|
+
// slow/late job does not cumulatively drift the schedule forward (M4)
|
|
281
|
+
newNextRun = getNextIntervalRun(cron.repeatEvery, scheduledRun);
|
|
272
282
|
}
|
|
273
283
|
else {
|
|
274
284
|
newNextRun = executionTime;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cronScheduler.js","sourceRoot":"","sources":["../../../src/infrastructure/scheduler/cronScheduler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cronScheduler.js","sourceRoot":"","sources":["../../../src/infrastructure/scheduler/cronScheduler.ts"],"names":[],"mappings":"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"}
|
|
@@ -60,6 +60,10 @@ export declare class FrameParser {
|
|
|
60
60
|
* @throws {FrameSizeError} if frame length exceeds maxFrameSize
|
|
61
61
|
*/
|
|
62
62
|
addData(data: Uint8Array): Uint8Array[];
|
|
63
|
+
/** Number of bytes currently buffered awaiting a complete frame. */
|
|
64
|
+
get bufferedBytes(): number;
|
|
65
|
+
/** True while a partial (incomplete) frame is buffered. */
|
|
66
|
+
get hasPartialFrame(): boolean;
|
|
63
67
|
/** Clear the internal buffer */
|
|
64
68
|
clear(): void;
|
|
65
69
|
/** Create a framed message */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/server/protocol.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,KAAK,QAAQ,EAAS,MAAM,6BAA6B,CAAC;AAEnE,uCAAuC;AACvC,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAUzD;AAED,wCAAwC;AACxC,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAE5D;AAED,0DAA0D;AAC1D,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,EAAE,CAYrD;AAED,0BAA0B;AAC1B,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAW7D;AAED,6BAA6B;AAC7B,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAM5D;AAED,qDAAqD;AACrD,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAO,GAC/D,MAAM,GAAG,IAAI,CA+Bf;AAED,0CAA0C;AAC1C,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,CAmBlF;AAED,8DAA8D;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,uBAAuB;AACvB,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,sCAAsC;AACtC,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,CAKvE;AAED,4BAA4B;AAC5B,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAErE;AAED,sCAAsC;AACtC,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAM;IAEpB,oDAAoD;IACpD,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAgB/B,mCAAmC;IACnC,YAAY,IAAI,MAAM;IAItB,mBAAmB;IACnB,KAAK,IAAI,IAAI;CAGd;AAED,yEAAyE;AACzE,eAAO,MAAM,cAAc,QAAmB,CAAC;AAE/C,mDAAmD;AACnD,qBAAa,cAAe,SAAQ,KAAK;aAErB,aAAa,EAAE,MAAM;aACrB,OAAO,EAAE,MAAM;gBADf,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM;CAKlC;AAED,mCAAmC;AACnC,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;gBAE1B,YAAY,GAAE,MAAuB;IAIjD;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,EAAE;
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/server/protocol.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,KAAK,QAAQ,EAAS,MAAM,6BAA6B,CAAC;AAEnE,uCAAuC;AACvC,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAUzD;AAED,wCAAwC;AACxC,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAE5D;AAED,0DAA0D;AAC1D,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,EAAE,CAYrD;AAED,0BAA0B;AAC1B,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAW7D;AAED,6BAA6B;AAC7B,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAM5D;AAED,qDAAqD;AACrD,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAO,GAC/D,MAAM,GAAG,IAAI,CA+Bf;AAED,0CAA0C;AAC1C,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,CAmBlF;AAED,8DAA8D;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,uBAAuB;AACvB,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,sCAAsC;AACtC,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,CAKvE;AAED,4BAA4B;AAC5B,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAErE;AAED,sCAAsC;AACtC,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAM;IAEpB,oDAAoD;IACpD,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAgB/B,mCAAmC;IACnC,YAAY,IAAI,MAAM;IAItB,mBAAmB;IACnB,KAAK,IAAI,IAAI;CAGd;AAED,yEAAyE;AACzE,eAAO,MAAM,cAAc,QAAmB,CAAC;AAE/C,mDAAmD;AACnD,qBAAa,cAAe,SAAQ,KAAK;aAErB,aAAa,EAAE,MAAM;aACrB,OAAO,EAAE,MAAM;gBADf,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM;CAKlC;AAED,mCAAmC;AACnC,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;gBAE1B,YAAY,GAAE,MAAuB;IAIjD;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,EAAE;IA8CvC,oEAAoE;IACpE,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,2DAA2D;IAC3D,IAAI,eAAe,IAAI,OAAO,CAE7B;IAED,gCAAgC;IAChC,KAAK,IAAI,IAAI;IAIb,8BAA8B;IAC9B,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU;CAU3C"}
|
|
@@ -174,14 +174,21 @@ export class FrameParser {
|
|
|
174
174
|
(this.buffer[2] << 8) |
|
|
175
175
|
this.buffer[3]) >>>
|
|
176
176
|
0;
|
|
177
|
-
// Validate frame size to prevent memory exhaustion DoS
|
|
177
|
+
// Validate frame size to prevent memory exhaustion DoS. A single frame's
|
|
178
|
+
// declared length can never exceed maxFrameSize (64MB), so the partial
|
|
179
|
+
// buffer is bounded by maxFrameSize regardless of how it is segmented
|
|
180
|
+
// across TCP reads. Slowloris (a connection that declares a large frame
|
|
181
|
+
// then never completes it) is handled at the transport layer by an idle
|
|
182
|
+
// read timeout in the server, NOT by dropping legal large partial frames.
|
|
178
183
|
if (length > this.maxFrameSize) {
|
|
179
184
|
// Clear buffer to prevent further processing of malicious data
|
|
180
185
|
this.buffer = new Uint8Array(0);
|
|
181
186
|
throw new FrameSizeError(length, this.maxFrameSize);
|
|
182
187
|
}
|
|
183
188
|
if (this.buffer.length < 4 + length) {
|
|
184
|
-
// Not enough data
|
|
189
|
+
// Not enough data for this (legal, < maxFrameSize) frame yet. Keep the
|
|
190
|
+
// partial bytes buffered until the rest of the frame arrives across
|
|
191
|
+
// subsequent TCP segments.
|
|
185
192
|
break;
|
|
186
193
|
}
|
|
187
194
|
// Extract frame
|
|
@@ -190,6 +197,14 @@ export class FrameParser {
|
|
|
190
197
|
}
|
|
191
198
|
return frames;
|
|
192
199
|
}
|
|
200
|
+
/** Number of bytes currently buffered awaiting a complete frame. */
|
|
201
|
+
get bufferedBytes() {
|
|
202
|
+
return this.buffer.length;
|
|
203
|
+
}
|
|
204
|
+
/** True while a partial (incomplete) frame is buffered. */
|
|
205
|
+
get hasPartialFrame() {
|
|
206
|
+
return this.buffer.length > 0;
|
|
207
|
+
}
|
|
193
208
|
/** Clear the internal buffer */
|
|
194
209
|
clear() {
|
|
195
210
|
this.buffer = new Uint8Array(0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../../src/infrastructure/server/protocol.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../../src/infrastructure/server/protocol.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-socket write queue
|
|
3
|
+
* =================================================================
|
|
4
|
+
* Bun's `socket.write()` may write FEWER bytes than provided when the kernel
|
|
5
|
+
* send buffer is full (backpressure). The unwritten tail is NOT retained by
|
|
6
|
+
* Bun — the caller is responsible for buffering it and resending once the
|
|
7
|
+
* socket fires `drain`. Ignoring the short count silently drops response
|
|
8
|
+
* bytes, corrupting the length-prefixed frame protocol.
|
|
9
|
+
*
|
|
10
|
+
* This helper buffers any unwritten tail per-socket and preserves ordering:
|
|
11
|
+
* while a pending tail exists, all subsequent writes are appended to the queue
|
|
12
|
+
* (never written ahead of older bytes), and the queue is flushed in order from
|
|
13
|
+
* the `drain` handler.
|
|
14
|
+
*/
|
|
15
|
+
import type { Socket } from 'bun';
|
|
16
|
+
/** Minimal write surface a socket must expose for the queue. */
|
|
17
|
+
interface WritableSocket {
|
|
18
|
+
write(data: Uint8Array): number;
|
|
19
|
+
}
|
|
20
|
+
/** Per-socket pending write state. Stored on `socket.data`. */
|
|
21
|
+
export declare class SocketWriteQueue {
|
|
22
|
+
/** Buffered chunks waiting to be (re)written, in order. */
|
|
23
|
+
private pending;
|
|
24
|
+
/** Byte offset into pending[0] already written by a short write. */
|
|
25
|
+
private offset;
|
|
26
|
+
/** Total queued bytes (for bounds / observability). */
|
|
27
|
+
private queuedBytes;
|
|
28
|
+
/** Max queued bytes before the queue reports over-budget (0 = unbounded). */
|
|
29
|
+
private readonly maxBytes;
|
|
30
|
+
/**
|
|
31
|
+
* @param maxBytes Soft cap on buffered bytes. When `bytesQueued` exceeds this,
|
|
32
|
+
* `isOverBudget` becomes true and the owner should drop the connection
|
|
33
|
+
* (bounds write-side memory for a client that stopped reading). 0 disables.
|
|
34
|
+
*/
|
|
35
|
+
constructor(maxBytes?: number);
|
|
36
|
+
/**
|
|
37
|
+
* True once the buffered byte count exceeds the configured cap. The owner is
|
|
38
|
+
* expected to terminate the connection and `clear()` the queue.
|
|
39
|
+
*/
|
|
40
|
+
get isOverBudget(): boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Enqueue `data` for delivery on `socket`, preserving order.
|
|
43
|
+
* Returns false if the socket appears closed (write threw / returned < 0).
|
|
44
|
+
*/
|
|
45
|
+
write(socket: WritableSocket, data: Uint8Array): boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Flush as much of the pending queue as the socket accepts.
|
|
48
|
+
* Call from the socket's `drain` handler. Stops at the first short write,
|
|
49
|
+
* leaving the remainder queued for the next drain.
|
|
50
|
+
*/
|
|
51
|
+
flush(socket: WritableSocket): void;
|
|
52
|
+
/** Number of bytes still buffered awaiting drain. */
|
|
53
|
+
get bytesQueued(): number;
|
|
54
|
+
/** Whether there is unwritten data awaiting drain. */
|
|
55
|
+
get hasPending(): boolean;
|
|
56
|
+
/** Drop all buffered data (e.g. on close). */
|
|
57
|
+
clear(): void;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Convenience: write through a socket whose `data` carries a `writeQueue`.
|
|
61
|
+
* Keeps call sites in tcp.ts terse and consistent.
|
|
62
|
+
*/
|
|
63
|
+
export declare function queuedWrite<T extends {
|
|
64
|
+
writeQueue: SocketWriteQueue;
|
|
65
|
+
}>(socket: Socket<T>, data: Uint8Array): void;
|
|
66
|
+
export {};
|
|
67
|
+
//# sourceMappingURL=socketWriteQueue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"socketWriteQueue.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/server/socketWriteQueue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAElC,gEAAgE;AAChE,UAAU,cAAc;IACtB,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAAC;CACjC;AAED,+DAA+D;AAC/D,qBAAa,gBAAgB;IAC3B,2DAA2D;IAC3D,OAAO,CAAC,OAAO,CAAoB;IACnC,oEAAoE;IACpE,OAAO,CAAC,MAAM,CAAK;IACnB,uDAAuD;IACvD,OAAO,CAAC,WAAW,CAAK;IACxB,6EAA6E;IAC7E,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAElC;;;;OAIG;gBACS,QAAQ,SAAI;IAIxB;;;OAGG;IACH,IAAI,YAAY,IAAI,OAAO,CAE1B;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO;IAgCxD;;;;OAIG;IACH,KAAK,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IA+BnC,qDAAqD;IACrD,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,sDAAsD;IACtD,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,8CAA8C;IAC9C,KAAK,IAAI,IAAI;CAKd;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS;IAAE,UAAU,EAAE,gBAAgB,CAAA;CAAE,EACpE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EACjB,IAAI,EAAE,UAAU,GACf,IAAI,CAEN"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-socket write queue
|
|
3
|
+
* =================================================================
|
|
4
|
+
* Bun's `socket.write()` may write FEWER bytes than provided when the kernel
|
|
5
|
+
* send buffer is full (backpressure). The unwritten tail is NOT retained by
|
|
6
|
+
* Bun — the caller is responsible for buffering it and resending once the
|
|
7
|
+
* socket fires `drain`. Ignoring the short count silently drops response
|
|
8
|
+
* bytes, corrupting the length-prefixed frame protocol.
|
|
9
|
+
*
|
|
10
|
+
* This helper buffers any unwritten tail per-socket and preserves ordering:
|
|
11
|
+
* while a pending tail exists, all subsequent writes are appended to the queue
|
|
12
|
+
* (never written ahead of older bytes), and the queue is flushed in order from
|
|
13
|
+
* the `drain` handler.
|
|
14
|
+
*/
|
|
15
|
+
/** Per-socket pending write state. Stored on `socket.data`. */
|
|
16
|
+
export class SocketWriteQueue {
|
|
17
|
+
/** Buffered chunks waiting to be (re)written, in order. */
|
|
18
|
+
pending = [];
|
|
19
|
+
/** Byte offset into pending[0] already written by a short write. */
|
|
20
|
+
offset = 0;
|
|
21
|
+
/** Total queued bytes (for bounds / observability). */
|
|
22
|
+
queuedBytes = 0;
|
|
23
|
+
/** Max queued bytes before the queue reports over-budget (0 = unbounded). */
|
|
24
|
+
maxBytes;
|
|
25
|
+
/**
|
|
26
|
+
* @param maxBytes Soft cap on buffered bytes. When `bytesQueued` exceeds this,
|
|
27
|
+
* `isOverBudget` becomes true and the owner should drop the connection
|
|
28
|
+
* (bounds write-side memory for a client that stopped reading). 0 disables.
|
|
29
|
+
*/
|
|
30
|
+
constructor(maxBytes = 0) {
|
|
31
|
+
this.maxBytes = maxBytes > 0 ? maxBytes : 0;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* True once the buffered byte count exceeds the configured cap. The owner is
|
|
35
|
+
* expected to terminate the connection and `clear()` the queue.
|
|
36
|
+
*/
|
|
37
|
+
get isOverBudget() {
|
|
38
|
+
return this.maxBytes > 0 && this.queuedBytes > this.maxBytes;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Enqueue `data` for delivery on `socket`, preserving order.
|
|
42
|
+
* Returns false if the socket appears closed (write threw / returned < 0).
|
|
43
|
+
*/
|
|
44
|
+
write(socket, data) {
|
|
45
|
+
if (data.length === 0)
|
|
46
|
+
return true;
|
|
47
|
+
// If a tail is already pending, do NOT write ahead of it — append and wait
|
|
48
|
+
// for drain to flush in order.
|
|
49
|
+
if (this.pending.length > 0) {
|
|
50
|
+
this.pending.push(data);
|
|
51
|
+
this.queuedBytes += data.length;
|
|
52
|
+
return true;
|
|
53
|
+
}
|
|
54
|
+
let written;
|
|
55
|
+
try {
|
|
56
|
+
written = socket.write(data);
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
if (written < 0) {
|
|
62
|
+
// Socket closed.
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
if (written < data.length) {
|
|
66
|
+
// Short write: buffer the unwritten tail; flush on drain.
|
|
67
|
+
const tail = data.subarray(written);
|
|
68
|
+
this.pending.push(tail);
|
|
69
|
+
this.queuedBytes += tail.length;
|
|
70
|
+
}
|
|
71
|
+
return true;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Flush as much of the pending queue as the socket accepts.
|
|
75
|
+
* Call from the socket's `drain` handler. Stops at the first short write,
|
|
76
|
+
* leaving the remainder queued for the next drain.
|
|
77
|
+
*/
|
|
78
|
+
flush(socket) {
|
|
79
|
+
while (this.pending.length > 0) {
|
|
80
|
+
const chunk = this.pending[0];
|
|
81
|
+
const view = this.offset > 0 ? chunk.subarray(this.offset) : chunk;
|
|
82
|
+
let written;
|
|
83
|
+
try {
|
|
84
|
+
written = socket.write(view);
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
if (written <= 0) {
|
|
90
|
+
// Socket not ready / closed; wait for the next drain.
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
if (written < view.length) {
|
|
94
|
+
// Still backpressured: advance offset within the current chunk.
|
|
95
|
+
this.offset += written;
|
|
96
|
+
this.queuedBytes -= written;
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
// Whole chunk flushed.
|
|
100
|
+
this.queuedBytes -= view.length;
|
|
101
|
+
this.pending.shift();
|
|
102
|
+
this.offset = 0;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
/** Number of bytes still buffered awaiting drain. */
|
|
106
|
+
get bytesQueued() {
|
|
107
|
+
return this.queuedBytes;
|
|
108
|
+
}
|
|
109
|
+
/** Whether there is unwritten data awaiting drain. */
|
|
110
|
+
get hasPending() {
|
|
111
|
+
return this.pending.length > 0;
|
|
112
|
+
}
|
|
113
|
+
/** Drop all buffered data (e.g. on close). */
|
|
114
|
+
clear() {
|
|
115
|
+
this.pending = [];
|
|
116
|
+
this.offset = 0;
|
|
117
|
+
this.queuedBytes = 0;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Convenience: write through a socket whose `data` carries a `writeQueue`.
|
|
122
|
+
* Keeps call sites in tcp.ts terse and consistent.
|
|
123
|
+
*/
|
|
124
|
+
export function queuedWrite(socket, data) {
|
|
125
|
+
socket.data.writeQueue.write(socket, data);
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=socketWriteQueue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"socketWriteQueue.js","sourceRoot":"","sources":["../../../src/infrastructure/server/socketWriteQueue.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ import type { QueueManager } from '../../application/queueManager';
|
|
|
8
8
|
import { type HandlerContext } from './handler';
|
|
9
9
|
import { FrameParser, type ConnectionState } from './protocol';
|
|
10
10
|
import { Semaphore } from '../../shared/semaphore';
|
|
11
|
+
import { SocketWriteQueue } from './socketWriteQueue';
|
|
11
12
|
/** TCP Server configuration */
|
|
12
13
|
export interface TcpServerConfig {
|
|
13
14
|
/** TCP port */
|
|
@@ -16,6 +17,18 @@ export interface TcpServerConfig {
|
|
|
16
17
|
hostname?: string;
|
|
17
18
|
/** Auth tokens for authentication */
|
|
18
19
|
authTokens?: string[];
|
|
20
|
+
/**
|
|
21
|
+
* Slowloris stall timeout (ms): close a connection that started a frame but
|
|
22
|
+
* made no progress completing it within this window. 0 disables. Defaults to
|
|
23
|
+
* TCP_IDLE_TIMEOUT_MS env (60s). Mainly for tests.
|
|
24
|
+
*/
|
|
25
|
+
idleTimeoutMs?: number;
|
|
26
|
+
/**
|
|
27
|
+
* Max outbound write-queue bytes before dropping a connection (write-side
|
|
28
|
+
* memory bound). 0 disables. Defaults to TCP_MAX_WRITE_QUEUE_BYTES env (64MB).
|
|
29
|
+
* Mainly for tests.
|
|
30
|
+
*/
|
|
31
|
+
maxWriteQueueBytes?: number;
|
|
19
32
|
}
|
|
20
33
|
/** Per-connection data */
|
|
21
34
|
interface ConnectionData {
|
|
@@ -24,6 +37,10 @@ interface ConnectionData {
|
|
|
24
37
|
ctx: HandlerContext;
|
|
25
38
|
/** Semaphore for limiting concurrent command processing (pipelining) */
|
|
26
39
|
semaphore: Semaphore;
|
|
40
|
+
/** Backpressure-aware write queue: buffers unwritten tails, flushes on drain */
|
|
41
|
+
writeQueue: SocketWriteQueue;
|
|
42
|
+
/** Active partial-frame stall timer (slowloris mitigation); null when idle. */
|
|
43
|
+
stallTimer: ReturnType<typeof setTimeout> | null;
|
|
27
44
|
}
|
|
28
45
|
/**
|
|
29
46
|
* Create and start TCP server
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tcp.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/server/tcp.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,KAAK,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAGnE,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,EACL,WAAW,EAGX,KAAK,eAAe,EACrB,MAAM,YAAY,CAAC;AAKpB,OAAO,EAAE,SAAS,EAAiB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"tcp.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/server/tcp.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,KAAK,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAGnE,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,EACL,WAAW,EAGX,KAAK,eAAe,EACrB,MAAM,YAAY,CAAC;AAKpB,OAAO,EAAE,SAAS,EAAiB,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AA0DtD,+BAA+B;AAC/B,MAAM,WAAW,eAAe;IAC9B,eAAe;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uBAAuB;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qCAAqC;IACrC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,0BAA0B;AAC1B,UAAU,cAAc;IACtB,KAAK,EAAE,eAAe,CAAC;IACvB,WAAW,EAAE,WAAW,CAAC;IACzB,GAAG,EAAE,cAAc,CAAC;IACpB,wEAAwE;IACxE,SAAS,EAAE,SAAS,CAAC;IACrB,gFAAgF;IAChF,UAAU,EAAE,gBAAgB,CAAC;IAC7B,+EAA+E;IAC/E,UAAU,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,IAAI,CAAC;CAClD;AAYD;;GAEG;AACH,wBAAgB,eAAe,CAAC,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,eAAe;;;IAwM/E,2BAA2B;0BACL,MAAM;IAI5B,mCAAmC;uBAChB,OAAO,GAAG,IAAI;IAejC,sBAAsB;YACd,IAAI;EASf;AAED,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC"}
|