Ordered window starts two full-source reads after a signalling refetch with no unexpressible page end
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 1-2 dias
- Facilidade para iniciantes
- 44/100
- Tipo de issue
- Bug
- Clareza
- Razoavelmente clara
- Status de atividade
- Ativa
- Stack de tecnologia
- typescript
- Domínio
- database, performance, testing
Direção de pesquisa
Start with packages/db/tests/query/ordered-work-oracle.property.test.ts and replay seed 2146201763 using the command in the issue. Trace how the joined ordered window handles the signalling refetch and counts full-source requests; the cause is not diagnosed. Done means the replay passes with zero new full-source requests after the refetch, while preserving the oracle's row and work bounds.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Summary
After one signalling refetch, a joined ordered window with an unindexed source starts two full-source reads. The ordered-work oracle allows none for this history: no page in it ends on a null or NaN rank, so the documented full-source fallback does not apply.
This is a different counterexample from #2221. That one needs a NaN rank, an anti-joined filter, and a descending window, and it exceeds a bound of one. This one has a single row with rank 0, a joined filter, an ascending window, and exceeds a bound of zero.
The failure is on main. A randomized CI campaign found it while testing an unrelated pull request (#2103, which does not change packages/db).
Law
packages/db/tests/query/ordered-work-oracle.property.test.ts, in the eager indexed ordered windows lane: after a signalling refetch, if no page end became unexpressible, the loader starts no new full-source request.
if (signalsRefetch && unexpressiblePageEnds === unexpressibleBefore) {
expect(
fullSourceRequests,
`full-source requests after a signalling refetch at step ${step}`,
).toBe(fullSourceBefore)
}
Reproduce
On main at 7e46f81ad, from packages/db:
TANSTACK_DB_ORACLE_SEED=2146201763 npx vitest run --coverage.enabled=false \
tests/query/ordered-work-oracle.property.test.ts \
-t "eager indexed ordered windows keeps rows and per-change work bounded for a random or replayed seed"
Result, every run:
AssertionError: full-source requests after a signalling refetch at step 1: expected 2 to be +0
Shrunk counterexample:
{"path":"on-demand","provider":"refetch-signal","latency":"immediate","cancellation":"cooperative","peer":false,"filter":"joined","via":"marker","indexed":false,"direction":"asc","nulls":"first","terms":1,"limit":1,"offset":0,"initial":[],"history":[{"type":"upsert","id":0,"rank":0,"eligible":false}]}
The cause is not diagnosed. The seed was first seen in CI job Test (db-1) for #2103 at cb9db1da1, which reproduced the same counterexample.
- Linguagem predominante
- TypeScript
- Estrelas
- 4k
- Forks
- 277
- Merge médio
- 1d 9h
- PRs com merge (30d)
- 162
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de TanStack/db
-
Dificuldade 1/5 1-3 horas Facilidade para iniciantes 88/100
Mantenedores costumam responder em até 1 dia
-
OfflineExecutor.dispose() never settles pendingTransactionPromisesTalvez livre de novo @Claire-ovo assumiu há 10 dias e não há nenhum pull request aberto. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
TanStack/db#2254 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
Mantenedores costumam responder em até 1 dia
-
Two @tanstack/db tests time out under CPU load because a cold module import counts against the 5 s default timeoutTalvez já em andamento @jp-knj assumiu há 8 dias. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 48/100
Mantenedores costumam responder em até 1 dia
Todas as issues de TanStack/db
Issues semelhantes
-
unwrapDatabaseError masks real DB errors with TypeError: Cannot convert object to primitive valueAberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 74/100
NEARBuilders/everything-dev#798 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
vercel-labs/durable-harness#53 ·
Mantenedores costumam responder em até 1 dia
-
[Bug]: Redesign tab bars ignore clicks on Linux: hidden chat layers keep window drag regionsTalvez já em andamento Um pull request vinculado a esta issue está aberto ou já foi mesclado. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
Mantenedores costumam responder em até 1 dia
-
experiência: a doc manda subir para o Micro do Supabase, mas não diz que exige plano pago nem quanto custaTalvez já em andamento Um pull request vinculado a esta issue está aberto ou já foi mesclado. Abertaarea/docs area/ui enhancement
Dificuldade 1/5 1-3 horas Facilidade para iniciantes 88/100
melgarafael/DeskcommCRM#4098 ·
Mantenedores costumam responder em até 1 dia
-
dependencies platform: ios
Dificuldade 1/5 1-3 horas Facilidade para iniciantes 78/100
software-mansion/react-native-executorch#1617 ·
Mantenedores costumam responder em até 1 dia