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

アンテナなど、Redisを使ってTLを構築している個所で、途中から遡れなくなることがある #11994

Closed
syuilo opened this issue Oct 9, 2023 · 3 comments
Labels
🐛Bug Unexpected behavior packages/backend Server side specific issue/PR

Comments

@syuilo
Copy link
Member

syuilo commented Oct 9, 2023

可能性としては

  1. リモートユーザーの古い投稿が飛んでくる
  2. RedisにpushされるときはXADDを使うため、Redis上のTLの先頭に追加される(=IDは最新になる)
  3. クライアントでTLを取得した際は古い投稿は古い位置に含まれる
  4. クライアントでページネーションを行う際、末尾の要素のIDを untilId として指定する
  5. その際、偶然その古い投稿が untilId に指定される
  6. サーバーは untilId より古いRedisのエントリを取得する
  7. RedisのエントリIDは投稿が作成された日時ではなくRedisへの追加日時に基づくため、「作成された日時が古い投稿」のIDより古いIDをもつRedisエントリは存在しない
  8. 空が返る

が考えられる

RedisにXADDする際はIDを手動で指定できるけど、それをしても先頭にしか新しいエントリを追加できないというのは変わらない(先頭にあるIDより古いIDを持つエントリを追加できない)
だからリモートから古い投稿が飛んでくるシチュエーションに対応できない

@tamaina
Copy link
Contributor

tamaina commented Oct 9, 2023

#11404 関係ある?

@syuilo
Copy link
Member Author

syuilo commented Oct 9, 2023

ありあり

@syuilo
Copy link
Member Author

syuilo commented Oct 9, 2023

duplicate of #11404

@syuilo syuilo closed this as not planned Won't fix, can't repro, duplicate, stale Oct 9, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🐛Bug Unexpected behavior packages/backend Server side specific issue/PR
Projects
None yet
Development

No branches or pull requests

2 participants