With the latest release of VSCode 1.64.2, I am no longer seeing this issue. The following addition to VSCode appears to have resolved my issue, and the extension now runs a lot more smoothly:
Editor adapts to language feature timings
Extensions power almost all language features, including built-in features like folding regions, CodeLens, inlay hints, and semantic tokens. These features aren't triggered by user gestures but by typing, usually after a timeout. For instance, CodeLens updates as you type, and so does semantic tokens. The chosen timeout values had been fixed and more or less arbitrary. With this release, the editor adapts to the observed timings so that slower machines or network connections aren't overwhelmed with requests and faster machines are utilized better.
------------------------------
Robert Metzger
Software Engineer
basys Inc
Baltimore MD US
------------------------------
Original Message:
Sent: 12-08-2021 17:09
From: Robert Metzger
Subject: StackOverflowError with code folding
When opening one of our programs in VS Code I've noticed the java process use up a large amount of system resources before eventually ending in a StackOverflowError in the folding handler. I've reproduced this issue a few times with the same program, but no other programs seem to hit this issue. CPU usage on the java process are between 30% and 35% with RAM usage around 1GB or higher before the process spits out the logs as pasted below. Additionally, the WARN appears to be related to an underscore following an INPUT statement:
INPUT NUL,1:_
17:07:50.165 [ForkJoinPool.commonPool-worker-1] WARN com.rs.mv.mvvs.basic.services.semantichighlighting.SemanticAnalyseVisitor - Semantic recognition error. Token type:351,Text: _Dec 08, 2021 5:07:50 PM org.eclipse.lsp4j.jsonrpc.RemoteEndpoint fallbackResponseErrorSEVERE: Internal error: java.lang.StackOverflowErrorjava.util.concurrent.CompletionException: java.lang.StackOverflowError at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:314) at java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:319) at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:645) at java.base/java.util.concurrent.CompletableFuture$Completion.exec(CompletableFuture.java:479) at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290) at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020) at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656) at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594) at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177)Caused by: java.lang.StackOverflowError at org.antlr.v4.runtime.BufferedTokenStream.size(BufferedTokenStream.java:111) at com.rs.mv.mvvs.basic.services.folding.handler.BaseHandler.getNextSpecificToken(BaseHandler.java:61) at com.rs.mv.mvvs.basic.services.folding.handler.BaseHandler.getNextSpecificToken(BaseHandler.java:64) at com.rs.mv.mvvs.basic.services.folding.handler.BaseHandler.getNextSpecificToken(BaseHandler.java:64)...
[Error - 5:07:50 PM] Request textDocument/foldingRange failed. Message: Internal error. Code: -32603 java.util.concurrent.CompletionException: java.lang.StackOverflowError at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:314) at java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:319) at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:645) at java.base/java.util.concurrent.CompletableFuture$Completion.exec(CompletableFuture.java:479) at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290) at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020) at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656) at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594) at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177)Caused by: java.lang.StackOverflowError at org.antlr.v4.runtime.BufferedTokenStream.size(BufferedTokenStream.java:111) at com.rs.mv.mvvs.basic.services.folding.handler.BaseHandler.getNextSpecificToken(BaseHandler.java:61) at com.rs.mv.mvvs.basic.services.folding.handler.BaseHandler.getNextSpecificToken(BaseHandler.java:64) at com.rs.mv.mvvs.basic.services.folding.handler.BaseHandler.getNextSpecificToken(BaseHandler.java:64) at com.rs.mv.mvvs.basic.services.folding.handler.BaseHandler.getNextSpecificToken(BaseHandler.java:64)...
------------------------------
Robert Metzger
Software Engineer
basys Inc
Baltimore MD US
------------------------------