5.21.0以降から? 新規に構築した環境では
ユーザが2つ以上のファイルをアップロードできません
2つ以上のファイルをアップロードできる
2つ以上のファイルをアップロードしようとしたタイミングで
DBでE11000 duplicate key error collection: misskey.driveFiles.files index: metadata.uri_1_metadata.userId_1が出て失敗する
db.driveFiles.files コレクションを空にするv5.22.0 and (MongoDB 3.6.3 / 4.0.0 / 4.0.1) で再現
おそらく以下のインデックスが影響
https://github.com/syuilo/misskey/blob/3a77d871d59fabfbb4f06da832b29454776e0850/src/models/drive-file.ts#L13
なお、既に稼働中で問題となる重複キーが既に存在する環境の場合は
インデックス自体がエラーで作成されず、この問題は起きないみたいです。
新規環境の場合のみ、問題となるインデックスが作成され
アップロード時にエラーが起きるみたいです。
報告ありがとうございます!すぐに修正します。
はやっ
おそらく、ここ2日くらいのmasterで新規構築して事象が起きてしまったら
アップデートに加えて、問題のインデックスを削除する必要があります。
mongo
# Misskey DBへ
use misskey
db.auth("user","pass")
# 確認
db.driveFiles.files.getIndexes()
# 該当インデックス削除
db.driveFiles.files.dropIndex({"metadata.uri" : 1, "metadata.userId" : 1})
# 再確認
db.driveFiles.files.getIndexes()
次のアップデートに当該インデックス自動削除の処理を入れた方が良さそうですかね
インデックス変更したときには、旧インデックス消す処理入れたほうがいいのかもしれません