github / github/copilot-cli

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

Đang mở
#4,664 8 bình luận 2 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

area:context-memory area:sessions
Ngôn ngữ chính
Shell
Star
11.2k
Fork
1.9k
Merge trung bình
14 giờ 16 phút
Pull request đã merge (30 ngày)
6

Mô tả

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.

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Hướng nghiên cứu

Bắt đầu bằng cách tái hiện lỗi thông qua chức năng tiếp tục phiên của Copilot CLI với một phiên lớn đã tồn tại lâu, sau đó theo dõi cách phiên đã lưu được tải và khôi phục. Issue không nêu tên tệp hoặc bài kiểm thử nào, vì vậy trước tiên hãy xác định entry point để tải phiên. Hoàn tất có nghĩa là các phiên lớn không còn làm cạn kiệt heap của Node.js và các phiên quá lớn sẽ thất bại một cách phù hợp hoặc vẫn có thể khôi phục.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
node.js
Lĩnh vực
cli, performance
Loại issue
Lỗi
Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức độ hoạt động
Sôi nổi
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
48/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.