github / github/copilot-cli

Copilot CLI crashes with JavaScript heap out of memory when resuming a long-standing session

Aberta
#4,664 8 comentários 2 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

area:context-memory area:sessions
Linguagem predominante
Shell
Estrelas
11.2k
Forks
1.9k
Merge médio
14h 16min
PRs com merge (30d)
6

Descrição

Describe the bug

Copilot CLI crashes with a fatal Node.js/V8 JavaScript heap out of memory error when attempting to resume a long-standing/large session.

The failure occurs while loading/resuming the old session, before I can continue working in the session.

The Node.js process reaches approximately 4.1 GB of heap usage, performs repeated garbage collection / mark-compact cycles, and then aborts:

Scavenge (interleaved) 4062.4 (4097.2) -> 4061.6 (4097.5) MB
Mark-Compact 4062.4 (4098.2) -> 4061.5 (4097.5) MB

FATAL ERROR: Ineffective mark-compacts near heap limit
Allocation failed - JavaScript heap out of memory

Affected version

1.0.81

Steps to reproduce the behavior
  1. Have a long-standing Copilot CLI session with a substantial conversation history and tool usage.
  2. Exit Copilot CLI.
  3. At a later point, attempt to resume that session using the session resume functionality.
  4. Copilot CLI starts loading the old session.
  5. Memory usage grows to approximately 4 GB.
  6. Node.js garbage collection becomes increasingly expensive.
  7. Copilot CLI terminates with a fatal heap OOM.

The problem appears to correlate strongly with the size/age of the session. Newer/smaller sessions do not exhibit the problem.

Actual behavior

Copilot CLI crashes:

[1511802:0x125f9000] 10626721 ms: Scavenge (interleaved) 4062.4 (4097.2) -> 4061.6 (4097.5) MB, pooled: 0 MB, 3.54 / 0.00 ms
[1511802:0x125f9000] 10629420 ms: Mark-Compact 4062.4 (4098.2) -> 4061.5 (4097.5) MB, pooled: 0 MB, 2694.82 / 0.00 ms

FATAL ERROR: Ineffective mark-compacts near heap limit
Allocation failed - JavaScript heap out of memory

Writing Node.js report to file:
report.20260830.021306.1511802.0.001.json

Node.js report completed
Aborted (core dumped)

The session cannot be resumed, effectively making the accumulated context inaccessible through the normal resume mechanism.

Expected behavior

Copilot CLI should be able to resume a previously saved session without exhausting the Node.js heap.

If a session has become too large to load in its entirety, Copilot CLI should ideally:

Detect the excessive session size before attempting to fully load it.
Compact/summarize the session before restoring it, if possible.
Provide a mechanism to resume from a recent checkpoint.
Gracefully report that the session is too large rather than crashing the entire CLI process.
Preserve the ability to recover/use the historical session.

Additional context

Copilot CLI version: 1.0.81
OS: Linux
Model: Claude Opus 5 (High)
Repository: private/local repository
Session: long-standing session with substantial history

The crash occurs at approximately 4 GB of V8 heap usage.

The garbage collector is unable to reclaim meaningful memory:

4062.4 MB -> 4061.6 MB
4062.4 MB -> 4061.5 MB

The second Mark-Compact operation takes approximately 2.7 seconds, after which V8 reports that further compaction is ineffective.

This suggests that a significant amount of session-related data remains strongly referenced while the old session is being restored.

Guia de contribuição

Abrir o guia de contribuição

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.

Direção de pesquisa

Comece reproduzindo a falha por meio da funcionalidade de retomada de sessão do Copilot CLI com uma sessão grande e antiga, depois rastreie como a sessão salva é carregada e restaurada. O issue não nomeia arquivos nem testes, então localize primeiro o ponto de entrada do carregamento da sessão. Considera-se concluído quando sessões grandes não esgotarem mais o heap do Node.js e sessões grandes demais falharem de forma adequada ou permanecerem recuperáveis.

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

Avaliação

Stack de tecnologia
node.js
Domínio
cli, performance
Tipo de issue
Bug
Dificuldade
4/5
Tempo estimado
3-5 dias
Status de atividade
Ativa
Clareza
Razoavelmente clara
Facilidade para iniciantes
48/100

Receba novas issues na sua caixa de entrada

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