Misskey: calcAvgColorが無限に失敗し続ける

Created on 17 Feb 2020  ·  4Comments  ·  Source: syuilo/misskey

💡 Summary

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()が失敗してもとりあえず動くようにしたほうが良いかと。

🙂 Expected Behavior

await stats()errに文字列が入っていないかどうか確認
or callbackにしてerrの場合関数の戻し値が既定値になるようにハンドルする

☹️ Actual Behavior

エラーになってそのままリトライされる、リトライしてもコケるので無限にリトライされているようにみえる

📝 Steps to Reproduce

  1. sharp.stats()がエラーを吐くイメージを受信
  2. ログからcalcAvgColor failed: TypeError: Cannot read property 'mean' of undefinedを確認
  3. リトライされてもまた失敗するのを確認

📌 Environment

Misskey 12.12.0

⚠️bug?

All 4 comments

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しようと思います。
お騒がせてしまってごめんなさい、ありがとうございます。

Was this page helpful?
0 / 5 - 0 ratings

Related issues

AyaMorisawa picture AyaMorisawa  ·  3Comments

2vg picture 2vg  ·  3Comments

tamaina picture tamaina  ·  3Comments

ne-moni picture ne-moni  ·  3Comments

tamaina picture tamaina  ·  3Comments