A second live query over a refetched on-demand source keeps a short joined window
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 12/100
- issue の種類
- バグ
- 明瞭さ
- おおむね明確
- 活発さ
- 活発
- 技術スタック
- typescript
- 領域
- data
調査の方向性
The payload names no source files, so start from the ordered-work oracle in #2132 and replay seed 3103989100, which is pinned as an it.fails case. Find where the second live-query Collection's ordered loader decides whether to request more rows after a refetch. The fix is done when that replay passes, the it.fails marker is removed, and the refetching-provider plus second-Collection combination can return to the random grammar.
索引モデルが issue の本文から書いたものです。
説明
Problem
Two live-query Collections can read the same on-demand source. After a refetch, the second Collection can show a short ordered window. It stays short until a different change starts a load.
The ordered-work oracle in #2132 found this with a generated history. The failure also occurs with the production code on main, so #2132 does not cause it.
Minimal trace
- On-demand source with a refetching provider. The provider sends no change until a refetch, and each refetch keeps every served ordered range whole.
- Query: rows
LEFT JOINmarkers on the row's join key (link),WHEREthe marker exists,ORDER BY rank ASCwith an index onrank. - Collection A has
limit 2. Collection B (the second live-query Collection) haslimit 3. - Rows 9, 0 and 1 have rank 0 and a marker. Row 2 has rank 1 and no marker. 200 filler rows have rank 100 and up, with markers.
Steps:
- The backend inserts row 10, with rank 1 and no marker. The provider does not send it yet.
- Row 0 changes its join key, so it no longer matches a marker. The provider does not send this yet.
- The provider refetches.
Expected window of Collection B: ranks [0, 0, 100] (rows 9, 1 and the first filler row). Actual window: [0, 0]. Collection A shows the expected window.
Ingredients
The failure needs all of these:
- A refetching provider. A forwarding provider passes.
- A second live-query Collection on the same source. One Collection with
limit 3passes. - A join on the row's join key. The same history with marker changes passes.
- A tie at the window boundary with a row that the provider never sent. Without the insert of row 10, the history passes.
A source filter instead of a joined filter also passes.
Hypothesis
After the refetch, row 0 leaves both windows in one commit. Collection B must load past the rank-1 tie group, where every row fails the join. Two causes are possible:
- Collection B's ordered loader does not request again, because its last page has the same count and boundary as before.
- The rows that Collection A already loaded answer the request of Collection B.
Then nothing proves the window, and no request follows.
Evidence
- Witness trace: oracle seed 3103989100 of the ordered-work oracle in #2132. #2132 pins it as an
it.failsreplay, and excludes the refetching-provider and second-Collection combination from the random grammar until this fix.
This issue was written by Isaac.
- 主要言語
- TypeScript
- スター
- 3.9k
- フォーク
- 272
- 平均マージ
- 22時間 54分
- マージ済み PR(30日)
- 236
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
TanStack/db のほかの issue
-
難易度 4/5 3〜5日 初心者へのやさしさ 22/100
メンテナーはふだん 1 日以内に返信
-
難易度 5/5 1週間以上 初心者へのやさしさ 12/100
メンテナーはふだん 1 日以内に返信
-
難易度 5/5 1週間以上 初心者へのやさしさ 8/100
メンテナーはふだん 1 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 25/100
メンテナーはふだん 1 日以内に返信
-
難易度 5/5 1週間以上 初心者へのやさしさ 5/100
メンテナーはふだん 1 日以内に返信
似ている issue
-
Endpoint links in the tag operations list are below the 24px target size対応中かも @AdzerKI が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
-
ai-driven-qa bug Minor
難易度 2/5 1〜3時間 初心者へのやさしさ 80/100
linagora/twake-tasks#435 ·
メンテナーはふだん 1 日以内に返信
-
bug domain: database priority: p1 Stellar Wave
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
StellarState/SS-backend#632 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
A2A audit timestamps end in +00:00Z (invalid ISO 8601)対応中かも @O1sumitkumar が今日担当しました。 オープンbug good first issue help wanted python
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
-
`cf complete zsh >> .zshrc` fails on vanilla zsh再び着手できるかも このイシューのプルリクエストはマージされずにクローズされました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
cloudflare/cf#340 ·
メンテナーはふだん 1 日以内に返信