redhat-developer / redhat-developer/vscode-java
[NO SOLUTION WORKED] Language Support for Java server crashed 5 times in the last 3 minutes
まだ誰も着手していません。
- 主要言語
- TypeScript
- スター
- 2.3k
- フォーク
- 546
- 平均マージ
- 20時間 1分
- マージ済み PR(30日)
- 11
説明
I have tried all the suggested solutions in previous threads - clearing java language workspace, reinstalling the extension pack, I didn't have vs-code lombok installed, so I actually went forward and installed it, only to uninstall it later and follow the steps referenced below (to restore java.jdt.ls.vmargs to its default value manually):
The problem is vscode-lombok adds a path to the lombok java agent in java.jdt.ls.vmargs, in the user settings.json. When you uninstall vscode-lombok, it doesn't clean up java.jdt.ls.vmargs, so that still references the lombok jar, which likely no longer exists:
message: 'Starting Java server with: /usr/lib/jvm/java-11-openjdk-amd64/bin/java --add-modules=ALL-SYSTEM --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED -Declipse.application=org.eclipse.jdt.ls.core.id1 -Dosgi.bundles.defaultStartLevel=4 -Declipse.product=org.eclipse.jdt.ls.core.product -Dfile.encoding=utf8 -XX:+UseParallelGC -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xmx1G -Xms100m -javaagent:/Users/zhh/.vscode/extensions/gabrielbb.vscode-lombok-1.0.1/server/lombok.jar -noverify -jar /home/zhh/.vscode-server/extensions/redhat.java-0.82.0/server/plugins/org.eclipse.equinox.launcher_1.6.300.v20210813-1054.jar -configuration /home/zhh/.vscode-server/data/User/globalStorage/redhat.java/0.82.0/config_ss_linux -data /home/zhh/.vscode-server/data/User/workspaceStorage/9a2f2697641d2d0e6d54bc445822b663/redhat.java/ss_ws',
The language server then fails to start. See
message: 'Error opening zip file or JAR manifest missing : /Users/zhh/.vscode/extensions/gabrielbb.vscode-lombok-1.0.1/server/lombok.jar\n',
So, after uninstalling vscode-lombok, one needs to manually remove the lombok java agent from the java.jdt.ls.vmargs preference.
Originally posted by @fbricon in https://github.com/redhat-developer/vscode-java/issues/305#issuecomment-945083500
However, even after all this I am still getting the same error "Language Server restarted more than 5 times in the last 3 min. Not restarting again".
Here are the logs for your reference:
Notable errors/exceptions: Unable to load IDecompiler class for jarFileContentProvider
BadLocationException\n
{
message: 'Starting Java server with: c:\Users\user\.vscode\extensions\redhat.java-1.3.0\jre\17.0.1-win32-x86_64\bin\java --add-modules=ALL-SYSTEM --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/sun.nio.fs=ALL-UNNAMED -Declipse.application=org.eclipse.jdt.ls.core.id1 -Dosgi.bundles.defaultStartLevel=4 -Declipse.product=org.eclipse.jdt.ls.core.product -Djava.import.generatesMetadataFilesAtProjectRoot=false -Dfile.encoding=utf8 -DwatchParentProcess=false -XX:+UseParallelGC -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xmx1G -Xms100m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=c:\Users\user\AppData\Roaming\Code\User\workspaceStorage\eec4092057407e1a5092d8492648964e\redhat.java -jar c:\Users\user\.vscode\extensions\redhat.java-1.3.0\server\plugins\org.eclipse.equinox.launcher_1.6.400.v20210924-0641.jar -configuration c:\Users\user\AppData\Roaming\Code\User\globalStorage\redhat.java\1.3.0\config_win -data c:\Users\user\AppData\Roaming\Code\User\workspaceStorage\eec4092057407e1a5092d8492648964e\redhat.java\jdt_ws',
level: 'info',
timestamp: '2022-02-24 09:05:17.077'
}
{
message: '[Error - 9:10:26 am] 24-Feb-2022, 9:10:26 am Unable to load IDecompiler class for jarFileContentProvider',
level: 'info',
timestamp: '2022-02-24 09:10:26.576'
}
{
message: '[Error - 9:16:10 am] 24-Feb-2022, 9:16:10 am BadLocationException\n' +
'null\n' +
'org.eclipse.jface.text.BadLocationException\r\n' +
'\tat org.eclipse.jface.text.TreeLineTracker.fail(TreeLineTracker.java:1054)\r\n' +
'\tat org.eclipse.jface.text.TreeLineTracker.lineByOffset(TreeLineTracker.java:268)\r\n' +
'\tat org.eclipse.jface.text.TreeLineTracker.getLineNumberOfOffset(TreeLineTracker.java:1122)\r\n' +
'\tat org.eclipse.jface.text.AbstractLineTracker.getLineNumberOfOffset(AbstractLineTracker.java:155)\r\n' +
'\tat org.eclipse.jface.text.AbstractDocument.getLineOfOffset(AbstractDocument.java:872)\r\n' +
'\tat org.eclipse.core.internal.filebuffers.SynchronizableDocument.getLineOfOffset(SynchronizableDocument.java:334)\r\n' +
'\tat org.eclipse.jdt.ls.core.internal.handlers.JsonRpcHelpers.toLine(JsonRpcHelpers.java:156)\r\n' +
'\tat org.eclipse.jdt.ls.core.internal.handlers.JsonRpcHelpers.toLine(JsonRpcHelpers.java:101)\r\n' +
'\tat org.eclipse.jdt.ls.core.internal.JDTUtils.toRange(JDTUtils.java:858)\r\n' +
'\tat org.eclipse.jdt.ls.core.internal.JDTUtils.toLocation(JDTUtils.java:757)\r\n' +
'\tat org.eclipse.jdt.ls.core.internal.JDTUtils.toLocation(JDTUtils.java:703)\r\n' +
'\tat org.eclipse.jdt.ls.core.internal.handlers.DocumentSymbolHandler.getRange(DocumentSymbolHandler.java:205)\r\n' +
'\tat org.eclipse.jdt.ls.core.internal.handlers.DocumentSymbolHandler.toDocumentSymbol(DocumentSymbolHandler.java:172)\r\n' +
'\tat org.eclipse.jdt.ls.core.internal.handlers.DocumentSymbolHandler.lambda$2(DocumentSymbolHandler.java:147)\r\n' +
'\tat java.base/java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)\r\n' +
'\tat java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Unknown Source)\r\n' +
'\tat java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source)\r\n' +
'\tat java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)\r\n' +
'\tat java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source)\r\n' +
'\tat java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source)\r\n' +
'\tat java.base/java.util.stream.ReferencePipeline.collect(Unknown Source)\r\n' +
'\tat org.eclipse.jdt.ls.core.internal.handlers.DocumentSymbolHandler.getHierarchicalOutline(DocumentSymbolHandler.java:147)\r\n' +
'\tat org.eclipse.jdt.ls.core.internal.handlers.DocumentSymbolHandler.documentSymbol(DocumentSymbolHandler.java:80)\r\n' +
'\tat org.eclipse.jdt.ls.core.internal.handlers.JDTLanguageServer.lambda$14(JDTLanguageServer.java:636)\r\n' +
'\tat org.eclipse.jdt.ls.core.internal.BaseJDTLanguageServer.lambda$0(BaseJDTLanguageServer.java:75)\r\n' +
'\tat java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(Unknown Source)\r\n' +
'\tat java.base/java.util.concurrent.CompletableFuture$Completion.exec(Unknown Source)\r\n' +
'\tat java.base/java.util.concurrent.ForkJoinTask.doExec(Unknown Source)\r\n' +
'\tat java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(Unknown Source)\r\n' +
'\tat java.base/java.util.concurrent.ForkJoinPool.scan(Unknown Source)\r\n' +
'\tat java.base/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source)\r\n' +
'\tat java.base/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source)\r\n',
level: 'info',
timestamp: '2022-02-24 09:16:10.461'
}
{
message: '[Error - 9:16:10 am] 24-Feb-2022, 9:16:10 am BadLocationException\n' +
'null\n' +
'org.eclipse.jface.text.BadLocationException\r\n' +
'\tat org.eclipse.jface.text.TreeLineTracker.fail(TreeLineTracker.java:1054)\r\n' +
'\tat org.eclipse.jface.text.TreeLineTracker.lineByOffset(TreeLineTracker.java:268)\r\n' +
'\tat org.eclipse.jface.text.TreeLineTracker.getLineNumberOfOffset(TreeLineTracker.java:1122)\r\n' +
'\tat org.eclipse.jface.text.AbstractLineTracker.getLineNumberOfOffset(AbstractLineTracker.java:155)\r\n' +
'\tat org.eclipse.jface.text.AbstractDocument.getLineOfOffset(AbstractDocument.java:872)\r\n' +
'\tat org.eclipse.core.internal.filebuffers.SynchronizableDocument.getLineOfOffset(SynchronizableDocument.java:334)\r\n' +
'\tat org.eclipse.jdt.ls.core.internal.handlers.JsonRpcHelpers.toLine(JsonRpcHelpers.java:156)\r\n' +
'\tat org.eclipse.jdt.ls.core.internal.handlers.JsonRpcHelpers.toLine(JsonRpcHelpers.java:101)\r\n' +
'\tat org.eclipse.jdt.ls.core.internal.JDTUtils.toRange(JDTUtils.java:858)\r\n' +
'\tat org.eclipse.jdt.ls.core.internal.JDTUtils.toLocation(JDTUtils.java:757)\r\n' +
'\tat org.eclipse.jdt.ls.core.internal.JDTUtils.toLocation(JDTUtils.java:703)\r\n' +
'\tat org.eclipse.jdt.ls.core.internal.handlers.DocumentSymbolHandler.getRange(DocumentSymbolHandler.java:205)\r\n' +
'\tat org.eclipse.jdt.ls.core.internal.handlers.DocumentSymbolHandler.toDocumentSymbol(DocumentSymbolHandler.java:172)\r\n' +
'\tat org.eclipse.jdt.ls.core.internal.handlers.DocumentSymbolHandler.lambda$4(DocumentSymbolHandler.java:188)\r\n' +
'\tat java.base/java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)\r\n' +
'\tat java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Unknown Source)\r\n' +
'\tat java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source)\r\n' +
'\tat java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)\r\n' +
'\tat java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source)\r\n' +
'\tat java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source)\r\n' +
'\tat java.base/java.util.stream.ReferencePipeline.collect(Unknown Source)\r\n' +
'\tat org.eclipse.jdt.ls.core.internal.handlers.DocumentSymbolHandler.toDocumentSymbol(DocumentSymbolHandler.java:190)\r\n' +
'\tat org.eclipse.jdt.ls.core.internal.handlers.DocumentSymbolHandler.lambda$2(DocumentSymbolHandler.java:147)\r\n' +
'\tat java.base/java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)\r\n' +
'\tat java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Unknown Source)\r\n' +
'\tat java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source)\r\n' +
'\tat java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)\r\n' +
'\tat java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source)\r\n' +
'\tat java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source)\r\n' +
'\tat java.base/java.util.stream.ReferencePipeline.collect(Unknown Source)\r\n' +
'\tat org.eclipse.jdt.ls.core.internal.handlers.DocumentSymbolHandler.getHierarchicalOutline(DocumentSymbolHandler.java:147)\r\n' +
'\tat org.eclipse.jdt.ls.core.internal.handlers.DocumentSymbolHandler.documentSymbol(DocumentSymbolHandler.java:80)\r\n' +
'\tat org.eclipse.jdt.ls.core.internal.handlers.JDTLanguageServer.lambda$14(JDTLanguageServer.java:636)\r\n' +
'\tat org.eclipse.jdt.ls.core.internal.BaseJDTLanguageServer.lambda$0(BaseJDTLanguageServer.java:75)\r\n' +
'\tat java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(Unknown Source)\r\n' +
'\tat java.base/java.util.concurrent.CompletableFuture$Completion.exec(Unknown Source)\r\n' +
'\tat java.base/java.util.concurrent.ForkJoinTask.doExec(Unknown Source)\r\n' +
'\tat java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(Unknown Source)\r\n' +
'\tat java.base/java.util.concurrent.ForkJoinPool.scan(Unknown Source)\r\n' +
'\tat java.base/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source)\r\n' +
'\tat java.base/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source)\r\n',
level: 'info',
timestamp: '2022-02-24 09:16:10.469'
}
{
message: "Failed to provide hover command Error: The request (id: 1436, method: 'java/findLinks') has been cancelled",
level: 'error',
timestamp: '2022-02-24 09:18:49.084'
}
{
message: 'The Language Support for Java server crashed and will restart.',
level: 'error',
timestamp: '2022-02-24 09:21:33.702'
}
{
message: '[Info - 9:21:33 am] Connection to server got closed. Server will restart.',
level: 'info',
timestamp: '2022-02-24 09:21:33.703'
}
{
message: 'The Language Support for Java server crashed and will restart.',
level: 'error',
timestamp: '2022-02-24 09:21:36.007'
}
{
message: '[Info - 9:21:36 am] Connection to server got closed. Server will restart.',
level: 'info',
timestamp: '2022-02-24 09:21:36.008'
}
{
message: 'The Language Support for Java server crashed and will restart.',
level: 'error',
timestamp: '2022-02-24 09:21:36.560'
}
{
message: '[Info - 9:21:36 am] Connection to server got closed. Server will restart.',
level: 'info',
timestamp: '2022-02-24 09:21:36.561'
}
{
message: 'The Language Support for Java server crashed and will restart.',
level: 'error',
timestamp: '2022-02-24 09:21:36.600'
}
{
message: '[Info - 9:21:36 am] Connection to server got closed. Server will restart.',
level: 'info',
timestamp: '2022-02-24 09:21:36.600'
}
{
message: 'The Language Support for Java server crashed 5 times in the last 3 minutes. The server will not be restarted.',
level: 'error',
timestamp: '2022-02-24 09:21:36.629'
}
{
message: '[Error - 9:21:36 am] Connection to server got closed. Server will not be restarted.',
level: 'info',
timestamp: '2022-02-24 09:21:36.630'
}
Thanks for your support,
buddywhitman
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
まず、提供された起動ログを使って Java language server が繰り返し再起動する現象を再現し、次に報告された Unable to load IDecompiler と BadLocationException の発生経路を JDT language server 内で追跡します。クラッシュの原因を特定し、報告されたセットアップでサーバーが繰り返し再起動しなくなったことを確認できれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- java, typescript, vscode
- 領域
- devtools
- issue の種類
- バグ
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 停滞
- 明瞭さ
- 説明が足りない
- 初心者へのやさしさ
- 25/100