Skip to content
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

[2023.10.x~]ノート取得時にノート数がlimitよりも少ない事がある #12160

Closed
uboar opened this issue Oct 27, 2023 · 2 comments · Fixed by #12507
Closed

[2023.10.x~]ノート取得時にノート数がlimitよりも少ない事がある #12160

uboar opened this issue Oct 27, 2023 · 2 comments · Fixed by #12507
Labels
⚠️bug? This might be a bug

Comments

@uboar
Copy link
Contributor

uboar commented Oct 27, 2023

💡 Summary

TLをRedisに保持するバージョンにて、notes/timelineなどノート取得系のAPIをコールした際、充分なノート数があるにも関わらずレスポンスでlimitで指定した件数より少ない数のノートが返ってくる事があります。(推測ですが、Redisへの割当メモリが少ない場合に顕著です。)

🥰 Expected Behavior

ノート取得系のAPIをコールした際、(充分なノート数がある場合)limit数のノートがレスポンスとして返される。

🤬 Actual Behavior

ノート取得系のAPIをコールした際、limit数に満たないノートがレスポンスとして返される場合がある。

  • サードパーティクライアント等で、「limitより少ないノートが返ってきた場合、TLの終わりと判断しそれ以上更新しない」というロジックが組まれている場合、TLの途中にも関わらずそれ以上の更新が行えなくなってしまいます。
  • こちらで再現出来ていないのですが、極稀にlengthが0で返ってくる場合があるようです。(Redisへの割当メモリが少ない場合?)

📝 Steps to Reproduce

  1. APIコンソール等からnotes/timelineをコール、この際limit: 10を指定する。
  2. 最後のノートIDをuntilIdに指定し、再度APIをコール。
  3. 2を繰り返し、返却された配列の長さを調べると長さが10に満たない場合がある。

📌 Environment (環境A)

💻 Frontend

  • Model and OS of the device(s): Windows11 / Android 14(Pixel 6a)
  • Browser: Vivaldi 6.4.3160.34 / MissRirica
  • Server URL: nicomedkey.cc
  • Misskey: 2023.10.2-nmk1.1.3(フロントエンド改修のみのFork)

🛰 Backend (for server admin)

  • Installation Method or Hosting Service:
  • Misskey: 2023.10.2-nmk1.1.3(フロントエンド改修のみのFork)
  • Node: 20.5.1-bullseye(Docker)
  • PostgreSQL: 15(Vultr Managed Database)
  • Redis: 7-alpine(Docker)
  • OS and Architecture: Ubuntu 22.04.3 LTS

📌 Environment (環境B)

💻 Frontend

  • Model and OS of the device(s): Windows11 / Android 14(Pixel 6a)
  • Browser: Vivaldi 6.4.3160.34 / MissRirica
  • Server URL: misskey.systems
  • Misskey: 2023.11.0-beta.3
@uboar uboar added the ⚠️bug? This might be a bug label Oct 27, 2023
@kakkokari-gtyih
Copy link
Contributor

(フォールバックが効いていない…?)

@tai-cha
Copy link
Contributor

tai-cha commented Nov 3, 2023

「limitより少ないノートが返ってきた場合、TLの終わりと判断しそれ以上更新しない」というロジックが組まれている場合

これ、おそらくDBのフォールバックがきちんと効いている場合でも今の実装だと起こる可能性がある…?(たしかRedisにキャッシュされているものが0になったときにDBにフォールバックしますよね?)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
⚠️bug? This might be a bug
Projects
None yet
3 participants