microsoft / microsoft/TypeScript
compiler memory leak in 5.8.x and upwards
还没有人认领这个 Issue。
- 主要语言
- Go
- 星标
- 111k
- 派生
- 14.3k
- 平均合并
- 2 天 4 小时
- 30 天内合并 PR
- 132
描述
### 🔎 Search Terms
5.8, mem
### 🕗 Version & Regression Information
- This changed between versions 5.7 and 5.8
### ⏯ Playground Link
_No response_
### 💻 Code
https://github.com/fxdave/cuple/pull/new/typescript-issue-5-8-memory-leak
### 🙁 Actual behavior
```
$ npx tsc
<--- Last few GCs --->
[34857:0x559d92e7c000] 42329 ms: Scavenge (interleaved) 4081.2 (4090.1) -> 4078.8 (4098.6) MB, pooled: 0 MB, 5.79 / 0.00 ms (average mu = 0.281, current mu = 0.252) allocation failure;
[34857:0x559d92e7c000] 43481 ms: Mark-Compact (reduce) 4089.9 (4103.4) -> 4081.8 (4088.4) MB, pooled: 0 MB, 59.32 / 0.00 ms (+ 880.5 ms in 176 steps since start of marking, biggest step 5.5 ms, walltime since start of marking 998 ms) (average mu = 0.2
FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
----- Native stack trace -----
1: 0x559d50eec8b4 node::OOMErrorHandler(char const*, v8::OOMDetails const&) [node]
2: 0x559d5140dd34 v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, v8::OOMDetails const&) [node]
3: 0x559d5140de3b v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, v8::OOMDetails const&) [node]
4: 0x559d5169e0ac [node]
5: 0x559d516a4356 v8::internal::Heap::CheckIneffectiveMarkCompact(unsigned long, double) [node]
6: 0x559d516a4467 v8::internal::Heap::RecomputeLimits(v8::internal::GarbageCollector, v8::base::TimeTicks) [node]
7: 0x559d516b3bc4 [node]
8: 0x559d516b6dd4 [node]
9: 0x559d52146ba7 [node]
fish: Job 1, 'npx tsc' terminated by signal SIGABRT (Abort)
```
### 🙂 Expected behavior
```
$ npx tsc
(List of type errors.)
```
### Additional information about the issue
NOTE:
It's not a node(24.4.1) issue, I tried with a different node version (node:22-bookworm from dockerhub).
The project is tiny.
I tried adding all my free rams to node (12GB) it ate it.
Steps to reproduce:
``` bash
# Download this branch: https://github.com/fxdave/cuple/pull/new/typescript-issue-5-8-memory-leak
git clone -b typescript-issue-5-8-memory-leak https://github.com/fxdave/cuple.git
cd cuple
# Setup:
npm i
make build # Important!
# run npx tsc in the tests folder
cd test
npx tsc
```
(the code contains errors, but that shouldn't matter.)
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
调研方向
使用 cuple 仓库的 typescript-issue-5-8-memory-leak 分支复现:运行 npm i,运行 make build,然后 cd test 并运行 npx tsc。使用提供的项目比较 TypeScript 5.8+ 与 5.7,并确认编译报告类型错误,而不是耗尽堆。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- typescript
- 领域
- compilers
- Issue 类型
- 缺陷
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 活跃度
- 停滞
- 描述清晰度
- 基本清楚
- 新手友好度
- 35/100