DuckDB helper crashes lose their cause and are reported as a "row cap clamp" in sql_materialize

Aberta
#1,494 1 comentário 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
3/5
Tempo estimado
Meio dia
Facilidade para iniciantes
55/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Ativa
Stack de tecnologia
sql, typescript
Domínio
backend, databases

Direção de pesquisa

Start in packages/drivers/src/local-engine.ts: the helper is spawned with stderr ignored near line 416, and the exit handler near line 438 reports only a generic message, so capture stderr and the exit code/signal there. Then check packages/opencode/src/altimate/tools/sql-materialize.ts around lines 321-328, where a failed pre-flight count is reported as a row cap clamp. Done when killing the helper with SIGKILL produces an error naming the signal, and a pre-flight crash in sql_materialize surfaces as a crash rather than a cap clamp.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

Problem

When the DuckDB helper process dies (typically out of memory on a heavy join), the tool reports only "helper process exited unexpectedly"; in sql_materialize the crash occurs during the pre-flight count and is presented as a cap problem.

Mechanism

  • The helper is spawned with stderr: "ignore" (packages/drivers/src/local-engine.ts:416); the exit handler reports only "helper process exited unexpectedly" (:438) without exit code or signal.
  • In sql_materialize the failed count falls into "Pre-flight estimate unavailable (...); extraction row cap clamped to 200,000 rows" (packages/opencode/src/altimate/tools/sql-materialize.ts:321-328).
  • No DuckDB memory_limit or temp_directory is set.

Evidence

7 crashes in 7 sessions, each after 32-150 s (about 460 s total), all from json_each over a 277,813-row scratch table with correlated EXISTS/LIKE. Scratch tables survived (the file database reopened), and each crash restarted the helper.

Impact

About 460 s of wasted time; the model cannot tell OOM from a bad query, and the misleading cap message hides the cause.

Proposed fix

  • Capture helper stderr and exit code/signal; report "DuckDB helper killed (signal / out of memory)".
  • Configure memory_limit and temp_directory sized to the host.
  • Never describe a crash as a cap clamp; propagate the crash error.

Acceptance check

Killing the helper mid-query (SIGKILL) yields an error naming the signal; a pre-flight crash in sql_materialize surfaces as a crash, not a cap clamp.

Linguagem predominante
TypeScript
Estrelas
813
Forks
124
Merge médio
1d 19h
PRs com merge (30d)
68

Preparar o ambiente

Abrir no Codespaces

Inicia o contêiner de desenvolvimento do projeto no navegador, com a sua própria conta do GitHub.

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de AltimateAI/altimate-code

Todas as issues de AltimateAI/altimate-code

Issues semelhantes

Mais issues de TypeScript

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.