@peerbit/shared-log 16.0.30 → 16.0.32
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/README.md +23 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +101 -4
- package/dist/src/index.js.map +1 -1
- package/dist/src/sync/dispatch-lifecycle.d.ts +5 -0
- package/dist/src/sync/dispatch-lifecycle.d.ts.map +1 -1
- package/dist/src/sync/dispatch-lifecycle.js +15 -0
- package/dist/src/sync/dispatch-lifecycle.js.map +1 -1
- package/dist/src/sync/index.d.ts +10 -1
- package/dist/src/sync/index.d.ts.map +1 -1
- package/dist/src/sync/rateless-iblt.d.ts +8 -1
- package/dist/src/sync/rateless-iblt.d.ts.map +1 -1
- package/dist/src/sync/rateless-iblt.js +140 -13
- package/dist/src/sync/rateless-iblt.js.map +1 -1
- package/dist/src/sync/simple.d.ts +6 -2
- package/dist/src/sync/simple.d.ts.map +1 -1
- package/dist/src/sync/simple.js +181 -122
- package/dist/src/sync/simple.js.map +1 -1
- package/package.json +12 -12
- package/src/index.ts +128 -6
- package/src/sync/dispatch-lifecycle.ts +20 -0
- package/src/sync/index.ts +10 -0
- package/src/sync/rateless-iblt.ts +178 -11
- package/src/sync/simple.ts +252 -154
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
import { AbortError } from "@peerbit/time";
|
|
2
|
+
/** Local receive drain cancellation; never a transport or persistence failure. */
|
|
3
|
+
export declare class SyncReceiveAbortError extends AbortError {
|
|
4
|
+
}
|
|
5
|
+
export declare const isSyncDispatchCancellation: (error: unknown, signal: AbortSignal | undefined, inactive?: boolean) => boolean;
|
|
1
6
|
export interface DispatchTargetLifecycleBase<LC> {
|
|
2
7
|
lifecycle: LC;
|
|
3
8
|
target: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatch-lifecycle.d.ts","sourceRoot":"","sources":["../../../src/sync/dispatch-lifecycle.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dispatch-lifecycle.d.ts","sourceRoot":"","sources":["../../../src/sync/dispatch-lifecycle.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,21 @@
|
|
|
16
16
|
// caller-specific fields such as epochs, batches and retained-work
|
|
17
17
|
// counters); the registry owns the per-target active sets, the listener
|
|
18
18
|
// add/remove pairing and the dispose gating.
|
|
19
|
+
import { AbortError } from "@peerbit/time";
|
|
20
|
+
/** Local receive drain cancellation; never a transport or persistence failure. */
|
|
21
|
+
export class SyncReceiveAbortError extends AbortError {
|
|
22
|
+
}
|
|
23
|
+
export const isSyncDispatchCancellation = (error, signal, inactive = signal?.aborted === true) => {
|
|
24
|
+
if (!inactive)
|
|
25
|
+
return false;
|
|
26
|
+
// Keep the existing owner/disconnect error policy. Only the new receive
|
|
27
|
+
// cancellation must distinguish unrelated failures that race its abort.
|
|
28
|
+
if (!(signal?.reason instanceof SyncReceiveAbortError))
|
|
29
|
+
return true;
|
|
30
|
+
return (error === signal.reason ||
|
|
31
|
+
error instanceof AbortError ||
|
|
32
|
+
(error instanceof Error && error.name === "AbortError"));
|
|
33
|
+
};
|
|
19
34
|
export class DispatchLifecycleRegistry {
|
|
20
35
|
deps;
|
|
21
36
|
activeTargets = new Map();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatch-lifecycle.js","sourceRoot":"","sources":["../../../src/sync/dispatch-lifecycle.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,oEAAoE;AACpE,oEAAoE;AACpE,0EAA0E;AAC1E,+DAA+D;AAC/D,EAAE;AACF,4EAA4E;AAC5E,2EAA2E;AAC3E,2EAA2E;AAC3E,mDAAmD;AACnD,wEAAwE;AACxE,oEAAoE;AACpE,gEAAgE;AAChE,EAAE;AACF,+DAA+D;AAC/D,mEAAmE;AACnE,wEAAwE;AACxE,6CAA6C;
|
|
1
|
+
{"version":3,"file":"dispatch-lifecycle.js","sourceRoot":"","sources":["../../../src/sync/dispatch-lifecycle.ts"],"names":[],"mappings":"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"}
|
package/dist/src/sync/index.d.ts
CHANGED
|
@@ -173,7 +173,9 @@ export interface Syncronizer<R extends "u32" | "u64"> {
|
|
|
173
173
|
targets: string[];
|
|
174
174
|
signal?: AbortSignal;
|
|
175
175
|
}): Promise<void> | void;
|
|
176
|
-
onMessage(message: TransportMessage, context: RequestContext
|
|
176
|
+
onMessage(message: TransportMessage, context: RequestContext, options?: {
|
|
177
|
+
signal?: AbortSignal;
|
|
178
|
+
}): Promise<boolean> | boolean;
|
|
177
179
|
onReceivedEntries(properties: {
|
|
178
180
|
entries: EntryWithRefs<any>[];
|
|
179
181
|
from: PublicSignKey;
|
|
@@ -189,6 +191,13 @@ export interface Syncronizer<R extends "u32" | "u64"> {
|
|
|
189
191
|
onEntryRemoved(hash: string): void;
|
|
190
192
|
onPeerDisconnected(key: PublicSignKey | string): void;
|
|
191
193
|
open(): Promise<void> | void;
|
|
194
|
+
/**
|
|
195
|
+
* Synchronously fence dispatch admission and cancel the current generation's
|
|
196
|
+
* network waits before SharedLog drains admitted receives. Do not stop shared
|
|
197
|
+
* indexes or discard physical-work accounting here: close() still runs after
|
|
198
|
+
* those receives settle. Optional for existing custom synchronizers.
|
|
199
|
+
*/
|
|
200
|
+
beginClose?(): void;
|
|
192
201
|
close(): Promise<void> | void;
|
|
193
202
|
get pending(): number;
|
|
194
203
|
get syncInFlight(): Map<string, Map<SyncableKey, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/sync/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/sync/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -109,6 +109,7 @@ type OutgoingRatelessSyncProcess = {
|
|
|
109
109
|
exhaustedAfterSend: boolean;
|
|
110
110
|
} | undefined;
|
|
111
111
|
startSimpleFallback: () => Promise<void>;
|
|
112
|
+
cancelSimpleFallback: (reason: unknown) => void;
|
|
112
113
|
simpleFallbackStarted: boolean;
|
|
113
114
|
free: (reason?: unknown) => void;
|
|
114
115
|
processController: AbortController;
|
|
@@ -136,6 +137,7 @@ type IncomingRatelessSyncProcess = {
|
|
|
136
137
|
symbols: CodedSymbolInput;
|
|
137
138
|
}) => Promise<IncomingRatelessProcessResult>;
|
|
138
139
|
requestAll: () => Promise<void>;
|
|
140
|
+
drain: () => Promise<void>;
|
|
139
141
|
fallbackToSimple: (reason?: unknown) => Promise<void>;
|
|
140
142
|
free: (reason?: unknown) => void;
|
|
141
143
|
complete: () => void;
|
|
@@ -191,6 +193,7 @@ export declare class RatelessIBLTSynchronizer<D extends "u32" | "u64"> implement
|
|
|
191
193
|
private getIncomingSyncProcessKey;
|
|
192
194
|
private isIncomingSyncGenerationActive;
|
|
193
195
|
private isIncomingSyncProcessActive;
|
|
196
|
+
private settleIncomingReceive;
|
|
194
197
|
onMaybeMissingEntries(properties: {
|
|
195
198
|
entries: Map<string, SyncEntryCoordinates<D>>;
|
|
196
199
|
targets: string[];
|
|
@@ -201,7 +204,10 @@ export declare class RatelessIBLTSynchronizer<D extends "u32" | "u64"> implement
|
|
|
201
204
|
private consumeAuthorizedRatelessResponse;
|
|
202
205
|
private getOrCreateRatelessResponseSlotRow;
|
|
203
206
|
private detachRatelessResponseSlotRow;
|
|
204
|
-
onMessage(message: TransportMessage, context: RequestContext
|
|
207
|
+
onMessage(message: TransportMessage, context: RequestContext, options?: {
|
|
208
|
+
signal?: AbortSignal;
|
|
209
|
+
}): Promise<boolean>;
|
|
210
|
+
private onMessageForReceive;
|
|
205
211
|
onReceivedEntries(properties: {
|
|
206
212
|
entries: EntryWithRefs<any>[];
|
|
207
213
|
from: PublicSignKey;
|
|
@@ -217,6 +223,7 @@ export declare class RatelessIBLTSynchronizer<D extends "u32" | "u64"> implement
|
|
|
217
223
|
onEntryRemovedHashes(hashes: string[]): void;
|
|
218
224
|
onPeerDisconnected(key: PublicSignKey | string): void | Promise<void>;
|
|
219
225
|
open(): Promise<void> | void;
|
|
226
|
+
beginClose(): void;
|
|
220
227
|
close(): Promise<void> | void;
|
|
221
228
|
get syncInFlight(): Map<string, Map<SyncableKey, {
|
|
222
229
|
timestamp: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rateless-iblt.d.ts","sourceRoot":"","sources":["../../../src/sync/rateless-iblt.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,KAAK,aAAa,EAAyB,MAAM,iBAAiB,CAAC;AAQ5E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EACN,cAAc,EACd,cAAc,EAEd,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"rateless-iblt.d.ts","sourceRoot":"","sources":["../../../src/sync/rateless-iblt.ts"],"names":[],"mappings":"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"}
|
|
@@ -42,7 +42,7 @@ import { SilentDelivery } from "@peerbit/stream-interface";
|
|
|
42
42
|
import {} from "../exchange-heads.js";
|
|
43
43
|
import { TransportMessage } from "../message.js";
|
|
44
44
|
import {} from "../ranges.js";
|
|
45
|
-
import { DispatchLifecycleRegistry, isOwnershipGenerationActive, isTrackedSessionActive, } from "./dispatch-lifecycle.js";
|
|
45
|
+
import { DispatchLifecycleRegistry, SyncReceiveAbortError, isOwnershipGenerationActive, isSyncDispatchCancellation, isTrackedSessionActive, } from "./dispatch-lifecycle.js";
|
|
46
46
|
import { emitSyncProfileDuration, emitSyncProfileEvent, syncProfileStart, } from "./profile.js";
|
|
47
47
|
import { ResponseMaybeSync, ResponseMaybeSyncCapabilities, SYNC_MESSAGE_PRIORITY, SimpleSyncronizer, } from "./simple.js";
|
|
48
48
|
import { SyncPeerSlotRegistry, } from "./sync-peer-state.js";
|
|
@@ -884,6 +884,9 @@ export class RatelessIBLTSynchronizer {
|
|
|
884
884
|
});
|
|
885
885
|
}
|
|
886
886
|
startRepairSession(properties) {
|
|
887
|
+
if (this.ratelessClosed) {
|
|
888
|
+
return this.simple.startRepairSession(properties);
|
|
889
|
+
}
|
|
887
890
|
const mode = properties.mode ?? "best-effort";
|
|
888
891
|
const targets = [...new Set(properties.targets)];
|
|
889
892
|
const timeoutMs = Math.max(1, Math.floor(properties.timeoutMs ?? DEFAULT_CONVERGENT_REPAIR_TIMEOUT_MS));
|
|
@@ -1203,6 +1206,30 @@ export class RatelessIBLTSynchronizer {
|
|
|
1203
1206
|
!process.controller.signal.aborted &&
|
|
1204
1207
|
this.ingoingSyncProcesses.get(process.key) === process);
|
|
1205
1208
|
}
|
|
1209
|
+
async settleIncomingReceive(process, signal) {
|
|
1210
|
+
const errors = [];
|
|
1211
|
+
try {
|
|
1212
|
+
await process.drain();
|
|
1213
|
+
}
|
|
1214
|
+
catch (error) {
|
|
1215
|
+
errors.push(error);
|
|
1216
|
+
}
|
|
1217
|
+
if (signal.aborted) {
|
|
1218
|
+
try {
|
|
1219
|
+
process.free(signal.reason);
|
|
1220
|
+
}
|
|
1221
|
+
catch (error) {
|
|
1222
|
+
errors.push(error);
|
|
1223
|
+
}
|
|
1224
|
+
}
|
|
1225
|
+
if (errors.length === 1)
|
|
1226
|
+
throw errors[0];
|
|
1227
|
+
if (errors.length > 1) {
|
|
1228
|
+
throw new AggregateError(errors, "incoming receive drain and cleanup failed", {
|
|
1229
|
+
cause: errors[0],
|
|
1230
|
+
});
|
|
1231
|
+
}
|
|
1232
|
+
}
|
|
1206
1233
|
async onMaybeMissingEntries(properties) {
|
|
1207
1234
|
// Capture this rateless open generation synchronously, before any await.
|
|
1208
1235
|
// In particular, signal-less internal repair work must not resume after
|
|
@@ -1551,6 +1578,7 @@ export class RatelessIBLTSynchronizer {
|
|
|
1551
1578
|
let symbolsProduced = startSyncSymbols.length;
|
|
1552
1579
|
let symbolBudgetExhausted = false;
|
|
1553
1580
|
let simpleFallbackPromise;
|
|
1581
|
+
const simpleFallbackController = new AbortController();
|
|
1554
1582
|
const symbolBudget = getOutgoingRatelessSymbolBudget(properties.coordinates.length, startSyncSymbols.length);
|
|
1555
1583
|
let onTargetAbort;
|
|
1556
1584
|
const clear = (reason = new Error("rateless outgoing process closed")) => {
|
|
@@ -1591,7 +1619,14 @@ export class RatelessIBLTSynchronizer {
|
|
|
1591
1619
|
simpleFallbackPromise = Promise.resolve(this.simple.onMaybeMissingHashes({
|
|
1592
1620
|
hashes: properties.outgoingHashes,
|
|
1593
1621
|
targets: [target],
|
|
1594
|
-
|
|
1622
|
+
// Encoder retirement must not cancel an admitted fallback.
|
|
1623
|
+
// A receive awaiting that exact memoized operation can do so.
|
|
1624
|
+
signal: lifecycle.callerSignal
|
|
1625
|
+
? AbortSignal.any([
|
|
1626
|
+
lifecycle.callerSignal,
|
|
1627
|
+
simpleFallbackController.signal,
|
|
1628
|
+
])
|
|
1629
|
+
: simpleFallbackController.signal,
|
|
1595
1630
|
}));
|
|
1596
1631
|
}
|
|
1597
1632
|
return simpleFallbackPromise;
|
|
@@ -1664,6 +1699,7 @@ export class RatelessIBLTSynchronizer {
|
|
|
1664
1699
|
return { symbols, exhaustedAfterSend };
|
|
1665
1700
|
},
|
|
1666
1701
|
startSimpleFallback,
|
|
1702
|
+
cancelSimpleFallback: (reason) => simpleFallbackController.abort(reason),
|
|
1667
1703
|
simpleFallbackStarted: false,
|
|
1668
1704
|
free: clear,
|
|
1669
1705
|
outgoingHashes: properties.outgoingHashes,
|
|
@@ -1874,7 +1910,64 @@ export class RatelessIBLTSynchronizer {
|
|
|
1874
1910
|
releaseLogical();
|
|
1875
1911
|
}
|
|
1876
1912
|
}
|
|
1877
|
-
async onMessage(message, context) {
|
|
1913
|
+
async onMessage(message, context, options) {
|
|
1914
|
+
const signal = options?.signal;
|
|
1915
|
+
if (!signal) {
|
|
1916
|
+
return this.onMessageForReceive(message, context);
|
|
1917
|
+
}
|
|
1918
|
+
let cancel;
|
|
1919
|
+
let settle;
|
|
1920
|
+
const onAbort = () => cancel?.();
|
|
1921
|
+
signal.addEventListener("abort", onAbort, { once: true });
|
|
1922
|
+
const errors = [];
|
|
1923
|
+
let handled = false;
|
|
1924
|
+
try {
|
|
1925
|
+
handled = await this.onMessageForReceive(message, context, {
|
|
1926
|
+
signal,
|
|
1927
|
+
bind: (cancelWork, settleWork) => {
|
|
1928
|
+
cancel = cancelWork;
|
|
1929
|
+
settle = settleWork;
|
|
1930
|
+
if (signal.aborted) {
|
|
1931
|
+
onAbort();
|
|
1932
|
+
}
|
|
1933
|
+
},
|
|
1934
|
+
});
|
|
1935
|
+
}
|
|
1936
|
+
catch (error) {
|
|
1937
|
+
errors.push(error);
|
|
1938
|
+
}
|
|
1939
|
+
finally {
|
|
1940
|
+
// Keep cancellation connected while a bounded fallback's logical
|
|
1941
|
+
// completion still leaves its lower send physically draining.
|
|
1942
|
+
try {
|
|
1943
|
+
await settle?.();
|
|
1944
|
+
}
|
|
1945
|
+
catch (error) {
|
|
1946
|
+
if (!errors.includes(error)) {
|
|
1947
|
+
errors.push(error);
|
|
1948
|
+
}
|
|
1949
|
+
}
|
|
1950
|
+
finally {
|
|
1951
|
+
signal.removeEventListener("abort", onAbort);
|
|
1952
|
+
}
|
|
1953
|
+
}
|
|
1954
|
+
if (errors.length === 1)
|
|
1955
|
+
throw errors[0];
|
|
1956
|
+
if (errors.length > 1) {
|
|
1957
|
+
throw new AggregateError(errors, "sync receive and physical cleanup failed", {
|
|
1958
|
+
cause: errors[0],
|
|
1959
|
+
});
|
|
1960
|
+
}
|
|
1961
|
+
return handled;
|
|
1962
|
+
}
|
|
1963
|
+
async onMessageForReceive(message, context, options) {
|
|
1964
|
+
if (options?.signal.aborted) {
|
|
1965
|
+
return (message instanceof StartSync ||
|
|
1966
|
+
message instanceof MoreSymbols ||
|
|
1967
|
+
message instanceof RequestMoreSymbols ||
|
|
1968
|
+
message instanceof RequestAll ||
|
|
1969
|
+
(await this.simple.onMessage(message, context, options)));
|
|
1970
|
+
}
|
|
1878
1971
|
const profile = this.properties.sync?.profile;
|
|
1879
1972
|
if (message instanceof StartSync) {
|
|
1880
1973
|
const from = context.from;
|
|
@@ -1984,6 +2077,7 @@ export class RatelessIBLTSynchronizer {
|
|
|
1984
2077
|
symbolBudget: getIncomingRatelessSymbolBudget(message.symbols.length),
|
|
1985
2078
|
process: async () => undefined,
|
|
1986
2079
|
requestAll: async () => { },
|
|
2080
|
+
drain: async () => { },
|
|
1987
2081
|
fallbackToSimple: async () => { },
|
|
1988
2082
|
free,
|
|
1989
2083
|
complete,
|
|
@@ -1991,6 +2085,7 @@ export class RatelessIBLTSynchronizer {
|
|
|
1991
2085
|
this.ingoingSyncProcesses.set(key, obj);
|
|
1992
2086
|
onOwnershipAbort = () => free(ownershipLifecycleController.signal.reason);
|
|
1993
2087
|
ownershipLifecycleController.signal.addEventListener("abort", onOwnershipAbort, { once: true });
|
|
2088
|
+
options?.bind(() => controller.abort(options.signal.reason), () => this.settleIncomingReceive(obj, options.signal));
|
|
1994
2089
|
obj.deadlineTimeout = setTimeout(() => {
|
|
1995
2090
|
void obj.fallbackToSimple(new Error("incoming rateless process deadline exceeded"));
|
|
1996
2091
|
}, RATELESS_PROCESS_ABSOLUTE_TIMEOUT_MS);
|
|
@@ -2000,6 +2095,9 @@ export class RatelessIBLTSynchronizer {
|
|
|
2000
2095
|
return true;
|
|
2001
2096
|
}
|
|
2002
2097
|
let requestAllPromise;
|
|
2098
|
+
obj.drain = async () => {
|
|
2099
|
+
await requestAllPromise;
|
|
2100
|
+
};
|
|
2003
2101
|
obj.requestAll = () => {
|
|
2004
2102
|
if (requestAllPromise) {
|
|
2005
2103
|
return requestAllPromise;
|
|
@@ -2030,6 +2128,13 @@ export class RatelessIBLTSynchronizer {
|
|
|
2030
2128
|
});
|
|
2031
2129
|
}
|
|
2032
2130
|
}
|
|
2131
|
+
catch (error) {
|
|
2132
|
+
// Classify before complete() aborts the process as normal cleanup;
|
|
2133
|
+
// that cleanup must not disguise a genuine lower-send failure.
|
|
2134
|
+
if (!isSyncDispatchCancellation(error, controller.signal)) {
|
|
2135
|
+
throw error;
|
|
2136
|
+
}
|
|
2137
|
+
}
|
|
2033
2138
|
finally {
|
|
2034
2139
|
fallbackSendPending = false;
|
|
2035
2140
|
if (this.isIncomingSyncProcessActive(obj)) {
|
|
@@ -2098,7 +2203,8 @@ export class RatelessIBLTSynchronizer {
|
|
|
2098
2203
|
catch (error) {
|
|
2099
2204
|
const processAborted = controller.signal.aborted;
|
|
2100
2205
|
free(error);
|
|
2101
|
-
if (processAborted
|
|
2206
|
+
if ((processAborted &&
|
|
2207
|
+
isSyncDispatchCancellation(error, controller.signal)) ||
|
|
2102
2208
|
!this.isIncomingSyncGenerationActive(ownershipLifecycleController)) {
|
|
2103
2209
|
return true;
|
|
2104
2210
|
}
|
|
@@ -2338,7 +2444,7 @@ export class RatelessIBLTSynchronizer {
|
|
|
2338
2444
|
});
|
|
2339
2445
|
}
|
|
2340
2446
|
catch (error) {
|
|
2341
|
-
if (!this.isIncomingSyncProcessActive(obj)) {
|
|
2447
|
+
if (isSyncDispatchCancellation(error, controller.signal, !this.isIncomingSyncProcessActive(obj))) {
|
|
2342
2448
|
return true;
|
|
2343
2449
|
}
|
|
2344
2450
|
free(error);
|
|
@@ -2371,6 +2477,7 @@ export class RatelessIBLTSynchronizer {
|
|
|
2371
2477
|
!this.isIncomingSyncProcessActive(obj)) {
|
|
2372
2478
|
return true;
|
|
2373
2479
|
}
|
|
2480
|
+
options?.bind(() => obj.controller.abort(options.signal.reason), () => this.settleIncomingReceive(obj, options.signal));
|
|
2374
2481
|
let outProcess;
|
|
2375
2482
|
try {
|
|
2376
2483
|
outProcess = await obj.process(message);
|
|
@@ -2414,7 +2521,11 @@ export class RatelessIBLTSynchronizer {
|
|
|
2414
2521
|
signal: obj.controller.signal,
|
|
2415
2522
|
});
|
|
2416
2523
|
}
|
|
2417
|
-
catch {
|
|
2524
|
+
catch (error) {
|
|
2525
|
+
if (obj.controller.signal.reason instanceof SyncReceiveAbortError &&
|
|
2526
|
+
!isSyncDispatchCancellation(error, obj.controller.signal)) {
|
|
2527
|
+
throw error;
|
|
2528
|
+
}
|
|
2418
2529
|
if (profile) {
|
|
2419
2530
|
emitSyncProfileDuration(profile, sendStartedAt, {
|
|
2420
2531
|
name: "rateless.sendRequestMoreSymbols",
|
|
@@ -2448,6 +2559,11 @@ export class RatelessIBLTSynchronizer {
|
|
|
2448
2559
|
if (context.from?.hashcode() !== obj.target) {
|
|
2449
2560
|
return true;
|
|
2450
2561
|
}
|
|
2562
|
+
options?.bind(() => obj.processController.abort(options.signal.reason), async () => {
|
|
2563
|
+
if (options.signal.aborted) {
|
|
2564
|
+
obj.free(options.signal.reason);
|
|
2565
|
+
}
|
|
2566
|
+
});
|
|
2451
2567
|
const signal = obj.signal;
|
|
2452
2568
|
if (signal.aborted) {
|
|
2453
2569
|
return true;
|
|
@@ -2473,7 +2589,7 @@ export class RatelessIBLTSynchronizer {
|
|
|
2473
2589
|
});
|
|
2474
2590
|
}
|
|
2475
2591
|
catch (error) {
|
|
2476
|
-
if (signal
|
|
2592
|
+
if (isSyncDispatchCancellation(error, signal)) {
|
|
2477
2593
|
return true;
|
|
2478
2594
|
}
|
|
2479
2595
|
throw error;
|
|
@@ -2509,7 +2625,11 @@ export class RatelessIBLTSynchronizer {
|
|
|
2509
2625
|
}
|
|
2510
2626
|
// RequestAll ends only this target's rateless attempt. Other target
|
|
2511
2627
|
// encoders and response authorizations remain independently owned.
|
|
2512
|
-
|
|
2628
|
+
let fallback;
|
|
2629
|
+
options?.bind(() => p.cancelSimpleFallback(options.signal.reason), async () => {
|
|
2630
|
+
await fallback;
|
|
2631
|
+
});
|
|
2632
|
+
fallback = p.startSimpleFallback();
|
|
2513
2633
|
p.free();
|
|
2514
2634
|
await fallback;
|
|
2515
2635
|
return true;
|
|
@@ -2571,13 +2691,17 @@ export class RatelessIBLTSynchronizer {
|
|
|
2571
2691
|
entries: 0,
|
|
2572
2692
|
};
|
|
2573
2693
|
try {
|
|
2694
|
+
const signal = options?.signal
|
|
2695
|
+
? AbortSignal.any([response.signal, options.signal])
|
|
2696
|
+
: response.signal;
|
|
2574
2697
|
responseShipment =
|
|
2575
2698
|
await this.simple.shipAuthorizedMaybeSyncResponse({
|
|
2576
2699
|
hashes: response.authorized,
|
|
2577
2700
|
from,
|
|
2578
2701
|
response: message,
|
|
2579
|
-
signal
|
|
2702
|
+
signal,
|
|
2580
2703
|
});
|
|
2704
|
+
rollbackRatelessAuthorization = signal.aborted;
|
|
2581
2705
|
}
|
|
2582
2706
|
catch (error) {
|
|
2583
2707
|
firstError = error;
|
|
@@ -2607,6 +2731,7 @@ export class RatelessIBLTSynchronizer {
|
|
|
2607
2731
|
leases: simpleLeases,
|
|
2608
2732
|
from,
|
|
2609
2733
|
response: simpleMessage,
|
|
2734
|
+
signal: options?.signal,
|
|
2610
2735
|
});
|
|
2611
2736
|
}
|
|
2612
2737
|
catch (error) {
|
|
@@ -2629,7 +2754,7 @@ export class RatelessIBLTSynchronizer {
|
|
|
2629
2754
|
}
|
|
2630
2755
|
}
|
|
2631
2756
|
}
|
|
2632
|
-
return this.simple.onMessage(message, context);
|
|
2757
|
+
return this.simple.onMessage(message, context, options);
|
|
2633
2758
|
}
|
|
2634
2759
|
onReceivedEntries(properties) {
|
|
2635
2760
|
return this.simple.onReceivedEntries(properties);
|
|
@@ -2687,13 +2812,15 @@ export class RatelessIBLTSynchronizer {
|
|
|
2687
2812
|
this.ratelessClosed = false;
|
|
2688
2813
|
return this.simple.open();
|
|
2689
2814
|
}
|
|
2690
|
-
|
|
2815
|
+
beginClose() {
|
|
2691
2816
|
this.ratelessClosed = true;
|
|
2692
|
-
// Abort ownership first. Process abort listeners then cancel any in-flight
|
|
2693
|
-
// StartSync/MoreSymbols send before they detach or free native state.
|
|
2694
2817
|
const reason = new Error("rateless synchronizer closed");
|
|
2695
2818
|
this.cancelRatelessRepairSessions(reason);
|
|
2696
2819
|
this.ratelessDispatchLifecycleController.abort(reason);
|
|
2820
|
+
this.simple.beginClose();
|
|
2821
|
+
}
|
|
2822
|
+
close() {
|
|
2823
|
+
this.beginClose();
|
|
2697
2824
|
for (const obj of [...this.ingoingSyncProcesses.values()]) {
|
|
2698
2825
|
obj.free();
|
|
2699
2826
|
}
|