diff options
| author | Marie <github@yuugi.dev> | 2025-05-08 09:17:07 +0000 |
|---|---|---|
| committer | Marie <github@yuugi.dev> | 2025-05-08 09:17:07 +0000 |
| commit | a72610c8d6b9dba03a0270f6c9aa86c76cbb8bd9 (patch) | |
| tree | ee30fb9fbe48e0b4711e3cd51f4484e9aac0ce66 /packages/backend/src/core/NoteEditService.ts | |
| parent | merge: Respect "enable favicon notification dot" setting (resolves #1048) (!988) (diff) | |
| parent | reorder relay activities to avoid delivery race condition (diff) | |
| download | sharkey-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.ts | 12 |
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 } |