redhat-developer / redhat-developer/vscode-java
Language server reports OOM for Java heap space while switching local git branch
オープン
まだ誰も着手していません。
ls-error/crash
- 主要言語
- TypeScript
- スター
- 2.3k
- フォーク
- 546
- 平均マージ
- 20時間 1分
- マージ済み PR(30日)
- 11
説明
Use VS Code to develop eclipse.jdt.ls itself, and switch local branch to a remote PR branch, language server reports OOM exception.
!ENTRY org.eclipse.jdt.ls.core 1 0 2022-07-19 13:28:12.066
!MESSAGE >> workspace/didChangeWatchedFiles
!ENTRY org.eclipse.jdt.core 4 4 2022-07-19 13:28:25.648
!MESSAGE Background Indexer Crash Recovery
!STACK 0
java.lang.OutOfMemoryError: Java heap space
at org.eclipse.jdt.internal.compiler.util.HashtableOfObject.<init>(HashtableOfObject.java:56)
at org.eclipse.jdt.internal.compiler.util.HashtableOfObject.rehash(HashtableOfObject.java:184)
at org.eclipse.jdt.internal.compiler.util.HashtableOfObject.putUnsafely(HashtableOfObject.java:157)
at org.eclipse.jdt.internal.core.index.DiskIndex.copyQueryResults(DiskIndex.java:383)
at org.eclipse.jdt.internal.core.index.DiskIndex.mergeWith(DiskIndex.java:570)
at org.eclipse.jdt.internal.core.index.Index.save(Index.java:230)
at org.eclipse.jdt.internal.core.search.indexing.IndexManager.saveIndex(IndexManager.java:1150)
at org.eclipse.jdt.internal.core.search.indexing.AddJrtToIndex.execute(AddJrtToIndex.java:274)
at org.eclipse.jdt.internal.core.search.processing.JobManager.run(JobManager.java:445)
at java.base/java.lang.Thread.run(Unknown Source)
!ENTRY org.eclipse.jdt.ls.core 1 0 2022-07-19 13:28:30.506
!MESSAGE >> workspace/executeCommand vscode.java.test.findTestTypesAndMethods
!ENTRY org.eclipse.jdt.ls.core 1 0 2022-07-19 13:28:30.508
!MESSAGE >> workspace/didChangeWatchedFiles
!ENTRY org.eclipse.jdt.ls.core 1 0 2022-07-19 13:28:33.420
!MESSAGE >> workspace/executeCommand vscode.java.test.findTestTypesAndMethods
!ENTRY org.eclipse.jdt.ls.core 1 0 2022-07-19 13:28:33.423
!MESSAGE >> workspace/didChangeWatchedFiles
!ENTRY org.eclipse.jdt.ls.core 1 0 2022-07-19 13:28:33.652
!MESSAGE >> workspace/didChangeWatchedFiles
!ENTRY org.eclipse.jdt.ls.core 1 0 2022-07-19 13:28:33.945
!MESSAGE >> workspace/didChangeWatchedFiles
!ENTRY org.eclipse.jdt.ls.core 1 0 2022-07-19 13:28:33.964
!MESSAGE >> workspace/didChangeWatchedFiles
!ENTRY org.eclipse.jdt.ls.core 1 0 2022-07-19 13:28:33.997
!MESSAGE >> workspace/didChangeWatchedFiles
!ENTRY org.eclipse.jdt.ls.core 1 0 2022-07-19 13:28:34.145
!MESSAGE >> workspace/didChangeWatchedFiles
!ENTRY org.eclipse.jdt.ls.core 1 0 2022-07-19 13:28:34.269
!MESSAGE >> workspace/didChangeWatchedFiles
!ENTRY org.eclipse.jdt.ls.core 1 0 2022-07-19 13:28:34.339
!MESSAGE >> workspace/didChangeWatchedFiles
!ENTRY org.eclipse.jdt.ls.core 1 0 2022-07-19 13:28:34.444
!MESSAGE >> workspace/didChangeWatchedFiles
!ENTRY org.eclipse.jdt.ls.core 1 0 2022-07-19 13:28:34.592
!MESSAGE >> workspace/executeCommand vscode.java.test.findTestTypesAndMethods
!ENTRY org.eclipse.jdt.ls.core 1 0 2022-07-19 13:28:34.596
!MESSAGE >> workspace/didChangeWatchedFiles
!ENTRY org.eclipse.jdt.ls.core 1 0 2022-07-19 13:28:34.664
!MESSAGE >> workspace/executeCommand vscode.java.test.findTestTypesAndMethods
!ENTRY org.eclipse.jdt.ls.core 1 0 2022-07-19 13:28:34.665
!MESSAGE >> document/codeAction
!ENTRY org.eclipse.jdt.ls.core 1 0 2022-07-19 13:28:34.668
!MESSAGE >> document/codeAction
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
VS Code で、ローカルブランチをリモート PR ブランチに切り替えて問題を再現し、その後、workspace/didChangeWatchedFiles のアクティビティと、DiskIndex、Index、AddJrtToIndex を経由して報告された JDT のインデックス作成スタックトレースを調査します。ブランチの切り替えによって Java heap space エラーが発生しなくなれば完了です。issue では、実行または編集するテストファイルやソースファイルは指定されていません。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- java, vscode
- 領域
- devtools, tooling
- issue の種類
- バグ
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 停滞
- 明瞭さ
- 説明が足りない
- 初心者へのやさしさ
- 30/100