Repository navigation
TS Server fatal error: Maximum call stack size exceeded #51162
Copy link
Copy link
Open
Labels
BugA bug in TypeScriptA bug in TypeScriptDomain: CrashesUnhandled exceptions/panics with no immediate primary root cause identifiedUnhandled exceptions/panics with no immediate primary root cause identifiedRescheduledThis issue was previously scheduled to an earlier milestoneThis issue was previously scheduled to an earlier milestone
Milestone
Description
Type: Bug
Hope I've provided enough information below. The bug manifests as a notification with the text:
The JS/TS language service immediately crashed 5 times. The service will not be restarted.
Observed in VS Code versions:
- Version: 1.72.1 (Universal)
- Commit: 129500ee4c8ab7263461ffe327268ba56b9f210d
- Date: 2022-10-10T17:25:13.482Z (2 days ago)
And:
- Version: 1.73.0-insider (Universal)
- Commit: a810804
- Date: 2022-10-13T05:19:29.769Z (6 hrs ago)
Problem persists when code --disable-extensions is run on either version.
Report below was generated from Insiders release
TypeScript Version: 4.8.4
Steps to reproduce crash
- Open VS Code
- Open Folder
- Open JavaScript file
- The JS/TS language services crashes
TS Server Log
https://gist.github.com/shuckster/f56477f7b3fdf1686214c2c8c8309c50
Personal/Company info redacted, but codebase is a mix of both JavaScript and Flow-typed JavaScript.
TS Server Error Stack
Server: semantic
RangeError: Maximum call stack size exceeded
at Object.scanJsxToken (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:12041:30)
at scanJsxText (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:32328:43)
at parseJsxOpeningOrSelfClosingElementOrOpeningFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35663:17)
at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35527:27)
at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
at parseJsxChild (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35617:28)
at parseJsxChildren (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35628:29)
at parseJsxElementOrSelfClosingElementOrFragment (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:35530:32)
VS Code version: Code - Insiders 1.73.0-insider (Universal) (a810804, 2022-10-13T05:19:29.769Z)
OS version: Darwin arm64 21.6.0
Modes:
Sandboxed: Yes
System Info
| Item | Value |
|---|---|
| CPUs | Apple M1 Pro (10 x 24) |
| GPU Status | 2d_canvas: enabled canvas_oop_rasterization: disabled_off direct_rendering_display_compositor: disabled_off_ok gpu_compositing: enabled metal: disabled_off multiple_raster_threads: enabled_on opengl: enabled_on rasterization: enabled raw_draw: disabled_off_ok skia_renderer: enabled_on video_decode: enabled video_encode: enabled vulkan: disabled_off webgl: enabled webgl2: enabled webgpu: disabled_off |
| Load (avg) | 8, 7, 5 |
| Memory (System) | 32.00GB (6.14GB free) |
| Process Argv | |
| Screen Reader | no |
| VM | 0% |
A/B Experiments
vsliv695:30137379
vsins829:30139715
vsliv368cf:30146710
vsreu685:30147344
python383cf:30185419
vspor879:30202332
vspor708:30202333
vspor363:30204092
vslsvsres303:30308271
pythonvspyl392:30422396
pythontb:30258533
vsc_aacf:30263846
pythonptprofiler:30281269
vshan820:30294714
pythondataviewer:30285072
vscod805cf:30301675
bridge0708:30335490
bridge0723:30353136
cmake_vspar411:30581797
vsaa593:30376534
pythonvs932:30404738
cppdebug:30492333
vsclangdf:30492506
c4g48928:30535728
dsvsc012cf:30540253
pylantcb52:30568093
vscccc:30564267
pyindex848:30577858
nodejswelcome1:30587009
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
BugA bug in TypeScriptA bug in TypeScriptDomain: CrashesUnhandled exceptions/panics with no immediate primary root cause identifiedUnhandled exceptions/panics with no immediate primary root cause identifiedRescheduledThis issue was previously scheduled to an earlier milestoneThis issue was previously scheduled to an earlier milestone
Activity
mjbvz commentedon Oct 13, 2022
Thanks Conan (@shuckster)
Can you share the contents of
babel.config.aliases.jssince this seems to be the file that causes problems?shuckster commentedon Oct 13, 2022
Hey Matt Bierner (@mjbvz) , thanks for the quick reply.
Content posted below, although I must say the server crashes when I choose any JavaScript file, not just this one:
RyanCavanaugh commentedon Oct 13, 2022
Based on the call stack, that file must not be the culprit.
There is (at least) one file in your repro which should equivalently crash
tscif you runYou can ignore non-crash errors emitted by this check
Can you post that file (or a shortened version of it that still crashes)?
shuckster commentedon Oct 13, 2022
Thank you Ryan Cavanaugh (@RyanCavanaugh) for this.
I wasn't able to get an answer from
tsc, but your advice did prompt me to create a new repo and copy over files/folders until I got Intellisense to crash.I managed to narrow it down to the following file:
Of course, this is a
flow-typeddefinition and so I presume out-of-scope for a TypeScript fix. However, I did narrow-down the crash to somewhere around here.Still, the proper solution in my case was to add the
/flow-typed/folder to myjsconfig.json:{ "exclude": ["./flow-typed"], "compilerOptions": { ... } }This has allowed Intellisense to restart successfully after running "Developer: Restart Extension Host" from the Command Palette.
shuckster commentedon Oct 13, 2022
I presume this is unlikely to affect the outcome of this issue, but just to follow-up: Opening
lodash_v4.x.x.jsin a new editor, then running "Developer: Restart Extension Host", will also cause the crash even after adding./flow-typedtoexcludein thejsconfig.jsonfile.RyanCavanaugh commentedon Oct 13, 2022
Oh my. Yeah, unfortunately given the syntax here, TS parses it thinking it's a massively-nested JSX expression, starting here and continuing to deepen the stack at ~every
<T>that follows.It looks like the problem starts at the
{|block, where the|throws the parser into an expression context. There's an easy fix - if the token at the start/end of an object type block is|, just issue an "invalid character" error (so people don't start writing this in TS, for now) and skip it.shuckster commentedon Oct 13, 2022
Wow, great! Glad it's fixable, and thank you.