Close the remaining #2136-class gaps in the ordered refetch oracles
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
- 5/100
- Issue-Typ
- Feature
- Klarheit
- Muss geklärt werden
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- typescript
- Bereich
- testing
Rechercherichtung
Start with the coverage map row "Query DB ordered refetch" in docs/contributing/oracle-coverage.md and the existing oracle in packages/query-db-collection/tests/refetch-ordered-prefix-oracle.test.ts. Read the loader rules in packages/db/src/query/live/ARCHITECTURE.md, section "Ordered requests, continuation, and recovery". Run the oracle test to understand the current laws, then pick one unchecked item such as held answers combined with a reporting refetch. Done means a generated campaign reproduces the gap before the fix and passes after it.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Summary
Follow-up oracle work for the #2136 bug class: a loader that treats rows as loaded after the provider's state has moved. #2154 closed the reported trace and strengthened the query-db refetch oracle. This issue records the histories, paths and observations that are still outside the oracles, so a later agent can close more of the class.
What #2154 established
packages/query-db-collection/tests/refetch-ordered-prefix-oracle.test.ts:
- Window law and coverage law, after preload and after each refetch, invalidation and hold release.
- Generated campaigns: marker flips, lagging backend changes, a peer
observequery, invalidation, and optimistic update and delete holds across a refetch. - A premise-directed held campaign for the loader's first-page skip.
- At four times the run count, six random seeds pass.
Each new dimension found real bugs: four in the loader, two in the gate. So the finding rate has not yet reached zero, and a green campaign is weak evidence beyond these dimensions.
Remaining work
- Held answers combined with a reporting refetch (ordered-work oracle). Combine the holding provider with the
refetch-signalprovider, and keep the ledger law (the Collection holds exactly the provider's sent rows). This would have found the stale-prefix retirement bug fixed in #2154 as a generated failure. It is a natural part of #2155. - #2155, unindexed peer pairing. Seed
-1471487158fails withpeer rows after step 2: expected [ 100 ] to deeply equal [ 100, 101 ]. - Window check after marker flips in the query-db campaigns. During #2154, both campaigns at 1× passed with a window check after every flip (provider current, no hold). Add that law.
- Order values. The query-db model types ranks as numbers. Add null, undefined and NaN order values. A gate bug with undefined order values was found by review, not by the oracle.
- Providers. The campaigns use an uncapped cursor provider only. They need offset-only (#2182) and page-capped (#2183) providers.
- Refetch kinds. Interval, focus and reconnect refetches share the invalidation path, but no history drives them.
- Windows during a hold. No window is checked while an optimistic transaction persists (#2169, #2148).
- Optimistic inserts are not generated.
- Preload during a hold. The harness defers awaiting a preload that starts during a hold (#2184).
- Multi-tab. Follower tabs never get the report (#2174). That needs a witness in the real-tab coordinator lane.
- A joined user refetch is not reported (#2185).
- Process. When an oracle's limits section hands a case to another owner, the coverage map should name that owner's witness. #2154's review found an overlap case that the named owner did not cover.
Pointers
- Coverage map row: "Query DB ordered refetch" in
docs/contributing/oracle-coverage.md. - Loader rules:
packages/db/src/query/live/ARCHITECTURE.md, "Ordered requests, continuation, and recovery".
This issue was written by Isaac.
- Vorherrschende Sprache
- TypeScript
- Sterne
- 4k
- Forks
- 277
- Ø Merge
- 17 Std. 40 Min.
- Gemergte PRs (30 T.)
- 223
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus TanStack/db
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
Maintainer antworten meist innerhalb von 1 Tag
-
Garbage collection cleans up a collection while one of its transactions is still persistingEvtl. vergeben @Nabil372 hat das vor 1 Tag übernommen. Offen
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 35/100
Maintainer antworten meist innerhalb von 1 Tag
-
persistedCollectionOptions without a schema can't be passed to createCollection (follow-up to #1452)Offen
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 68/100
Maintainer antworten meist innerhalb von 1 Tag
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
grafana/profiles-drilldown#1212 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
grafana/traces-drilldown#980 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
openremote/openremote#3487 · 1 Kommentar ·
-
triage:needs-human
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 67/100
garrytan/gbrain#7635 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
coollabsio/jean#867 ·
Maintainer antworten meist innerhalb von 1 Tag