Vscode-ng-language-service: Language service crashes (on Angular 4.1.2): JavaScript heap out of memory

Created on 14 May 2017  ·  5Comments  ·  Source: angular/vscode-ng-language-service

I recently noticed that the language-service stopped working and started seeing the following in the console:


FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory

Angular Language Service: 4.1.2
TypeScript: 2.1.6
FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
 1: node::Abort() [/Applications/Visual Studio Code.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libnode.dylib]
 2: node::DLOpen(v8::FunctionCallbackInfo const&) [/Applications/Visual Studio Code.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libnode.dylib]
 3: v8::internal::FatalProcessOutOfMemory(char const*) [/Applications/Visual Studio Code.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libnode.dylib]
 4: v8::internal::FatalProcessOutOfMemory(char const*) [/Applications/Visual Studio Code.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libnode.dylib]
 5: v8::internal::Factory::NewFixedArray(int, v8::internal::PretenureFlag) [/Applications/Visual Studio Code.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libnode.dylib]
 6: v8::internal::JSArrayBuffer::Setup(v8::internal::Handle, v8::internal::Isolate*, bool, void*, unsigned long, v8::internal::SharedFlag) [/Applications/Visual Studio Code.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libnode.dylib]
 7: v8::internal::JSRegExp::New(v8::internal::Handle, v8::base::Flags) [/Applications/Visual Studio Code.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libnode.dylib]
 8: v8::internal::EhFrameIterator::DecodeSLeb128(unsigned char const*, int*) [/Applications/Visual Studio Code.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libnode.dylib]
 9: v8::internal::HeapNumber::HeapNumberPrint(std::__1::basic_ostream >&) [/Applications/Visual Studio Code.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libnode.dylib]
10: v8::internal::RegisterConfiguration::AreAliases(v8::internal::MachineRepresentation, int, v8::internal::MachineRepresentation, int) const [/Applications/Visual Studio Code.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libnode.dylib]
11: 0x2c0596f843a7
12: 0x2c05971a4765
13: 0x2c0597196a67
[Info  - 10:12:40 PM] Connection to server got closed. Server will restart.


This was after either upgrading to Angular 4.1.1 or 4.1.2, perhaps other factors played a role as well.

Problem is easily solved by upgrading the dependencies:

cd ~/.vscode/extensions/Angular.ng-template-0.1.3
yarn upgrade @angular/language-service typescript vscode-languageserver

I had also upgraded deps in Angular.ng-template-0.1.3 but that alone did not fix the issue, I also did not revert the change:

cd ~/.vscode/extensions/Angular.ng-template-0.1.3/server
yarn upgrade vscode-languageclient vscode typescript
bug

Most helpful comment

@mafredri The errors in the second comment can be attributed to updating TypeScript past 2.1. The editorServices.ts requires significant changes to upgrade past 2.1 which is why this plugin is currently using 2.1.5.

The first comment I have no clue about.

If you have one, consider removing the dev dependency on @angular/language-service from your project so it goes back to using the embedded version of the language service. If you don't have one, consider adding one to the most latest @angular/language-service.

All 5 comments

After doing the above upgrade of deps, I've noticed some errors in the extension output, adding them here in case they might be helpful:


Error: length < 0

/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/node_modules/typescript/lib/typescript.js:10600
            throw new Error("length < 0");
            ^

Error: length < 0
    at Object.createTextSpan (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/node_modules/typescript/lib/typescript.js:10600:19)
    at TextChange.getTextChangeRange (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2024:44)
    at ScriptVersionCache.getTextChangesBetweenVersions (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2112:80)
    at LineIndexSnapshot.getTextChangeRangeSinceVersion (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2177:31)
    at LineIndexSnapshot.getChangeRange (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2182:21)
    at acquireOrUpdateDocument (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/node_modules/typescript/lib/typescript.js:74378:133)
    at Object.updateDocumentWithKey (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/node_modules/typescript/lib/typescript.js:74357:20)
    at Object.getOrCreateSourceFileByPath [as getSourceFileByPath] (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/node_modules/typescript/lib/typescript.js:86043:49)
    at tryReuseStructureFromOldProgram (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/node_modules/typescript/lib/typescript.js:67052:28)
    at Object.createProgram (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/node_modules/typescript/lib/typescript.js:66824:14)
[Info  - 11:19:08 AM] Connection to server got closed. Server will restart.


TypeError: Cannot read property 'kind' of undefined

/Users/mafredri/ng2-project/node_modules/@angular/language-service/bundles/language-service.umd.js:43244
        switch (node.kind) {
                    ^

TypeError: Cannot read property 'kind' of undefined
    at Evaluator.evaluateNode (/Users/mafredri/ng2-project/node_modules/@angular/language-service/bundles/language-service.umd.js:43244:21)
    at Evaluator.evaluateNode (/Users/mafredri/ng2-project/node_modules/@angular/language-service/bundles/language-service.umd.js:43383:34)
    at /Users/mafredri/ng2-project/node_modules/@angular/language-service/bundles/language-service.umd.js:43263:39
    at visitEachNode (/Users/mafredri/ng2-project/node_modules/typescript/lib/typescript.js:14724:30)
    at Object.forEachChild (/Users/mafredri/ng2-project/node_modules/typescript/lib/typescript.js:14840:24)
    at Evaluator.evaluateNode (/Users/mafredri/ng2-project/node_modules/@angular/language-service/bundles/language-service.umd.js:43248:22)
    at /Users/mafredri/ng2-project/node_modules/@angular/language-service/bundles/language-service.umd.js:43317:103
    at Array.map (native)
    at Evaluator.evaluateNode (/Users/mafredri/ng2-project/node_modules/@angular/language-service/bundles/language-service.umd.js:43317:69)
    at objFromDecorator (/Users/mafredri/ng2-project/node_modules/@angular/language-service/bundles/language-service.umd.js:43753:33)
[Info  - 11:15:20 AM] Connection to server got closed. Server will restart.


TypeError: Cannot read property 'metadata' of null

/Users/mafredri/ng2-project/node_modules/@angular/language-service/bundles/language-service.umd.js:48425
                    var _d = this.resolver.getNonNormalizedDirectiveMetadata(directive.reference), metadata = _d.metadata, annotation = _d.annotation;
                                                                                                                ^

TypeError: Cannot read property 'metadata' of null
    at TypeScriptServiceHost.ensureTemplateMap (/Users/mafredri/ng2-project/node_modules/@angular/language-service/bundles/language-service.umd.js:48425:113)
    at TypeScriptServiceHost.getTemplateReferences (/Users/mafredri/ng2-project/node_modules/@angular/language-service/bundles/language-service.umd.js:48265:14)
    at LanguageServiceImpl.getTemplateReferences (/Users/mafredri/ng2-project/node_modules/@angular/language-service/bundles/language-service.umd.js:47956:90)
    at /Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2689:78
    at time (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2677:22)
    at Object.getTemplateReferences (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2689:20)
    at Project.updateFileMap (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:788:62)
    at Project.updateGraph (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:806:14)
    at Project.finishGraph (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:798:14)
    at ProjectService.updateConfiguredProject (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:1708:25)
[Info  - 11:14:33 AM] Connection to server got closed. Server will restart.


SERVER ERROR: Cannot read property 'charCount' of undefined

SERVER ERROR: Cannot read property 'charCount' of undefined
TypeError: Cannot read property 'charCount' of undefined
    at LineNode.walk (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2439:39)
    at LineIndex.edit (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2304:27)
    at ScriptVersionCache.getSnapshot (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2086:39)
    at ScriptInfo.snap (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:405:25)
    at LSHost.lineOffsetToPosition (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:649:28)
    at /Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:1439:86
    at Array.map (native)
    at ProjectService.lineOffsetsToPositions (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:1439:30)
    at /Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/documents.js:151:56
    at TextDocuments.logErrors (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/documents.js:234:13)
[Error - 11:19:44 AM] Notification handler 'textDocument/didChange' failed with message: Cannot read property 'charCount' of undefined


Notification handler 'textDocument/didChange' failed with message: Cannot read property 'charCount' of undefined

[Error - 11:42:51 AM] Notification handler 'textDocument/didChange' failed with message: Cannot read property 'charCount' of undefined
/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2431
            childCharCount = child.charCount();
                                  ^

TypeError: Cannot read property 'charCount' of undefined
    at LineNode.walk (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2431:35)
    at LineIndex.edit (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2304:27)
    at ScriptVersionCache.getSnapshot (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2086:39)
    at ScriptVersionCache.latestVersion (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2050:18)
    at LSHost.getScriptVersion (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:542:29)
    at TypeScriptServiceHost.getTemplates (/Users/mafredri/ng2-project/node_modules/@angular/language-service/bundles/language-service.umd.js:48312:39)
    at LanguageServiceImpl.getDiagnostics (/Users/mafredri/ng2-project/node_modules/@angular/language-service/bundles/language-service.umd.js:47959:35)
    at /Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2686:72
    at time (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2677:22)
    at Object.getDiagnostics (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2686:20)
[Info  - 11:42:51 AM] Connection to server got closed. Server will restart.

@mafredri The errors in the second comment can be attributed to updating TypeScript past 2.1. The editorServices.ts requires significant changes to upgrade past 2.1 which is why this plugin is currently using 2.1.5.

The first comment I have no clue about.

If you have one, consider removing the dev dependency on @angular/language-service from your project so it goes back to using the embedded version of the language service. If you don't have one, consider adding one to the most latest @angular/language-service.

The editorServices.ts requires significant changes to upgrade past 2.1 which is why this plugin is currently using 2.1.5.

@chuckjaz I didn't find this to be the case (as can be seen in my PR #105). But I can't be certain that I haven't overlooked something.

If you have one, consider removing the dev dependency on @angular/language-service from your project so it goes back to using the embedded version of the language service.

I do have it as a dev dependency, however, my PR branch is working fine so I'd prefer not to revert to an older version of the language-service.

How do I configure this plugin "Not To" look in specific folders. Currently it is throwing errors from all vendor (html & css) files which I am just referring in my project.
Please help

This issue has been automatically locked due to inactivity.
Please file a new issue if you are encountering a similar or related problem.

Read more about our automatic conversation locking policy.

_This action has been performed automatically by a bot._

Was this page helpful?
0 / 5 - 0 ratings

Related issues

pfeigl picture pfeigl  ·  6Comments

wvanderdeijl picture wvanderdeijl  ·  6Comments

MarcOne68 picture MarcOne68  ·  5Comments

frederikschubert picture frederikschubert  ·  3Comments

Liero picture Liero  ·  3Comments