reorder relay activities to avoid delivery race condition

This commit is contained in:
Hazelnoot 2025-05-05 17:44:00 -04:00
parent d39a56c1b7
commit c302a5c2d7
11 changed files with 40 additions and 44 deletions

View file

@ -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 {
}
}
if (['public'].includes(note.visibility)) {
this.relayService.deliverToRelays(user, noteActivity);
}
await dm.execute();
trackPromise(dm.execute());
})();
if (['public'].includes(note.visibility)) {
await this.relayService.deliverToRelays(user, noteActivity);
}
});
}
//#endregion
}