Skip to content

アカウントの削除が終わらない 12.108.0~ #9975

@x86taka

Description

@x86taka

Summary

#8150 の変更(12.108.0 リリース)より、デフォルトで10秒以上時間がかかるデータベースへのクエリは中断されるようになった。

原因

アカウント削除キューのNoteの削除部分では10秒を大幅に超えるqueryが実行されているため、キューが終了してしまう。
これにより、削除ができない。

10秒以上かかる該当箇所

await this.notesRepository.delete(notes.map(note => note.id));

解決策

以下のように 100件ずつNoteの削除が行われている。

実測で、10件ずつでも投稿内容によっては10秒に治まらない。

具体的に以下の修正が考えられる。

  • 削除を5件ずつなどにしつつ、デフォルトのクエリのタイムアウトを伸ばす
  • 削除クエリのみ、タイムアウトを伸ばす

const notes = await this.notesRepository.find({
where: {
userId: user.id,
...(cursor ? { id: MoreThan(cursor) } : {}),
},
take: 100,
order: {
id: 1,
},
}) as Note[];

Discussed in #9969

Originally posted by fu-sen February 17, 2023
公式とは別の Discord でアカウントの削除ができない、という報告をいくつかいただいています。
しかし、その条件が分からず、 issues ができないので、こちらに一度公開して、情報を募ってみます。
この問題に遭遇しているサーバ管理者様、わかる範囲でコメントいただけると幸いです。
確実な再現ができたら、Issues 化という流れができればと思います。よろしくお願いいたします。

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Status

    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions