@pkcprotocol/pkc-js 0.0.33 → 0.0.35
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/browser/generated-version.d.ts +1 -1
- package/dist/browser/generated-version.js +1 -1
- package/dist/browser/helia/helia-for-pkc.js +30 -12
- package/dist/browser/helia/helia-for-pkc.js.map +1 -1
- package/dist/browser/helia/util.js +142 -42
- package/dist/browser/helia/util.js.map +1 -1
- package/dist/browser/runtime/node/community/local-community.js +26 -2
- package/dist/browser/runtime/node/community/local-community.js.map +1 -1
- package/dist/node/generated-version.d.ts +1 -1
- package/dist/node/generated-version.js +1 -1
- package/dist/node/helia/helia-for-pkc.js +30 -12
- package/dist/node/helia/helia-for-pkc.js.map +1 -1
- package/dist/node/helia/util.js +142 -42
- package/dist/node/helia/util.js.map +1 -1
- package/dist/node/runtime/node/community/local-community.js +26 -2
- package/dist/node/runtime/node/community/local-community.js.map +1 -1
- package/package.json +1 -1
|
@@ -228,26 +228,44 @@ export async function createLibp2pJsClientOrUseExistingOne(pkcOptions) {
|
|
|
228
228
|
peers: async (topic, options) => helia.libp2p.services.pubsub.getSubscribers(topic),
|
|
229
229
|
publish: async (topic, data, options) => {
|
|
230
230
|
throwIfHeliaIsStoppingOrStopped();
|
|
231
|
-
//
|
|
232
|
-
//
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
231
|
+
// Route publish through the mesh, not fanout. Gossipsub fanout selection requires
|
|
232
|
+
// an outbound gossipsub stream to a topic peer (streamsOutbound check), and that
|
|
233
|
+
// stream is set up asynchronously after libp2p's connection event — so warmup can
|
|
234
|
+
// complete (getSubscribers(topic) > 0) while the outbound stream is still
|
|
235
|
+
// negotiating, leaving res.recipients empty. The mesh path doesn't race because
|
|
236
|
+
// gossipsub only emits gossipsub:graft once both ends have outbound streams. We
|
|
237
|
+
// subscribe locally to force a graft, wait for it via waitForMeshPeer (called
|
|
238
|
+
// inside warmupForTopic), then publish. wasAlreadySubscribed guard prevents
|
|
239
|
+
// tearing down a subscription owned by another caller.
|
|
240
|
+
const wasAlreadySubscribed = helia.libp2p.services.pubsub.getTopics().includes(topic);
|
|
241
|
+
if (!wasAlreadySubscribed)
|
|
242
|
+
helia.libp2p.services.pubsub.subscribe(topic);
|
|
243
|
+
try {
|
|
236
244
|
await warmupForTopic(topic, options);
|
|
237
|
-
|
|
245
|
+
const res = await helia.libp2p.services.pubsub.publish(topic, data);
|
|
246
|
+
log("Published new data to pubsub topic (string, e.g. community address)", topic, "Direct gossipsub recipients (libp2p peer IDs, NOT signer/community addresses):", res.recipients.map((p) => p.toString()));
|
|
247
|
+
}
|
|
248
|
+
finally {
|
|
249
|
+
if (!wasAlreadySubscribed)
|
|
250
|
+
helia.libp2p.services.pubsub.unsubscribe(topic);
|
|
238
251
|
}
|
|
239
|
-
const res = await helia.libp2p.services.pubsub.publish(topic, data);
|
|
240
|
-
log("Published new data to pubsub topic (string, e.g. community address)", topic, "Direct gossipsub recipients (libp2p peer IDs, NOT signer/community addresses):", res.recipients.map((p) => p.toString()));
|
|
241
252
|
},
|
|
242
253
|
subscribe: async (topic, handler, options) => {
|
|
243
254
|
throwIfHeliaIsStoppingOrStopped();
|
|
244
|
-
// Await warmup so the caller's first message arrives on a populated mesh.
|
|
245
|
-
// The monkey-patched native subscribe (below) also kicks off warmup, but
|
|
246
|
-
// fire-and-forget; this awaits the same in-flight promise via the dedup map.
|
|
247
|
-
await warmupForTopic(topic, options);
|
|
248
255
|
//@ts-expect-error
|
|
249
256
|
pubsubEventHandler.on(topic, handler);
|
|
257
|
+
// Start warmup BEFORE native subscribe so the caller's abort signal lands
|
|
258
|
+
// on the promise stored in warmupPromisesByTopic. The monkey-patched
|
|
259
|
+
// pubsub.subscribe below also fires warmupForTopic, but with no options;
|
|
260
|
+
// if it ran first the dedup map would hold a signal-less promise and the
|
|
261
|
+
// caller's signal would be silently dropped. warmupForTopic returns
|
|
262
|
+
// synchronously up to connectToPubsubPeers's first await, so by the time
|
|
263
|
+
// its internal mesh-wait runs, the native subscribe call below has already
|
|
264
|
+
// added us to gossipsub's topic set (mesh edges only form for topics we're
|
|
265
|
+
// locally subscribed to).
|
|
266
|
+
const warmupPromise = warmupForTopic(topic, options);
|
|
250
267
|
helia.libp2p.services.pubsub.subscribe(topic);
|
|
268
|
+
await warmupPromise;
|
|
251
269
|
},
|
|
252
270
|
unsubscribe: async (topic, handler, options) => {
|
|
253
271
|
throwIfHeliaIsStoppingOrStopped();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helia-for-pkc.js","sourceRoot":"","sources":["../../../src/helia/helia-for-pkc.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"helia-for-pkc.js","sourceRoot":"","sources":["../../../src/helia/helia-for-pkc.ts"],"names":[],"mappings":"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"}
|
package/dist/node/helia/util.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { PKCError } from "../pkc-error.js";
|
|
2
2
|
import { pubsubTopicToDhtKeyCid } from "../util.js";
|
|
3
3
|
const TOPIC_SUBSCRIBER_WAIT_TIMEOUT_MS = 10_000;
|
|
4
|
+
const MESH_PEER_WAIT_TIMEOUT_MS = 3_000;
|
|
4
5
|
export function getHeliaDebugContext(helia) {
|
|
5
6
|
const connections = helia.libp2p.getConnections();
|
|
6
7
|
return {
|
|
@@ -63,6 +64,48 @@ export function waitForTopicSubscriber({ helia, topic, timeoutMs, abortSignal })
|
|
|
63
64
|
tryResolve();
|
|
64
65
|
});
|
|
65
66
|
}
|
|
67
|
+
// Event-based wait for gossipsub to GRAFT a peer into our local mesh for `topic`.
|
|
68
|
+
// Resolves on the first graft for the topic, on timeout, or on abort. Never rejects —
|
|
69
|
+
// callers proceed regardless; the wait is best-effort to avoid the graft-latency race
|
|
70
|
+
// where a remote publishes within ~one heartbeat of our subscribe.
|
|
71
|
+
function waitForMeshPeer({ helia, topic, timeoutMs, abortSignal }) {
|
|
72
|
+
const pubsub = helia.libp2p.services.pubsub;
|
|
73
|
+
if (pubsub.getMeshPeers(topic).length > 0)
|
|
74
|
+
return Promise.resolve();
|
|
75
|
+
if (abortSignal?.aborted)
|
|
76
|
+
return Promise.resolve();
|
|
77
|
+
return new Promise((resolve) => {
|
|
78
|
+
const cleanup = () => {
|
|
79
|
+
pubsub.removeEventListener("gossipsub:graft", onGraft);
|
|
80
|
+
clearTimeout(timer);
|
|
81
|
+
abortSignal?.removeEventListener("abort", onAbort);
|
|
82
|
+
};
|
|
83
|
+
const tryResolve = () => {
|
|
84
|
+
if (pubsub.getMeshPeers(topic).length > 0) {
|
|
85
|
+
cleanup();
|
|
86
|
+
resolve();
|
|
87
|
+
return true;
|
|
88
|
+
}
|
|
89
|
+
return false;
|
|
90
|
+
};
|
|
91
|
+
const onGraft = (e) => {
|
|
92
|
+
if (e.detail.topic === topic)
|
|
93
|
+
tryResolve();
|
|
94
|
+
};
|
|
95
|
+
const onAbort = () => {
|
|
96
|
+
cleanup();
|
|
97
|
+
resolve();
|
|
98
|
+
};
|
|
99
|
+
const timer = setTimeout(() => {
|
|
100
|
+
cleanup();
|
|
101
|
+
resolve();
|
|
102
|
+
}, timeoutMs);
|
|
103
|
+
pubsub.addEventListener("gossipsub:graft", onGraft);
|
|
104
|
+
abortSignal?.addEventListener("abort", onAbort, { once: true });
|
|
105
|
+
// Race-safe re-check: a graft may have fired between the initial check and addEventListener.
|
|
106
|
+
tryResolve();
|
|
107
|
+
});
|
|
108
|
+
}
|
|
66
109
|
// Ambient peer discovery for gossipsub. js-libp2p's pubsub intentionally does not discover
|
|
67
110
|
// topic peers itself; that is the application's responsibility (same pattern Helia and
|
|
68
111
|
// js-ipfs use): hash the topic to a CID, contentRouting.findProviders(), then dial.
|
|
@@ -72,60 +115,80 @@ export async function connectToPubsubPeers({ helia, pubsubTopic, maxPeers, optio
|
|
|
72
115
|
const peersWithContent = [];
|
|
73
116
|
const connectedPeersWithContent = [];
|
|
74
117
|
const peerDialToError = {};
|
|
75
|
-
//
|
|
76
|
-
|
|
77
|
-
|
|
118
|
+
// Two separate abort signals:
|
|
119
|
+
// - findProvidersAbort: stops enqueueing new dials when subscription-change fires
|
|
120
|
+
// or maxPeers is reached. Combined with the user's signal.
|
|
121
|
+
// - dialOptions.signal: ONLY the user's signal (e.g. helia.stop()). Dials are NOT
|
|
122
|
+
// aborted on subscription-change so they keep running in the background and add
|
|
123
|
+
// themselves to bitswap's peer set via the peer:connected event, giving the
|
|
124
|
+
// subsequent bitswap fetch more peers to wantBlock from.
|
|
125
|
+
const findProvidersAbort = new AbortController();
|
|
126
|
+
const findProvidersSignal = options?.signal ? AbortSignal.any([options.signal, findProvidersAbort.signal]) : findProvidersAbort.signal;
|
|
78
127
|
// Event-based watcher for a peer subscribing to our topic on gossipsub.
|
|
79
128
|
// Started immediately so we don't miss subscription-change events that fire during the dial loop.
|
|
80
|
-
// When it resolves, abort findProviders so the loop exits cleanly.
|
|
129
|
+
// When it resolves, abort findProviders so the loop exits cleanly. Dials in flight keep running.
|
|
81
130
|
const subscriberAppearedPromise = waitForTopicSubscriber({
|
|
82
131
|
helia,
|
|
83
132
|
topic: pubsubTopic,
|
|
84
133
|
timeoutMs: TOPIC_SUBSCRIBER_WAIT_TIMEOUT_MS,
|
|
85
|
-
abortSignal:
|
|
134
|
+
abortSignal: findProvidersSignal
|
|
86
135
|
});
|
|
87
136
|
subscriberAppearedPromise.then(() => {
|
|
88
|
-
if (!
|
|
137
|
+
if (!findProvidersAbort.signal.aborted) {
|
|
89
138
|
log.trace("Aborting findProviders iterator - gossipsub subscription-change observed for topic", pubsubTopic);
|
|
90
|
-
|
|
139
|
+
findProvidersAbort.abort();
|
|
91
140
|
}
|
|
92
141
|
}, () => {
|
|
93
142
|
// swallow timeout/abort — handled in the post-loop await below
|
|
94
143
|
});
|
|
95
144
|
const findProvidersStart = Date.now();
|
|
145
|
+
// Dials run in parallel — sequential `await dial()` inside the for-await loop blocks
|
|
146
|
+
// on the slowest dial (up to libp2p's per-dial timeout) even after a subscriber has
|
|
147
|
+
// appeared. The findProviders iterator gets aborted on subscription-change so we stop
|
|
148
|
+
// enqueueing, but already-enqueued dials use options?.signal only and continue running
|
|
149
|
+
// even after this function returns — they populate bitswap's peer set as they finish.
|
|
150
|
+
const inflightDialPromises = [];
|
|
151
|
+
const dialOptions = { ...options };
|
|
96
152
|
try {
|
|
97
|
-
for await (const peer of helia.libp2p.contentRouting.findProviders(contentCid, { ...options, signal:
|
|
153
|
+
for await (const peer of helia.libp2p.contentRouting.findProviders(contentCid, { ...options, signal: findProvidersSignal })) {
|
|
98
154
|
peersWithContent.push(peer);
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
155
|
+
const dialPromise = (async () => {
|
|
156
|
+
try {
|
|
157
|
+
// Make sure dial-by-peerId can resolve addresses: not all content routers (notably
|
|
158
|
+
// delegated-routing-v1-http) auto-merge discovered multiaddrs into the peerstore,
|
|
159
|
+
// and dial(peerId) without addrs fails with "no addresses for peer".
|
|
160
|
+
if (peer.multiaddrs?.length) {
|
|
161
|
+
await helia.libp2p.peerStore.merge(peer.id, { multiaddrs: peer.multiaddrs });
|
|
162
|
+
}
|
|
163
|
+
const conn = await helia.libp2p.dial(peer.id, dialOptions); // no-op if already connected
|
|
164
|
+
connectedPeersWithContent.push(conn);
|
|
165
|
+
if (connectedPeersWithContent.length >= maxPeers && !findProvidersAbort.signal.aborted) {
|
|
166
|
+
log.trace("Aborting findProviders after reaching maxPeers", maxPeers);
|
|
167
|
+
findProvidersAbort.abort();
|
|
168
|
+
}
|
|
105
169
|
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
170
|
+
catch (e) {
|
|
171
|
+
const err = e;
|
|
172
|
+
peerDialToError[peer.id.toString()] = {
|
|
173
|
+
multiaddrs: peer.multiaddrs.map(String),
|
|
174
|
+
errorName: err.name,
|
|
175
|
+
errorMessage: err.message,
|
|
176
|
+
errorStack: err.stack
|
|
177
|
+
};
|
|
178
|
+
log.trace("Failed to dial IPNS-Over-Pubsub peer", peer.id.toString(), "Due to error", e);
|
|
111
179
|
}
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
errorName: err.name,
|
|
118
|
-
errorMessage: err.message,
|
|
119
|
-
errorStack: err.stack
|
|
120
|
-
};
|
|
121
|
-
log.trace("Failed to dial IPNS-Over-Pubsub peer", peer.id.toString(), "Due to error", e);
|
|
180
|
+
})();
|
|
181
|
+
inflightDialPromises.push(dialPromise);
|
|
182
|
+
if (connectedPeersWithContent.length >= maxPeers) {
|
|
183
|
+
log.trace("Breaking findProviders loop after reaching maxPeers", maxPeers);
|
|
184
|
+
break;
|
|
122
185
|
}
|
|
123
186
|
}
|
|
124
187
|
log.trace("findProviders for", pubsubTopic, "took", Date.now() - findProvidersStart, "ms");
|
|
125
188
|
}
|
|
126
189
|
catch (e) {
|
|
127
190
|
// findProviders may throw the abort error we caused ourselves — that's fine, fall through.
|
|
128
|
-
if (!
|
|
191
|
+
if (!findProvidersAbort.signal.aborted) {
|
|
129
192
|
e.details = {
|
|
130
193
|
...e.details,
|
|
131
194
|
contentCid,
|
|
@@ -139,28 +202,65 @@ export async function connectToPubsubPeers({ helia, pubsubTopic, maxPeers, optio
|
|
|
139
202
|
throw e;
|
|
140
203
|
}
|
|
141
204
|
}
|
|
142
|
-
|
|
143
|
-
|
|
205
|
+
// Wait for the gossipsub subscription-change event — this is the signal that bitswap can
|
|
206
|
+
// see at least one peer subscribed to the topic, so the subsequent IPNS resolve won't walk
|
|
207
|
+
// an empty subscriber list. We do NOT await `Promise.allSettled(inflightDialPromises)` —
|
|
208
|
+
// those dials continue running in the background and add peers to bitswap's peer set via
|
|
209
|
+
// `peer:connected` as they complete. They are still aborted by `options.signal` on
|
|
210
|
+
// helia.stop(), so they don't leak across iterations.
|
|
211
|
+
let graftError = null;
|
|
212
|
+
try {
|
|
213
|
+
await subscriberAppearedPromise;
|
|
214
|
+
}
|
|
215
|
+
catch (graftErr) {
|
|
216
|
+
graftError = graftErr;
|
|
217
|
+
log.trace("gossipsub subscription-change did not arrive within timeout after warmup; resolver may still fall back", graftErr);
|
|
218
|
+
// If subscription-change never fired, wait for at least one dial to finish so we have
|
|
219
|
+
// SOMETHING in connectedPeersWithContent before the graft-error fatal check below.
|
|
220
|
+
if (inflightDialPromises.length) {
|
|
221
|
+
await Promise.race(inflightDialPromises).catch(() => { });
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
log.trace("Connected to", connectedPeersWithContent.length, "peers (snapshot at subscription-change)", "for content", contentCid);
|
|
225
|
+
// Wait for gossipsub to GRAFT a peer into our local mesh for this topic. subscription-change
|
|
226
|
+
// tells us a remote peer is subscribed, but gossipsub forwards via the mesh, and mesh edges
|
|
227
|
+
// form on heartbeat (default 1s). Without this wait, a publish from the remote node within
|
|
228
|
+
// ~one heartbeat of warmup-return is dropped because the remote hasn't yet processed our
|
|
229
|
+
// SUBSCRIBE or grafted us. Skip when we aren't locally subscribed (publish-only callers use
|
|
230
|
+
// fanout, not mesh, so mesh would never become non-empty).
|
|
231
|
+
const pubsub = helia.libp2p.services.pubsub;
|
|
232
|
+
if (!graftError && pubsub.getTopics().includes(pubsubTopic)) {
|
|
233
|
+
const meshWaitStart = Date.now();
|
|
234
|
+
await waitForMeshPeer({ helia, topic: pubsubTopic, timeoutMs: MESH_PEER_WAIT_TIMEOUT_MS, abortSignal: options?.signal });
|
|
235
|
+
const meshPeerCount = pubsub.getMeshPeers(pubsubTopic).length;
|
|
236
|
+
const waitMs = Date.now() - meshWaitStart;
|
|
237
|
+
if (meshPeerCount === 0)
|
|
238
|
+
log.trace("Timed out waiting for mesh peers for topic", pubsubTopic, "after", waitMs, "ms");
|
|
239
|
+
else
|
|
240
|
+
log.trace("Mesh peers count after wait", meshPeerCount, "for topic", pubsubTopic, "took", waitMs, "ms");
|
|
241
|
+
}
|
|
242
|
+
// If the caller's abort signal fired and that's why graftError was set, propagate the
|
|
243
|
+
// abort rather than reporting success. We may have happened to connect to some peers
|
|
244
|
+
// via findProviders before the abort hit, but the caller asked us to stop — best-effort
|
|
245
|
+
// semantics apply to timeouts, not to explicit aborts.
|
|
246
|
+
if (graftError && options?.signal?.aborted) {
|
|
247
|
+
throw graftError;
|
|
248
|
+
}
|
|
249
|
+
// Only treat zero successful dials as fatal when we also failed to observe a subscriber.
|
|
250
|
+
// If a subscriber appeared (e.g. a peer we couldn't dial directly is still in our gossipsub
|
|
251
|
+
// mesh via another path), the warmup achieved its goal even with zero dial successes.
|
|
252
|
+
if (connectedPeersWithContent.length === 0 && graftError) {
|
|
144
253
|
const error = new PKCError("ERR_FAILED_TO_DIAL_ANY_PEERS_PROVIDING_CID", {
|
|
145
254
|
contentCid,
|
|
146
255
|
peerDialToError,
|
|
147
256
|
peersWithContent,
|
|
148
257
|
options,
|
|
258
|
+
graftError,
|
|
149
259
|
...getHeliaDebugContext(helia)
|
|
150
260
|
});
|
|
151
261
|
log.error(error);
|
|
152
262
|
throw error;
|
|
153
263
|
}
|
|
154
|
-
// Post-loop graft wait: if findProviders exhausted or maxPeers was reached before
|
|
155
|
-
// any subscription-change event arrived, wait now so the immediately-following IPNS
|
|
156
|
-
// resolve doesn't walk an empty subscriber list and throw RecordNotFoundError.
|
|
157
|
-
try {
|
|
158
|
-
await subscriberAppearedPromise;
|
|
159
|
-
}
|
|
160
|
-
catch (graftErr) {
|
|
161
|
-
log.trace("gossipsub subscription-change did not arrive within timeout after warmup; resolver may still fall back", graftErr);
|
|
162
|
-
// best-effort — don't surface as a warmup failure, let the resolver attempt anyway.
|
|
163
|
-
}
|
|
164
264
|
return connectedPeersWithContent;
|
|
165
265
|
}
|
|
166
266
|
//# sourceMappingURL=util.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/helia/util.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEpD,MAAM,gCAAgC,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/helia/util.ts"],"names":[],"mappings":"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"}
|
|
@@ -537,8 +537,32 @@ export class LocalCommunity extends RpcLocalCommunity {
|
|
|
537
537
|
const latestComment = this._dbHandler.queryLatestCommentCid();
|
|
538
538
|
this._dbHandler.commitTransaction();
|
|
539
539
|
const stats = this._dbHandler.queryCommunityStats();
|
|
540
|
-
if (commentUpdateRowsToPublishToIpfs.length > 0)
|
|
541
|
-
|
|
540
|
+
if (commentUpdateRowsToPublishToIpfs.length > 0) {
|
|
541
|
+
try {
|
|
542
|
+
await this._syncPostUpdatesWithIpfs(commentUpdateRowsToPublishToIpfs);
|
|
543
|
+
}
|
|
544
|
+
catch (e) {
|
|
545
|
+
const err = e;
|
|
546
|
+
const isMfsTimeout = err.message.includes("Timed out writing to MFS path") || err.message.includes("Timed out removing MFS paths");
|
|
547
|
+
if (isMfsTimeout) {
|
|
548
|
+
// Workaround for ipfs/kubo#10842: deeply nested MFS paths hang, but rm of the community root is fast.
|
|
549
|
+
log.error(`MFS sync stuck for community ${this.address} - auto-nuking /${this.address} and forcing a full republish. See https://github.com/ipfs/kubo/issues/10842 for upstream context.`);
|
|
550
|
+
const kuboRpc = this._clientsManager.getDefaultKuboRpcClient();
|
|
551
|
+
try {
|
|
552
|
+
await kuboRpc._client.files.rm("/" + this.address, {
|
|
553
|
+
recursive: true,
|
|
554
|
+
//@ts-expect-error force is not in FilesRmOptions
|
|
555
|
+
force: true
|
|
556
|
+
});
|
|
557
|
+
}
|
|
558
|
+
catch (rmErr) {
|
|
559
|
+
log.error(`Auto-nuke files.rm of /${this.address} failed:`, rmErr);
|
|
560
|
+
}
|
|
561
|
+
this._dbHandler.forceUpdateOnAllComments();
|
|
562
|
+
}
|
|
563
|
+
throw e;
|
|
564
|
+
}
|
|
565
|
+
}
|
|
542
566
|
const newPostUpdates = await this._calculateNewPostUpdates();
|
|
543
567
|
const newModQueue = await this._pageGenerator.generateModQueuePages();
|
|
544
568
|
const kuboRpcClient = this._clientsManager.getDefaultKuboRpcClient();
|