Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update from typescript 3.1 to 3.6 -> out of memory exception (exit code 134) #33612

Closed
PaulVrugt opened this issue Sep 26, 2019 · 6 comments
Closed
Labels
Needs More Info The issue still hasn't been fully clarified

Comments

@PaulVrugt
Copy link

TypeScript Version: 3.6

Search Terms: 3.6 exit code 134 out of memory

Code
We have loads of code in our codebase, I have no idea what causes the issue

Expected behavior:
compilation succeeds

Actual behavior:
error during compilation, error code 134

Playground Link: don't have one

Related Issues: nope


Now that I've tried to fill out the mandatory form. Let me explain my issue. Earlier today I've updated visual studio to version 16.3.1. This also installed typescript 3.6. Now after this, our project doesn't compile correctly anymore. We have defined our project to use the latest typescript version. The compile command and error are:

"C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VisualStudio\NodeJs\node.exe" "C:\Program Files (x86)\Microsoft SDKs\TypeScript\3.6\tsc.js"  --project "my project\jsconfig.json" --listEmittedFiles --locale en-US --listFiles --noEmit

<--- Last few GCs --->
il[22168:00289418]    12789 ms: Mark-sweep 700.8 (723.5) -> 700.5 (724.0) MB, 653.4 / 0.0 ms  (+ 0.0 ms in 15 steps since start of marking, biggest step 0.0 ms, walltime since start of marking 661 ms) (average mu = 0.069, current mu = 0.011) allocation fail[22168:00289418]    13381 ms: Mark-sweep 701.2 (724.0) -> 701.1 (724.5) MB, 580.3 / 0.0 ms  (+ 5.6 ms in 11 steps since start of marking, biggest step 3.7 ms, walltime since start of marking 591 ms) (average mu = 0.039, current mu = 0.011) allocation fail

<--- JS stacktrace --->

==== JS stack trace =========================================

    0: ExitFrame [pc: 0EFD209E]
Security context: 0x38912701 <JSObject>
    1: parseLiteralLikeNode(aka parseLiteralLikeNode) [25964FB1] [C:\Program Files (x86)\Microsoft SDKs\TypeScript\3.6\tsc.js:~18999] [pc=3394A9CD](this=0x1270438d <undefined>,kind=17)
    2: parseTemplateMiddleOrTemplateTail(aka parseTemplateMiddleOrTemplateTail) [25967F5D] [C:\Program Files (x86)\Microsoft SDKs\TypeScript\3.6\tsc.js:18995] [bytecode=2413F4D5 offset=...

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
 1: 00A2254E node::MakeCallback+3774
 2: 0107C652 v8::internal::Heap::MaxHeapGrowingFactor+9554
 3: 010733F1 v8::internal::ScavengeJob::operator=+16593
 4: 0107AAEE v8::internal::Heap::MaxHeapGrowingFactor+2542

before the update, we used typescript 3.1, which worked fine. A difference I spotted is that in 3.1, tsc.exe was called directly, while in 3.6 it is called via nodejs. It also takes WAY longer and eats lots of memory (probably causing the memory exception).

We've now worked around it by fixing the typescript version to 3.1 in our project

@michaeldahlke
Copy link

I've encountered this problem today as well after regenerating my yarn.lock. Doesn't seem to be caused specifically by the TypeScript version in my case though, as I pegged it to 3.4.5 and still encountered the problem. My guess it's one of the build tools I'm relying on (Create React App -> Babel, Webpack, ES lint are all candidates).

@RyanCavanaugh RyanCavanaugh added the Needs More Info The issue still hasn't been fully clarified label Sep 26, 2019
@RyanCavanaugh
Copy link
Member

We'd need some way to reproduce the problem to be able to investigate. Is there a repo available, or could you send us a zip file?

@PaulVrugt
Copy link
Author

Ok. I figured out the issue. For some reason, we have both a tsconfig.json and jsconfig.json file in our project. The issue occurs because the 3.6 version also compiles the jsconfig, which the old typescript didn't seem to do. We removed the jsconfig file because I don't think we need it, and that seems to solve it.

@Hotell
Copy link

Hotell commented Nov 19, 2019

@RyanCavanaugh we are experiencing similar "Out of memory" exception (what's very weird, it's not consistent - can be reproduced only some machines)

our codebase metadata:

yarn tsc  --extendedDiagnostics

Files:                        3470
Lines:                      503907
Nodes:                     2175468
Identifiers:                731976
Symbols:                    964407
Types:                      390897
Memory used:              1157734K
Assignability cache size:   241363
Identity cache size:          7302
Subtype cache size:          27856
I/O Read time:               1.00s
Parse time:                  2.43s
Program time:                6.08s
Bind time:                   1.50s
Check time:                 24.41s
Total time:                 31.98s

⚡️Looks like the issue persist within how includes are defined

Following triggers out of memory error:

"include": ["typings", "src/js", "apps", "libs"],

With this one, all good:

"include": [
    "typings/**/*.d.ts",
    "src/js/**/*.ts",
    "src/js/**/*.tsx",
    "src/js/**/*.js",
    "apps/**/*.ts",
    "apps/**/*.tsx",
    "libs"
]

ts version: 3.6.4

UPDATE:

The issue is caused by javascript files within apps/**/*.js

following causes memory error:

"include": [
    "typings/**/*.d.ts",
    "src/js/**/*.ts",
    "src/js/**/*.tsx",
    "src/js/**/*.js",
    "apps/**/*.ts",
    "apps/**/*.tsx",
+    "apps/**/*.js",
    "libs"
]

any ideas ?

@Hotell Hotell mentioned this issue Nov 19, 2019
@WinInsider
Copy link

in 3.1, tsc.exe was called directly, while in 3.6 it is called via nodejs

MS do consider having tsc.exe back... Chakra Core was rock solid, and by the looks of it, worked better !

@carlosen14
Copy link

@RyanCavanaugh we are experiencing similar "Out of memory" exception (what's very weird, it's not consistent - can be reproduced only some machines)

our codebase metadata:

yarn tsc  --extendedDiagnostics

Files:                        3470
Lines:                      503907
Nodes:                     2175468
Identifiers:                731976
Symbols:                    964407
Types:                      390897
Memory used:              1157734K
Assignability cache size:   241363
Identity cache size:          7302
Subtype cache size:          27856
I/O Read time:               1.00s
Parse time:                  2.43s
Program time:                6.08s
Bind time:                   1.50s
Check time:                 24.41s
Total time:                 31.98s

zapLooks like the issue persist within how includes are defined

Following triggers out of memory error:

"include": ["typings", "src/js", "apps", "libs"],

With this one, all good:

"include": [
    "typings/**/*.d.ts",
    "src/js/**/*.ts",
    "src/js/**/*.tsx",
    "src/js/**/*.js",
    "apps/**/*.ts",
    "apps/**/*.tsx",
    "libs"
]

ts version: 3.6.4

UPDATE:

The issue is caused by javascript files within apps/**/*.js

following causes memory error:

"include": [
    "typings/**/*.d.ts",
    "src/js/**/*.ts",
    "src/js/**/*.tsx",
    "src/js/**/*.js",
    "apps/**/*.ts",
    "apps/**/*.tsx",
+    "apps/**/*.js",
    "libs"
]

any ideas ?

I had a task.js file in a bin folder, exclude it solved the problem!

  "exclude": [
      "bin"
  ]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Needs More Info The issue still hasn't been fully clarified
Projects
None yet
Development

No branches or pull requests

6 participants