-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
fix(backend): WebSocketからの更新時にロックダウン設定が一切適用されない問題を修正 #16932
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
fix(backend): WebSocketからの更新時にロックダウン設定が一切適用されない問題を修正 #16932
Conversation
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## develop #16932 +/- ##
===========================================
+ Coverage 62.83% 62.84% +0.01%
===========================================
Files 1150 1151 +1
Lines 115228 115448 +220
Branches 7892 7896 +4
===========================================
+ Hits 72400 72554 +154
- Misses 40668 40734 +66
Partials 2160 2160 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
このPRによるapi.jsonの差分 |
|
に加えて、
においても内容が隠れないので、影響範囲はそこそこ大きい(割と遭遇しやすい)と考えられる |
ロックダウン対象のノートをリノートは普通できなさそうな気がする |
|
少なくとも本人ならできそう |
↑ のケース(ロックダウン対象になっているノートやその引用を本人がリノート/引用)は本人が意識せず行う可能性がありそうなのでしばしば発生しうる問題だと考えられる(このようなケースもAPI側ではハンドリングできているので、WSで来たのは隠れておらず、リロードしてAPIから取れれば隠れるという具合に挙動の不一致が露骨に出る) じゃあロックダウン対象のものは一律でリノートや引用ができないようにすればいいのではないか?と思われるかもしれないが、そうするとフロントエンド/バックエンド双方でさらに条件が複雑怪奇になりメンテナンスコストや条件漏れのリスクが増大する(=バグや意図しない挙動の温床になる)のでやるべきではない shouldHideNoteが呼び出されることが多くなるのはそうなので、それに関してはフォロー関係をいちいちDBに取りに行くのではなくRedis Cacheを使用するようにすることで負荷軽減をねらっている(実際これを先行適用したサーバーではDBを含め負荷に有意な差はみられていないという報告を得ている) |
Backend Memory Usage Comparison
|
|
コンフリクト解消 |
What
WebSocketからの更新時にノートの内容を隠す設定が機能していない問題を修正
NoteEntityService.hideNoteをshouldHideNoteとhideNoteに分割NoteEntityService.shouldHideNoteが呼ばれることが増えるため、Redisキャッシュを読むように(TODOの解消)Why
ロックダウン設定が貫通する問題を修正するため
Additional info (optional)
基本的にロックダウンの時限設定を「n秒後」のような極端な数値にしたり未来の時刻にしたり( #15198 )といったケースはごくまれなので今までキャッチされてなかった説
Checklist