https://github.com/lovell/sharp/blob/e0fa15f5cb8896e39c25d51d3370380892bacb50/src/stats.h#L59
によるとisOpaqueの既定値はtrueになってるので、
https://github.com/syuilo/misskey/blob/9703ba53405b2f355c6e0317f714d82ff3d4dee3/src/misc/get-file-info.ts#L190-L193
でstats()に失敗すると(なぜ失敗する場合もあるらしいです)
https://github.com/syuilo/misskey/blob/9703ba53405b2f355c6e0317f714d82ff3d4dee3/src/misc/get-file-info.ts#L192
をそのまま通して次のラインのchannels[0].meanまで踏んで以下のようにコケてしまいます。
Feb 17 19:20:13 tsuki.network misskey[32075]: INFO 1 [drive register] {"size":16882,"md5":"b998c97b9c8c78282c0c814fe25ed9c6","type":{"mime":"image/jpeg","ext":"jpg"},"width":400,"height":400,"warnings":["calcAvgColor failed: TypeError: Cannot read property 'mean' of undefined"]}
その後無限にリトライされているように見えますので、stats()が失敗してもとりあえず動くようにしたほうが良いかと。
await stats()後errに文字列が入っていないかどうか確認
or callbackにしてerrの場合関数の戻し値が既定値になるようにハンドルする
エラーになってそのままリトライされる、リトライしてもコケるので無限にリトライされているようにみえる
sharp.stats()がエラーを吐くイメージを受信calcAvgColor failed: TypeError: Cannot read property 'mean' of undefinedを確認Misskey 12.12.0
対策としては
info.errをチェックとかありますね
calcAvgColor のエラーはちゃんと無視してる
https://github.com/syuilo/misskey/blob/9703ba53405b2f355c6e0317f714d82ff3d4dee3/src/misc/get-file-info.ts#L73-L78
calcAvgColor failed: TypeError: Cannot read property 'mean' of undefined 出てるところはinfoでwarningを出しているだけなのでエラーになってるわけじゃない
https://github.com/syuilo/misskey/blob/9703ba53405b2f355c6e0317f714d82ff3d4dee3/src/services/drive/add-file.ts#L272
またcalcAvgColorはundefinedでもOKな仕様のはず
コケているとすればその後の処理かも
その後のsharp使ってるところはcatchしているのでコケてリトライしそうなところが見当たらない
ちょっと寝坊しながら見ていて実際のエラーログを見落としていたみたいですね😱
現状のキュー詰みについてはちょっと詳しく見てから改めてopenしようと思います。
お騒がせてしまってごめんなさい、ありがとうございます。