Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

query-db: a Query refetch that joins a loader's refetch acquisition does not report shifted pages

Offen
#2,185 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Anfängerfreundlichkeit
8/100
Issue-Typ
Bug
Klarheit
Muss geklärt werden
Aktivitätsstatus
Aktiv
Tech-Stack
typescript

Rechercherichtung

The gate is in packages/query-db-collection/src/query.ts in recordOrderedPageResult, where acquisitionRefetches suppresses results for a hash. Read how the guard counts overlapping acquisitions and how a joined Query fetch differs from the acquisition's own result. The issue asks for a named replay in the query-db refetch oracle with two live queries; done means that replay fails before a fix and passes after it. Expect the fix to be a design change, not a one-line edit.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

Summary

Query DB does not report invalidateLoadedSubsets() for a Query refetch that joins a running refetch: true loader acquisition on the same Query hash. If that refetch shifts the page, other ordered live queries that rely on the page can keep a #2136-style gap.

Where

packages/query-db-collection/src/query.ts, recordOrderedPageResult. The gate skips a result while acquisitionRefetches holds its hash. This loop guard stops a repair's own result from starting another repair. Since #2154 (commit 0216c6026), the guard counts overlapping acquisitions, but it still cannot tell a joined user refetch from the acquisition's own result.

Shape of a trace (not yet reproduced)

  1. Loader A starts a bounded repair. Its refetch: true prefix acquisition on Query hash H is in flight.
  2. utils.refetch() or invalidateQueries runs. Query joins the in-flight fetch for H, after the backend changed.
  3. The result for H has different keys and a later page follows it. Without the guard it would report.
  4. The guard suppresses the report. Loader A repairs its own window from the result, but loader B, whose window also used H's page, gets no report.

Status

No history in the query-db refetch oracle reaches this. The oracle's limits section and the coverage map record it.

Suggested witness

A named replay in the query-db refetch oracle with two live queries over the same pages. Hold one loader's repair acquisition, change the backend, run a Query refetch, then release. The coverage law should fail for the second live query if the defect is real. A possible fix: record the fetch that the acquisition started, not the hash, and report other fetches' results.

This issue was written by Isaac.

Vorherrschende Sprache
TypeScript
Sterne
3.9k
Forks
277
Ø Merge
20 Std. 31 Min.
Gemergte PRs (30 T.)
228

Entwicklungsumgebung

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus TanStack/db

Alle Issues in TanStack/db

Ähnliche Issues

Weitere Issues zu TypeScript

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.