summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2023-10-09 16:47:46 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2023-10-09 16:47:46 +0900
commit0f367da84b65c4ca2b3bb5af152df261d6de1260 (patch)
tree25d1008b10ec531175b25efafb675b7db6eaffd4
parentlint fixes (diff)
downloadsharkey-0f367da84b65c4ca2b3bb5af152df261d6de1260.tar.gz
sharkey-0f367da84b65c4ca2b3bb5af152df261d6de1260.tar.bz2
sharkey-0f367da84b65c4ca2b3bb5af152df261d6de1260.zip
fix(backend): TLを途中までしかページネーションできなくなることがある問題を修正
Fix #11404
-rw-r--r--CHANGELOG.md1
-rw-r--r--packages/backend/src/core/AntennaService.ts3
-rw-r--r--packages/backend/src/core/NoteCreateService.ts4
3 files changed, 8 insertions, 0 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index e655bef8b7..ba34554ba2 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -52,6 +52,7 @@
- Fix: 連合なしアンケートに投票をするとUpdateがリモートに配信されてしまうのを修正
- Fix: nodeinfoにおいてCORS用のヘッダーが設定されていないのを修正
- Fix: 同じ種類のTLのストリーミングを複数接続できない問題を修正
+- Fix: アンテナTLを途中までしかページネーションできなくなることがある問題を修正
## 2023.9.3
### General
diff --git a/packages/backend/src/core/AntennaService.ts b/packages/backend/src/core/AntennaService.ts
index 95712b35b7..b64120772c 100644
--- a/packages/backend/src/core/AntennaService.ts
+++ b/packages/backend/src/core/AntennaService.ts
@@ -77,6 +77,9 @@ export class AntennaService implements OnApplicationShutdown {
@bindThis
public async addNoteToAntennas(note: MiNote, noteUser: { id: MiUser['id']; username: string; host: string | null; }): Promise<void> {
+ // リモートから遅れて届いた(もしくは後から追加された)投稿日時が古い投稿が追加されるとページネーション時に問題を引き起こすため、3分以内に投稿されたもののみを追加する
+ if (Date.now() - note.createdAt.getTime() > 1000 * 60 * 3) return;
+
const antennas = await this.getAntennas();
const antennasWithMatchResult = await Promise.all(antennas.map(antenna => this.checkHitAntenna(antenna, note, noteUser).then(hit => [antenna, hit] as const)));
const matchedAntennas = antennasWithMatchResult.filter(([, hit]) => hit).map(([antenna]) => antenna);
diff --git a/packages/backend/src/core/NoteCreateService.ts b/packages/backend/src/core/NoteCreateService.ts
index 277875a19f..65beb9f970 100644
--- a/packages/backend/src/core/NoteCreateService.ts
+++ b/packages/backend/src/core/NoteCreateService.ts
@@ -822,6 +822,10 @@ export class NoteCreateService implements OnApplicationShutdown {
@bindThis
private async pushToTl(note: MiNote, user: { id: MiUser['id']; host: MiUser['host']; }) {
+ // リモートから遅れて届いた(もしくは後から追加された)投稿日時が古い投稿が追加されるとページネーション時に問題を引き起こすため、3分以内に投稿されたもののみを追加する
+ // TODO: https://github.com/misskey-dev/misskey/issues/11404#issuecomment-1752480890 をやる
+ if (note.userHost != null && (Date.now() - note.createdAt.getTime()) > 1000 * 60 * 3) return;
+
const meta = await this.metaService.fetch();
const redisPipeline = this.redisForTimelines.pipeline();