Closed laeubi closed 1 year ago
I now started Eclipse with console enabled and found the following exception reported:
Error: failed to create JrtFileSystem from /usr/lib/jvm/java-9-openjdk-amd64/lib/jrt-fs.jar
java.io.FileNotFoundException: /usr/lib/jvm/java-9-openjdk-amd64/release (Datei oder Verzeichnis nicht gefunden)
at java.base/java.io.FileInputStream.open0(Native Method)
at java.base/java.io.FileInputStream.open(FileInputStream.java:216)
at java.base/java.io.FileInputStream.<init>(FileInputStream.java:157)
at java.base/java.io.FileReader.<init>(FileReader.java:75)
at org.eclipse.jdt.internal.compiler.util.Jdk.readJdkReleaseFile(JRTUtil.java:460)
at org.eclipse.jdt.internal.compiler.util.Jdk.lambda$0(JRTUtil.java:413)
at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1708)
at org.eclipse.jdt.internal.compiler.util.Jdk.<init>(JRTUtil.java:411)
at org.eclipse.jdt.internal.compiler.util.JRTUtil.getJrtSystem(JRTUtil.java:134)
at org.eclipse.jdt.internal.compiler.util.JRTUtil.walkModuleImage(JRTUtil.java:241)
at org.eclipse.jdt.internal.core.search.indexing.AddJrtToIndex.execute(AddJrtToIndex.java:267)
at org.eclipse.jdt.internal.core.search.processing.JobManager.indexerLoop(JobManager.java:514)
at java.base/java.lang.Thread.run(Thread.java:833)
Also there is
!ENTRY org.eclipse.jdt.core 4 4 2023-06-19 07:05:45.342
!MESSAGE Background Indexer Crash Recovery
!STACK 0
java.lang.NullPointerException: Cannot invoke "org.eclipse.jdt.internal.compiler.util.JrtFileSystem.walkModuleImage(org.eclipse.jdt.internal.compiler.util.JRTUtil$JrtFileVisitor, int)" because the return value of "org.eclipse.jdt.internal.compiler.util.JRTUtil.getJrtSystem(java.io.File, String)" is null
at org.eclipse.jdt.internal.compiler.util.JRTUtil.walkModuleImage(JRTUtil.java:241)
at org.eclipse.jdt.internal.core.search.indexing.AddJrtToIndex.execute(AddJrtToIndex.java:267)
at org.eclipse.jdt.internal.core.search.processing.JobManager.indexerLoop(JobManager.java:514)
at java.base/java.lang.Thread.run(Thread.java:833)
Exception in thread "Java indexing" java.lang.NullPointerException: Cannot invoke "org.eclipse.jdt.internal.compiler.util.JrtFileSystem.walkModuleImage(org.eclipse.jdt.internal.compiler.util.JRTUtil$JrtFileVisitor, int)" because the return value of "org.eclipse.jdt.internal.compiler.util.JRTUtil.getJrtSystem(java.io.File, String)" is null
at org.eclipse.jdt.internal.compiler.util.JRTUtil.walkModuleImage(JRTUtil.java:241)
at org.eclipse.jdt.internal.core.search.indexing.AddJrtToIndex.execute(AddJrtToIndex.java:267)
at org.eclipse.jdt.internal.core.search.processing.JobManager.indexerLoop(JobManager.java:514)
at java.base/java.lang.Thread.run(Thread.java:833)
@laeubi : could you please try new nightly build and check what is working / not working now, plus check error log?
I'm currently updated to Eclipse Java Development Tools 3.19.200.v20230620-1800
and performed some searches without a problem.
The error log now contains a usefull message:
eclipse.buildId=4.29.0.I20230620-1800
java.version=17.0.2
java.vendor=Oracle Corporation
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=de_DE
Command-line arguments: -data file:/opt/eclipse/platform-sdk/ws/ -os linux -ws gtk -arch x86_64
org.eclipse.jdt.core
Error
Wed Jun 21 09:14:14 CEST 2023
Error reading modules from /usr/lib/jvm/java-9-openjdk-amd64/lib/jrt-fs.jar
java.io.FileNotFoundException: /usr/lib/jvm/java-9-openjdk-amd64/release (Datei oder Verzeichnis nicht gefunden)
at java.base/java.io.FileInputStream.open0(Native Method)
at java.base/java.io.FileInputStream.open(FileInputStream.java:216)
at java.base/java.io.FileInputStream.<init>(FileInputStream.java:157)
at java.base/java.io.FileReader.<init>(FileReader.java:75)
at org.eclipse.jdt.internal.compiler.util.Jdk.readJdkReleaseFile(JRTUtil.java:495)
at org.eclipse.jdt.internal.compiler.util.Jdk.lambda$0(JRTUtil.java:448)
at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1708)
at org.eclipse.jdt.internal.compiler.util.Jdk.<init>(JRTUtil.java:446)
at org.eclipse.jdt.internal.compiler.util.JRTUtil.getJrtSystem(JRTUtil.java:145)
at org.eclipse.jdt.internal.compiler.util.JRTUtil.walkModuleImage(JRTUtil.java:240)
at org.eclipse.jdt.internal.core.JavaProject.loadModulesInJimage(JavaProject.java:983)
at org.eclipse.jdt.internal.core.JavaProject.computePackageFragmentRoots(JavaProject.java:782)
at org.eclipse.jdt.internal.core.JavaProject.computePackageFragmentRoots(JavaProject.java:1103)
at org.eclipse.jdt.internal.core.JavaProject.computePackageFragmentRoots(JavaProject.java:1048)
at org.eclipse.jdt.internal.core.JavaProject.computePackageFragmentRoots(JavaProject.java:1025)
at org.eclipse.jdt.internal.core.JavaProject.buildStructure(JavaProject.java:538)
at org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:266)
at org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:597)
at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:328)
at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:314)
at org.eclipse.jdt.internal.core.JavaElement.getChildren(JavaElement.java:269)
at org.eclipse.jdt.internal.core.JavaProject.getPackageFragmentRoots(JavaProject.java:2384)
at org.eclipse.jdt.internal.core.util.HandleFactory.getPkgFragmentRoot(HandleFactory.java:394)
at org.eclipse.jdt.internal.core.util.HandleFactory.createOpenable(HandleFactory.java:138)
at org.eclipse.jdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:1498)
at org.eclipse.jdt.internal.core.search.JavaSearchParticipant.locateMatches(JavaSearchParticipant.java:135)
at org.eclipse.jdt.internal.core.search.BasicSearchEngine.findMatches(BasicSearchEngine.java:251)
at org.eclipse.jdt.internal.core.search.BasicSearchEngine.search(BasicSearchEngine.java:602)
at org.eclipse.jdt.core.search.SearchEngine.search(SearchEngine.java:670)
at org.eclipse.jdt.internal.ui.search.JavaSearchQuery.run(JavaSearchQuery.java:178)
at org.eclipse.search2.internal.ui.InternalSearchUI$InternalSearchJob.run(InternalSearchUI.java:94)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
and also
eclipse.buildId=4.29.0.I20230620-1800
java.version=17.0.2
java.vendor=Oracle Corporation
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=de_DE
Command-line arguments: -data file:/opt/eclipse/platform-sdk/ws/ -os linux -ws gtk -arch x86_64
org.eclipse.jdt.core
Error
Wed Jun 21 09:13:13 CEST 2023
Failed to index /usr/lib/jvm/java-9-openjdk-amd64/lib/jrt-fs.jar
java.io.FileNotFoundException: /usr/lib/jvm/java-9-openjdk-amd64/release (Datei oder Verzeichnis nicht gefunden)
at java.base/java.io.FileInputStream.open0(Native Method)
at java.base/java.io.FileInputStream.open(FileInputStream.java:216)
at java.base/java.io.FileInputStream.<init>(FileInputStream.java:157)
at java.base/java.io.FileReader.<init>(FileReader.java:75)
at org.eclipse.jdt.internal.compiler.util.Jdk.readJdkReleaseFile(JRTUtil.java:495)
at org.eclipse.jdt.internal.compiler.util.Jdk.lambda$0(JRTUtil.java:448)
at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1708)
at org.eclipse.jdt.internal.compiler.util.Jdk.<init>(JRTUtil.java:446)
at org.eclipse.jdt.internal.compiler.util.JRTUtil.getJrtSystem(JRTUtil.java:145)
at org.eclipse.jdt.internal.compiler.util.JRTUtil.walkModuleImage(JRTUtil.java:240)
at org.eclipse.jdt.internal.core.search.indexing.AddJrtToIndex.execute(AddJrtToIndex.java:267)
at org.eclipse.jdt.internal.core.search.processing.JobManager.indexerLoop(JobManager.java:514)
at java.base/java.lang.Thread.run(Thread.java:833)
I have a build that was last run ~3 weeks ago and went from passing to failing (see logs) with various Exception in thread "Java indexing" java.lang.OutOfMemoryError: Java heap space
. They vary quite a bit but most are of the form :
2023-07-06T15:48:21.9694819Z ##[error]Exception in thread "Java indexing" java.lang.OutOfMemoryError: Java heap space
2023-07-06T15:48:21.9703608Z at jdk.internal.jimage.BasicImageReader.getBufferBytes(BasicImageReader.java:356)
2023-07-06T15:48:21.9704193Z at jdk.internal.jimage.BasicImageReader.getResource(BasicImageReader.java:412)
2023-07-06T15:48:21.9704713Z at jdk.internal.jimage.ImageReader$SharedImageReader.getResource(ImageReader.java:569)
2023-07-06T15:48:21.9705210Z at jdk.internal.jimage.ImageReader.getResource(ImageReader.java:109)
2023-07-06T15:48:21.9705970Z at jdk.internal.jrtfs.SystemImage$1.getResource(SystemImage.java:69)
2023-07-06T15:48:21.9706445Z at jdk.internal.jrtfs.JrtFileSystem.getFileContent(JrtFileSystem.java:250)
2023-07-06T15:48:21.9706938Z at jdk.internal.jrtfs.JrtFileSystem.newByteChannel(JrtFileSystem.java:343)
2023-07-06T15:48:21.9707413Z at jdk.internal.jrtfs.JrtPath.newByteChannel(JrtPath.java:702)
2023-07-06T15:48:21.9707944Z at jdk.internal.jrtfs.JrtFileSystemProvider.newByteChannel(JrtFileSystemProvider.java:305)
2023-07-06T15:48:21.9708449Z at java.base/java.nio.file.Files.newByteChannel(Files.java:380)
2023-07-06T15:48:21.9708849Z at java.base/java.nio.file.Files.newByteChannel(Files.java:432)
2023-07-06T15:48:21.9709246Z at java.base/java.nio.file.Files.readAllBytes(Files.java:3288)
2023-07-06T15:48:21.9709724Z at org.eclipse.jdt.internal.compiler.util.JRTUtil.safeReadBytes(JRTUtil.java:323)
2023-07-06T15:48:21.9710302Z at org.eclipse.jdt.internal.compiler.util.JrtFileSystem.lambda$1(JRTUtil.java:669)
2023-07-06T15:48:21.9710883Z at org.eclipse.jdt.internal.compiler.util.JrtFileSystem$$Lambda$333/0x0000000801494460.apply(Unknown Source)
2023-07-06T15:48:21.9711477Z at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1708)
2023-07-06T15:48:21.9712085Z at org.eclipse.jdt.internal.compiler.util.JrtFileSystem.getFileBytes(JRTUtil.java:667)
2023-07-06T15:48:21.9712742Z at org.eclipse.jdt.internal.compiler.util.JrtFileSystem.getClassfileContent(JRTUtil.java:648)
2023-07-06T15:48:21.9713414Z at org.eclipse.jdt.internal.compiler.util.JRTUtil.getClassfileContent(JRTUtil.java:268)
2023-07-06T15:48:21.9714281Z at org.eclipse.jdt.internal.core.search.indexing.AddJrtToIndex$JrtIndexer.visitFile(AddJrtToIndex.java:140)
2023-07-06T15:48:21.9714951Z at org.eclipse.jdt.internal.core.search.indexing.AddJrtToIndex$JrtTraverser.visitFile(AddJrtToIndex.java:1)
2023-07-06T15:48:21.9715565Z at org.eclipse.jdt.internal.compiler.util.JrtFileSystem$2.visitFile(JRTUtil.java:781)
2023-07-06T15:48:21.9716113Z at org.eclipse.jdt.internal.compiler.util.JrtFileSystem$2.visitFile(JRTUtil.java:1)
2023-07-06T15:48:21.9716565Z at java.base/java.nio.file.Files.walkFileTree(Files.java:2811)
2023-07-06T15:48:21.9716958Z at java.base/java.nio.file.Files.walkFileTree(Files.java:2882)
2023-07-06T15:48:21.9717482Z at org.eclipse.jdt.internal.compiler.util.JrtFileSystem.walkModuleImage(JRTUtil.java:750)
2023-07-06T15:48:21.9718112Z at org.eclipse.jdt.internal.compiler.util.JRTUtil.walkModuleImage(JRTUtil.java:244)
2023-07-06T15:48:21.9718742Z at org.eclipse.jdt.internal.core.search.indexing.AddJrtToIndex.execute(AddJrtToIndex.java:267)
2023-07-06T15:48:21.9719422Z at org.eclipse.jdt.internal.core.search.processing.JobManager.indexerLoop(JobManager.java:514)
2023-07-06T15:48:21.9720081Z at org.eclipse.jdt.internal.core.search.processing.JobManager$$Lambda$159/0x000000080126a240.run(Unknown Source)
2023-07-06T15:48:21.9720552Z at java.base/java.lang.Thread.run(Thread.java:833)
Is there anything in the past little while that may have caused this ?
Update: Sorry for the noise, I'm not sure anymore if this is even related, but the timing and part of the codebase seemed suspicious. Basically the Java indexing thread has started to run out of memory when importing Maven projects (via. m2e) and I can't figure out the cause.
Update 2: I think my issue is related to https://github.com/eclipse-jdt/eclipse.jdt.debug/issues/230 . I narrowed down the OOM to that commit. It's also affected by the number/type of JDKs one has installed on the system.
I encountered this when trying to perform a search for a reference on
https://github.com/eclipse-equinox/p2/blob/98e45d63f909561b8d85c21a533fe3e51bfc70a5/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/Activator.java#L55
in the Eclipse-SDK-IDE workspace: https://github.com/eclipse-platform/.github/blob/main/CONTRIBUTING.md#create-an-eclipse-development-environment