OOM typescript, mac m1+.
🔎 Search Terms
I tried to find similar typescript OOM in issue github and on the Internet.
🕗 Version & Regression Information
typescript - 5.2.2 macos - macOS Ventura 13.6 chip - Apple M2
This problem appeared with typescript 5+, updating to the latest version of typescript does not prevent the error. Regressing to version 4 of typescript solves this problem. Also, this problem is reproduced only on macs with m1 processor and higher.
⏯ Playground Link
💻 Code
🙁 Actual behavior
Typescript is flowing with OOM errors.
🙂 Expected behavior
Working properly with memory.
Additional information about the issue
I am running eslint on a specific area where the ts/ts files with the react application are located. As a result, the process kills with a memory error - that is, OOM occurs.
Below I provide two snapshots with memory, both to be made after using garbage collector. To see exactly which typescript objects are leaking, it is enough to compare these reports.
Below I attach a link to google drive with snapshot memory. It was not possible to attach this archive directly to the github issue due to the larger file size. - https://drive.google.com/file/d/1XHJCz79eAwBKiHDS2-vtpcR--7b_xF_Z/view?usp=drive_link
If it used to work and now doesn't, consider trying to bisect the problem using https://www.npmjs.com/package/every-ts.
Hello @jakebailey , found a problematic commit with bisect. Everything crashes after it.
https://github.com/microsoft/TypeScript/commit/ff92ab0ac92b66397bd3b92ff5a3aca3c1ad8f43
ff92ab0ac92b66397bd3b92ff5a3aca3c1ad8f43 is the first bad commit
commit ff92ab0ac92b66397bd3b92ff5a3aca3c1ad8f43
Author: Ryan Cavanaugh <[email protected]>
Date: Fri Jan 20 17:20:26 2023 -0800
Change default newLine, forceConsistentCasingInFileNames (#52298)
Co-authored-by: Jake Bailey <[email protected]>
Co-authored-by: Sheetal Nandi <[email protected]>
My OOM crash log
<--- Last few GCs --->
[20242:0x160008000] 18411 ms: Mark-Compact 2043.9 (2087.5) -> 2042.4 (2087.5) MB, 292.33 / 0.00 ms (average mu = 0.113, current mu = 0.009) allocation failure; scavenge might not succeed
[20242:0x160008000] 18737 ms: Mark-Compact 2044.6 (2087.5) -> 2043.0 (2092.0) MB, 323.21 / 0.00 ms (average mu = 0.061, current mu = 0.007) allocation failure; scavenge might not succeed
<--- JS stacktrace --->
FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
----- Native stack trace -----
1: 0x1023e50e8 node::OOMErrorHandler(char const*, v8::OOMDetails const&) [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
2: 0x10256b120 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, v8::OOMDetails const&) [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
3: 0x10273f668 v8::internal::Heap::GarbageCollectionReasonToString(v8::internal::GarbageCollectionReason) [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
4: 0x10274351c v8::internal::Heap::CollectGarbageShared(v8::internal::LocalHeap*, v8::internal::GarbageCollectionReason) [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
5: 0x10273ff80 v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::internal::GarbageCollectionReason, char const*) [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
6: 0x10273dd08 v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
7: 0x10273d32c v8::internal::Heap::HandleGCRequest() [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
8: 0x1026d5d4c v8::internal::StackGuard::HandleInterrupts() [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
9: 0x102b01a6c v8::internal::Runtime_StackGuardWithGap(int, unsigned long*, v8::internal::Isolate*) [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
10: 0x102e60c44 Builtins_CEntry_Return1_ArgvOnStack_NoBuiltinExit [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
11: 0x108a247d0
12: 0x108a1fe90
13: 0x108a3307c
14: 0x102e78b3c Builtins_ArrayForEach [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
15: 0x108ac895c
16: 0x108bfa060
17: 0x102e78b3c Builtins_ArrayForEach [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
18: 0x102dd83e4 Builtins_InterpreterEntryTrampoline [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
19: 0x102dd83e4 Builtins_InterpreterEntryTrampoline [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
20: 0x102dd83e4 Builtins_InterpreterEntryTrampoline [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
21: 0x102dd83e4 Builtins_InterpreterEntryTrampoline [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
22: 0x102dd83e4 Builtins_InterpreterEntryTrampoline [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
23: 0x102dd83e4 Builtins_InterpreterEntryTrampoline [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
24: 0x102dd83e4 Builtins_InterpreterEntryTrampoline [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
25: 0x102dd83e4 Builtins_InterpreterEntryTrampoline [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
26: 0x102dd83e4 Builtins_InterpreterEntryTrampoline [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
27: 0x102dd83e4 Builtins_InterpreterEntryTrampoline [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
28: 0x102dd83e4 Builtins_InterpreterEntryTrampoline [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
29: 0x102dd83e4 Builtins_InterpreterEntryTrampoline [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
30: 0x102dd83e4 Builtins_InterpreterEntryTrampoline [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
31: 0x102dd83e4 Builtins_InterpreterEntryTrampoline [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
32: 0x102dd83e4 Builtins_InterpreterEntryTrampoline [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
33: 0x102dd83e4 Builtins_InterpreterEntryTrampoline [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
34: 0x102dd83e4 Builtins_InterpreterEntryTrampoline [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
35: 0x102dd83e4 Builtins_InterpreterEntryTrampoline [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
36: 0x102dd83e4 Builtins_InterpreterEntryTrampoline [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
37: 0x102dd83e4 Builtins_InterpreterEntryTrampoline [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
38: 0x102dd83e4 Builtins_InterpreterEntryTrampoline [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
39: 0x102e0f210 Builtins_AsyncFunctionAwaitResolveClosure [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
40: 0x102ebcfb8 Builtins_PromiseFulfillReactionJob [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
41: 0x102dfeb94 Builtins_RunMicrotasks [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
42: 0x102dd63f4 Builtins_JSRunMicrotasksEntry [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
43: 0x1026acae8 v8::internal::(anonymous namespace)::Invoke(v8::internal::Isolate*, v8::internal::(anonymous namespace)::InvokeParams const&) [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
44: 0x1026acfd4 v8::internal::(anonymous namespace)::InvokeWithTryCatch(v8::internal::Isolate*, v8::internal::(anonymous namespace)::InvokeParams const&) [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
45: 0x1026ad1b0 v8::internal::Execution::TryRunMicrotasks(v8::internal::Isolate*, v8::internal::MicrotaskQueue*) [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
46: 0x1026d437c v8::internal::MicrotaskQueue::RunMicrotasks(v8::internal::Isolate*) [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
47: 0x1026d4b18 v8::internal::MicrotaskQueue::PerformCheckpoint(v8::Isolate*) [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
48: 0x102308c4c node::InternalCallbackScope::Close() [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
49: 0x102308fe4 node::InternalMakeCallback(node::Environment*, v8::Local<v8::Object>, v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*, node::async_context) [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
50: 0x10231ef3c node::AsyncWrap::MakeCallback(v8::Local<v8::Function>, int, v8::Local<v8::Value>*) [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
51: 0x1023ea520 node::fs::FSReqCallback::Reject(v8::Local<v8::Value>) [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
52: 0x1023eadcc node::fs::FSReqAfterScope::Reject(uv_fs_s*) [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
53: 0x1023eb1dc node::fs::AfterStat(uv_fs_s*) [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
54: 0x1023d4ad8 node::MakeLibuvRequestCallback<uv_fs_s, void (*)(uv_fs_s*)>::Wrapper(uv_fs_s*) [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
55: 0x102db2824 uv__work_done [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
56: 0x102db6274 uv__async_io [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
57: 0x102dc834c uv__io_poll [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
58: 0x102db6838 uv_run [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
59: 0x1023096f0 node::SpinEventLoopInternal(node::Environment*) [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
60: 0x1024249e4 node::NodeMainInstance::Run(node::ExitCode*, node::Environment*) [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
61: 0x102424764 node::NodeMainInstance::Run() [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
62: 0x1023a3d58 node::Start(int, char**) [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
63: 0x19830a0e0 start [/usr/lib/dyld]
[1] 20242 abort node --max_old_space_size=2048 ./node_modules/.bin/eslint --no-eslintrc
This sounds like #58011 / https://github.com/typescript-eslint/typescript-eslint/issues/1192. Can you provide a codebase which exhibits this problem?
The heap snapshots are somewhat helpful; they continue to point to a blow up due to an incredible number of diagnostics produced by createDiagnosticExplainingFile. 1.5G are just strings like
And the memory diff is most definitely the file casing differences.
Can you try this build? https://github.com/microsoft/TypeScript/pull/58352#issuecomment-2081888721
Can you try this build? #58352 (comment)
Some thing
<--- Last few GCs --->
[23756:0x120008000] 21909 ms: Scavenge (reduce) 2045.0 (2084.5) -> 2044.3 (2084.5) MB, 4.04 / 0.00 ms (average mu = 0.286, current mu = 0.258) allocation failure;
[23756:0x120008000] 22048 ms: Mark-Compact (reduce) 2044.9 (2084.5) -> 2043.7 (2084.8) MB, 90.92 / 0.00 ms (+ 177.9 ms in 39 steps since start of marking, biggest step 9.8 ms, walltime since start of marking 290 ms) (average mu = 0.278, current mu = 0
<--- JS stacktrace --->
FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
----- Native stack trace -----
1: 0x100a450e8 node::OOMErrorHandler(char const*, v8::OOMDetails const&) [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
2: 0x100bcb120 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, v8::OOMDetails const&) [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
3: 0x100d9f668 v8::internal::Heap::GarbageCollectionReasonToString(v8::internal::GarbageCollectionReason) [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
4: 0x100da351c v8::internal::Heap::CollectGarbageShared(v8::internal::LocalHeap*, v8::internal::GarbageCollectionReason) [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
5: 0x100d9ff80 v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::internal::GarbageCollectionReason, char const*) [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
6: 0x100d9dd08 v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
7: 0x100d9495c v8::internal::HeapAllocator::AllocateRawWithLightRetrySlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
8: 0x100d951bc v8::internal::HeapAllocator::AllocateRawWithRetryOrFailSlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
9: 0x100d7a22c v8::internal::Factory::NewFillerObject(int, v8::internal::AllocationAlignment, v8::internal::AllocationType, v8::internal::AllocationOrigin) [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
10: 0x101161cf4 v8::internal::Runtime_AllocateInYoungGeneration(int, unsigned long*, v8::internal::Isolate*) [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
11: 0x1014c0c44 Builtins_CEntry_Return1_ArgvOnStack_NoBuiltinExit [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
12: 0x1014c13fc Builtins_StringAdd_CheckNone [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
13: 0x10721d098
14: 0x1071ef958
15: 0x1014d8b3c Builtins_ArrayForEach [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
16: 0x107223e1c
17: 0x10718a25c
18: 0x1014d8b3c Builtins_ArrayForEach [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
19: 0x1014383e4 Builtins_InterpreterEntryTrampoline [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
20: 0x1014383e4 Builtins_InterpreterEntryTrampoline [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
21: 0x1014383e4 Builtins_InterpreterEntryTrampoline [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
22: 0x1014383e4 Builtins_InterpreterEntryTrampoline [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
23: 0x1014383e4 Builtins_InterpreterEntryTrampoline [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
24: 0x1014383e4 Builtins_InterpreterEntryTrampoline [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
25: 0x1014383e4 Builtins_InterpreterEntryTrampoline [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
26: 0x1014383e4 Builtins_InterpreterEntryTrampoline [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
27: 0x1014383e4 Builtins_InterpreterEntryTrampoline [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
28: 0x1014383e4 Builtins_InterpreterEntryTrampoline [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
29: 0x1014383e4 Builtins_InterpreterEntryTrampoline [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
30: 0x1014383e4 Builtins_InterpreterEntryTrampoline [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
31: 0x1014383e4 Builtins_InterpreterEntryTrampoline [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
32: 0x1014383e4 Builtins_InterpreterEntryTrampoline [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
33: 0x1014383e4 Builtins_InterpreterEntryTrampoline [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
34: 0x1014383e4 Builtins_InterpreterEntryTrampoline [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
35: 0x1014383e4 Builtins_InterpreterEntryTrampoline [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
36: 0x1014383e4 Builtins_InterpreterEntryTrampoline [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
37: 0x1014383e4 Builtins_InterpreterEntryTrampoline [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
38: 0x1014383e4 Builtins_InterpreterEntryTrampoline [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
39: 0x10146f210 Builtins_AsyncFunctionAwaitResolveClosure [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
40: 0x10151cfb8 Builtins_PromiseFulfillReactionJob [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
41: 0x10145eb94 Builtins_RunMicrotasks [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
42: 0x1014363f4 Builtins_JSRunMicrotasksEntry [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
43: 0x100d0cae8 v8::internal::(anonymous namespace)::Invoke(v8::internal::Isolate*, v8::internal::(anonymous namespace)::InvokeParams const&) [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
44: 0x100d0cfd4 v8::internal::(anonymous namespace)::InvokeWithTryCatch(v8::internal::Isolate*, v8::internal::(anonymous namespace)::InvokeParams const&) [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
45: 0x100d0d1b0 v8::internal::Execution::TryRunMicrotasks(v8::internal::Isolate*, v8::internal::MicrotaskQueue*) [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
46: 0x100d3437c v8::internal::MicrotaskQueue::RunMicrotasks(v8::internal::Isolate*) [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
47: 0x100d34b18 v8::internal::MicrotaskQueue::PerformCheckpoint(v8::Isolate*) [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
48: 0x100968c4c node::InternalCallbackScope::Close() [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
49: 0x100968fe4 node::InternalMakeCallback(node::Environment*, v8::Local<v8::Object>, v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*, node::async_context) [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
50: 0x10097ef3c node::AsyncWrap::MakeCallback(v8::Local<v8::Function>, int, v8::Local<v8::Value>*) [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
51: 0x100a4a520 node::fs::FSReqCallback::Reject(v8::Local<v8::Value>) [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
52: 0x100a4adcc node::fs::FSReqAfterScope::Reject(uv_fs_s*) [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
53: 0x100a4b1dc node::fs::AfterStat(uv_fs_s*) [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
54: 0x100a34ad8 node::MakeLibuvRequestCallback<uv_fs_s, void (*)(uv_fs_s*)>::Wrapper(uv_fs_s*) [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
55: 0x101412824 uv__work_done [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
56: 0x101416274 uv__async_io [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
57: 0x10142834c uv__io_poll [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
58: 0x101416838 uv_run [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
59: 0x1009696f0 node::SpinEventLoopInternal(node::Environment*) [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
60: 0x100a849e4 node::NodeMainInstance::Run(node::ExitCode*, node::Environment*) [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
61: 0x100a84764 node::NodeMainInstance::Run() [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
62: 0x100a03d58 node::Start(int, char**) [/Users/n.nafranets/Library/Application Support/fnm/node-versions/v20.12.2/installation/bin/node]
63: 0x19830a0e0 start [/usr/lib/dyld]
Darn, I'll have to stare at the heap dump some more...
Another idea that may show something: https://github.com/microsoft/TypeScript/pull/58361#issuecomment-2083462501
Can you please share your code so its easier to debug this than making some assumptions.. There are two potential issues here
- one of the eslint plugin is holding onto diagnostics (not 100% sure but i saw this in heapdump)
- There are lot of errors generated (we can try to optimize this but we also need to figure out why)
whats the output of tsc --explainFiles on the code that you are running this on.
Does it report errors ? how many?
Again repro would be ideal.
Can you please try https://github.com/microsoft/TypeScript/pull/58398#issuecomment-2091878628 to see if this fixes your issue.
That seems to have worked 🥹 🎉
Tested the pull request data for our problem.
pr: https://github.com/microsoft/TypeScript/pull/58352 https://github.com/microsoft/TypeScript/pull/58361 https://github.com/microsoft/TypeScript/pull/58398
With the latest pull request, the OOM problem goes away. Thank you very much for your time and correcting this behavior.
I'm assuming #58398 is what you're saying helped? It includes #58352, but not #58398 (which may or may not actually do anything).
I'm assuming #58398 is what you're saying helped? It includes #58352, but not #58398 (which may or may not actually do anything).
Only this #58398 helped, the others didn't work
I'm having a similar issue, but it seems the build artifact tgz is no longer available. Can I find it somewhere else?
This all should be done in nightly, so I would just use that. But you'll find a permanent npm version in the comment below the pipelines tgz anyway.
This all should be done in nightly, so I would just use that. But you'll find a permanent npm version in the comment below the pipelines tgz anyway.
Ah, missed that, thanks! Unfortunately, it did not solve my problem 😞
Output
<--- Last few GCs --->
[21267:0x120008000] 47275 ms: Mark-Compact 4048.5 (4136.9) -> 4038.4 (4142.1) MB, 2456.83 / 0.00 ms (average mu = 0.302, current mu = 0.026) allocation failure; scavenge might not succeed
[21267:0x120008000] 50885 ms: Mark-Compact 4054.5 (4142.4) -> 4044.1 (4148.1) MB, 3572.96 / 0.00 ms (average mu = 0.146, current mu = 0.010) allocation failure; scavenge might not succeed
<--- JS stacktrace --->
FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory
----- Native stack trace -----
1: 0x1027ecb08 node::OOMErrorHandler(char const*, v8::OOMDetails const&) [/Users/{user}/.nvm/versions/node/v20.13.1/bin/node]
2: 0x102973e30 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, v8::OOMDetails const&) [/Users/{user}/.nvm/versions/node/v20.13.1/bin/node]
3: 0x102b48504 v8::internal::Heap::GarbageCollectionReasonToString(v8::internal::GarbageCollectionReason) [/Users/{user}/.nvm/versions/node/v20.13.1/bin/node]
4: 0x102b46fe0 v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [/Users/{user}/.nvm/versions/node/v20.13.1/bin/node]
5: 0x102b3d7f8 v8::internal::HeapAllocator::AllocateRawWithLightRetrySlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [/Users/{user}/.nvm/versions/node/v20.13.1/bin/node]
6: 0x102b3e058 v8::internal::HeapAllocator::AllocateRawWithRetryOrFailSlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [/Users/{user}/.nvm/versions/node/v20.13.1/bin/node]
7: 0x102b230c8 v8::internal::Factory::NewFillerObject(int, v8::internal::AllocationAlignment, v8::internal::AllocationType, v8::internal::AllocationOrigin) [/Users/{user}/.nvm/versions/node/v20.13.1/bin/node]
8: 0x102f0add8 v8::internal::Runtime_AllocateInYoungGeneration(int, unsigned long*, v8::internal::Isolate*) [/Users/{user}/.nvm/versions/node/v20.13.1/bin/node]
9: 0x103268c44 Builtins_CEntry_Return1_ArgvOnStack_NoBuiltinExit [/Users/{user}/.nvm/versions/node/v20.13.1/bin/node]
10: 0x1031e28a8 Builtins_GrowFastSmiOrObjectElements [/Users/{user}/.nvm/versions/node/v20.13.1/bin/node]
11: 0x108dcf684
12: 0x108c15410
13: 0x1090ad2f8
14: 0x109023568
15: 0x108ef6d40
16: 0x108bb343c
17: 0x1090236d4
18: 0x108b8862c
19: 0x108c09d84
20: 0x108fdb8e0
21: 0x108b9be34
22: 0x108c2343c
23: 0x108ed5c50
24: 0x108fc9960
25: 0x108ae3ee8
26: 0x108c2343c
27: 0x108ed5c50
28: 0x108fc9960
29: 0x108ae3ee8
30: 0x1089a325c
31: 0x1089ceb7c
32: 0x108ec89ac
33: 0x108ab3664
34: 0x1086121a4
35: 0x1087f001c
36: 0x108a11b50
37: 0x108a1471c
38: 0x108627724
39: 0x108a8bec8
40: 0x108a156cc
41: 0x108627724
42: 0x108fea03c
43: 0x108a77828
44: 0x108aa3848
45: 0x108a6ec50
46: 0x108aa7b20
47: 0x108a76094
48: 0x1089521ec
49: 0x108952e1c
50: 0x10894c4a4
51: 0x10894de98
52: 0x10894c5c0
53: 0x10894c64c
54: 0x10894cb20
55: 0x10894c824
56: 0x10894e320
57: 0x1089534e4
58: 0x1031e03e4 Builtins_InterpreterEntryTrampoline [/Users/{user}/.nvm/versions/node/v20.13.1/bin/node]
59: 0x1031e03e4 Builtins_InterpreterEntryTrampoline [/Users/{user}/.nvm/versions/node/v20.13.1/bin/node]
60: 0x1031e03e4 Builtins_InterpreterEntryTrampoline [/Users/{user}/.nvm/versions/node/v20.13.1/bin/node]
61: 0x1031e03e4 Builtins_InterpreterEntryTrampoline [/Users/{user}/.nvm/versions/node/v20.13.1/bin/node]
62: 0x1031e03e4 Builtins_InterpreterEntryTrampoline [/Users/{user}/.nvm/versions/node/v20.13.1/bin/node]
63: 0x1031e03e4 Builtins_InterpreterEntryTrampoline [/Users/{user}/.nvm/versions/node/v20.13.1/bin/node]
64: 0x1031e03e4 Builtins_InterpreterEntryTrampoline [/Users/{user}/.nvm/versions/node/v20.13.1/bin/node]
65: 0x1031e03e4 Builtins_InterpreterEntryTrampoline [/Users/{user}/.nvm/versions/node/v20.13.1/bin/node]
66: 0x1031e03e4 Builtins_InterpreterEntryTrampoline [/Users/{user}/.nvm/versions/node/v20.13.1/bin/node]
67: 0x1031e03e4 Builtins_InterpreterEntryTrampoline [/Users/{user}/.nvm/versions/node/v20.13.1/bin/node]
68: 0x1031e03e4 Builtins_InterpreterEntryTrampoline [/Users/{user}/.nvm/versions/node/v20.13.1/bin/node]
69: 0x1031e03e4 Builtins_InterpreterEntryTrampoline [/Users/{user}/.nvm/versions/node/v20.13.1/bin/node]
70: 0x1031e03e4 Builtins_InterpreterEntryTrampoline [/Users/{user}/.nvm/versions/node/v20.13.1/bin/node]
71: 0x1031e03e4 Builtins_InterpreterEntryTrampoline [/Users/{user}/.nvm/versions/node/v20.13.1/bin/node]
72: 0x1031e03e4 Builtins_InterpreterEntryTrampoline [/Users/{user}/.nvm/versions/node/v20.13.1/bin/node]
73: 0x1031e03e4 Builtins_InterpreterEntryTrampoline [/Users/{user}/.nvm/versions/node/v20.13.1/bin/node]
74: 0x1031e03e4 Builtins_InterpreterEntryTrampoline [/Users/{user}/.nvm/versions/node/v20.13.1/bin/node]
75: 0x1031e03e4 Builtins_InterpreterEntryTrampoline [/Users/{user}/.nvm/versions/node/v20.13.1/bin/node]
76: 0x1031e03e4 Builtins_InterpreterEntryTrampoline [/Users/{user}/.nvm/versions/node/v20.13.1/bin/node]
77: 0x1031e03e4 Builtins_InterpreterEntryTrampoline [/Users/{user}/.nvm/versions/node/v20.13.1/bin/node]
78: 0x1031de50c Builtins_JSEntryTrampoline [/Users/{user}/.nvm/versions/node/v20.13.1/bin/node]
79: 0x1031de1f4 Builtins_JSEntry [/Users/{user}/.nvm/versions/node/v20.13.1/bin/node]
80: 0x102ab59ac v8::internal::(anonymous namespace)::Invoke(v8::internal::Isolate*, v8::internal::(anonymous namespace)::InvokeParams const&) [/Users/{user}/.nvm/versions/node/v20.13.1/bin/node]
81: 0x102ab4df8 v8::internal::Execution::Call(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, int, v8::internal::Handle<v8::internal::Object>*) [/Users/{user}/.nvm/versions/node/v20.13.1/bin/node]
82: 0x10298f6e8 v8::Function::Call(v8::Local<v8::Context>, v8::Local<v8::Value>, int, v8::Local<v8::Value>*) [/Users/{user}/.nvm/versions/node/v20.13.1/bin/node]
83: 0x1027cdb30 node::builtins::BuiltinLoader::CompileAndCall(v8::Local<v8::Context>, char const*, node::Realm*) [/Users/{user}/.nvm/versions/node/v20.13.1/bin/node]
84: 0x10285c5cc node::Realm::ExecuteBootstrapper(char const*) [/Users/{user}/.nvm/versions/node/v20.13.1/bin/node]
85: 0x1027b1688 node::StartExecution(node::Environment*, std::__1::function<v8::MaybeLocal<v8::Value> (node::StartExecutionCallbackInfo const&)>) [/Users/{user}/.nvm/versions/node/v20.13.1/bin/node]
86: 0x10271d504 node::LoadEnvironment(node::Environment*, std::__1::function<v8::MaybeLocal<v8::Value> (node::StartExecutionCallbackInfo const&)>, std::__1::function<void (node::Environment*, v8::Local<v8::Value>, v8::Local<v8::Value>)>) [/Users/{user}/.nvm/versions/node/v20.13.1/bin/node]
87: 0x10282c288 node::NodeMainInstance::Run(node::ExitCode*, node::Environment*) [/Users/{user}/.nvm/versions/node/v20.13.1/bin/node]
88: 0x10282bff8 node::NodeMainInstance::Run() [/Users/{user}/.nvm/versions/node/v20.13.1/bin/node]
89: 0x1027b47ac node::Start(int, char**) [/Users/{user}/.nvm/versions/node/v20.13.1/bin/node]
90: 0x1844f20e0 start [/usr/lib/dyld]
Please file a new issue with your repro.