summaryrefslogtreecommitdiff
path: root/packages/backend/src/core/NoteEditService.ts
diff options
context:
space:
mode:
authorMarie <github@yuugi.dev>2025-05-08 09:17:07 +0000
committerMarie <github@yuugi.dev>2025-05-08 09:17:07 +0000
commita72610c8d6b9dba03a0270f6c9aa86c76cbb8bd9 (patch)
treeee30fb9fbe48e0b4711e3cd51f4484e9aac0ce66 /packages/backend/src/core/NoteEditService.ts
parentmerge: Respect "enable favicon notification dot" setting (resolves #1048) (!988) (diff)
parentreorder relay activities to avoid delivery race condition (diff)
downloadsharkey-a72610c8d6b9dba03a0270f6c9aa86c76cbb8bd9.tar.gz
sharkey-a72610c8d6b9dba03a0270f6c9aa86c76cbb8bd9.tar.bz2
sharkey-a72610c8d6b9dba03a0270f6c9aa86c76cbb8bd9.zip
merge: Reorder relay activities to avoid delivery race condition (resolves #989) (!986)
View MR for information: https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/986 Closes #989 Approved-by: dakkar <dakkar@thenautilus.net> Approved-by: Marie <github@yuugi.dev>
Diffstat (limited to 'packages/backend/src/core/NoteEditService.ts')
-rw-r--r--packages/backend/src/core/NoteEditService.ts12
1 files changed, 6 insertions, 6 deletions
diff --git a/packages/backend/src/core/NoteEditService.ts b/packages/backend/src/core/NoteEditService.ts
index e70ecf396d..332560154d 100644
--- a/packages/backend/src/core/NoteEditService.ts
+++ b/packages/backend/src/core/NoteEditService.ts
@@ -46,7 +46,7 @@ import { UtilityService } from '@/core/UtilityService.js';
import { UserBlockingService } from '@/core/UserBlockingService.js';
import { CacheService } from '@/core/CacheService.js';
import { isReply } from '@/misc/is-reply.js';
-import { trackPromise } from '@/misc/promise-tracker.js';
+import { trackTask } from '@/misc/promise-tracker.js';
import { isUserRelated } from '@/misc/is-user-related.js';
import { IdentifiableError } from '@/misc/identifiable-error.js';
import { LatestNoteService } from '@/core/LatestNoteService.js';
@@ -669,7 +669,7 @@ export class NoteEditService implements OnApplicationShutdown {
//#region AP deliver
if (!data.localOnly && this.userEntityService.isLocalUser(user)) {
- (async () => {
+ trackTask(async () => {
const noteActivity = await this.renderNoteOrRenoteActivity(data, note, user);
const dm = this.apDeliverManagerService.createDeliverManager(user, noteActivity);
@@ -713,12 +713,12 @@ export class NoteEditService implements OnApplicationShutdown {
}
}
+ await dm.execute();
+
if (['public'].includes(note.visibility)) {
- this.relayService.deliverToRelays(user, noteActivity);
+ await this.relayService.deliverToRelays(user, noteActivity);
}
-
- trackPromise(dm.execute());
- })();
+ });
}
//#endregion
}