Bug 578956 - Background Indexer Crash Recovery - java.lang.OutOfMemoryError: Java heap space (doesn't stop)
Summary: Background Indexer Crash Recovery - java.lang.OutOfMemoryError: Java heap spa...
Status: RESOLVED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: IDE (show other bugs)
Version: 4.22   Edit
Hardware: PC Mac OS X
: P3 blocker (vote)
Target Milestone: ---   Edit
Assignee: Platform-UI-Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords: needinfo
Depends on:
Blocks:
 
Reported: 2022-02-24 12:48 EST by Michael Gasche CLA
Modified: 2022-06-07 11:11 EDT (History)
2 users (show)

See Also:


Attachments
eclipse.log (232.76 KB, text/plain)
2022-02-24 14:03 EST, Michael Gasche CLA
no flags Details
Logfile after update (307.41 KB, text/plain)
2022-02-24 14:24 EST, Michael Gasche CLA
no flags Details
Screen (68.29 KB, image/png)
2022-02-24 14:41 EST, Michael Gasche CLA
no flags Details
Eclipse log 4.23 - Out of memory (331.26 KB, text/plain)
2022-02-24 17:13 EST, Michael Gasche CLA
no flags Details
Eclipse 4.23 Log, -Xmx4g (418.74 KB, text/plain)
2022-02-24 17:29 EST, Michael Gasche CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Gasche CLA 2022-02-24 12:48:29 EST
No matter what I configure in eclipse.ini (Xms, Xmn, Xmx, Xss), I get "Out of Memory". Before that, I had a massive crash creating huge macs OS dump files (blocking the whole system), which doesn't happen anymore now, but I still get the "Out of memory" error below. Eclipse was run with adoptopenjdk-13-openj9.jdk when the massive crash happened. I changed it to openjdk13, but this occurs again and again.

!ENTRY org.eclipse.jdt.core 4 4 2022-02-24 05:06:31.964
!MESSAGE Background Indexer Crash Recovery
!STACK 0
java.lang.OutOfMemoryError: Java heap space
        at org.eclipse.jdt.internal.core.index.DiskIndex.readStreamDocumentArray(DiskIndex.java:995)
        at org.eclipse.jdt.internal.core.index.DiskIndex.readCategoryTable(DiskIndex.java:733)
        at org.eclipse.jdt.internal.core.index.DiskIndex.mergeCategory(DiskIndex.java:483)
        at org.eclipse.jdt.internal.core.index.DiskIndex.mergeCategories(DiskIndex.java:475)
        at org.eclipse.jdt.internal.core.index.DiskIndex.mergeWith(DiskIndex.java:577)
        at org.eclipse.jdt.internal.core.index.Index.save(Index.java:225)
        at org.eclipse.jdt.internal.core.index.MetaIndex.save(MetaIndex.java:100)
        at org.eclipse.jdt.internal.core.search.indexing.IndexManager.saveMetaIndex(IndexManager.java:1238)
        at org.eclipse.jdt.internal.core.search.indexing.IndexManager.saveIndexes(IndexManager.java:1214)
        at org.eclipse.jdt.internal.core.search.indexing.IndexManager.notifyIdle(IndexManager.java:818)
        at org.eclipse.jdt.internal.core.search.processing.JobManager.run(JobManager.java:422)
        at java.base/java.lang.Thread.run(Thread.java:833)
Comment 1 Andrey Loskutov CLA 2022-02-24 13:04:01 EST
Could you please try latest 4.23 build (RC1) from https://download.eclipse.org/eclipse/downloads/drops4/I20220223-1800?

Especially interesting is the error log.
Comment 2 Michael Gasche CLA 2022-02-24 14:03:13 EST
Created attachment 288115 [details]
eclipse.log

Eclipse log file.
Comment 3 Andrey Loskutov CLA 2022-02-24 14:10:26 EST
(In reply to Michael Gasche from comment #2)
> Created attachment 288115 [details]
> eclipse.log
> 
> Eclipse log file.

That is from old Eclipse. Can you please attach from 4.23 I've mentioned above?
Comment 4 Michael Gasche CLA 2022-02-24 14:13:22 EST
I make an update right now through this update site:
https://download.eclipse.org/eclipse/updates/4.23-I-builds/

Give me a minute, then a new logfile is attached, ok?
Comment 5 Michael Gasche CLA 2022-02-24 14:24:17 EST
Created attachment 288116 [details]
Logfile after update
Comment 6 Michael Gasche CLA 2022-02-24 14:24:47 EST
I updated eclipse through the provided site, but it still says:
eclipse.buildId=4.22.0.I20211124-1800

Here's the new log file of the startup attached.
Comment 7 Andrey Loskutov CLA 2022-02-24 14:29:19 EST
(In reply to Michael Gasche from comment #6)
> I updated eclipse through the provided site, but it still says:
> eclipse.buildId=4.22.0.I20211124-1800

Was not a good ide to update. I meant just use SDK build from the page https://download.eclipse.org/eclipse/downloads/drops4/I20220223-1800

> Here's the new log file of the startup attached.

But there is no crash in this log?
Comment 8 Michael Gasche CLA 2022-02-24 14:33:19 EST
I haven't had yet a crash with this update! 

Sorry, I haven't scrolled down enough to see the full builds. I still can try 4.23.

I still can try this: eclipse-SDK-I20220223-1800-macosx-cocoa-x86_64.dmg. Interested in this?
Comment 9 Michael Gasche CLA 2022-02-24 14:41:47 EST
Created attachment 288117 [details]
Screen

It still occured when I exported eclipse preferences. See attachment. I try now 4.23.
Comment 10 Andrey Loskutov CLA 2022-02-24 14:45:04 EST
(In reply to Michael Gasche from comment #8)
> I still can try this: eclipse-SDK-I20220223-1800-macosx-cocoa-x86_64.dmg.
> Interested in this?

Yes, especially if the crash happens, please attach the log file from this new build.
Comment 11 Michael Gasche CLA 2022-02-24 14:48:47 EST
I will, it's always an awful task to change eclipse versions! All my plugins are gone. Meven projects aren't recognised and this:

java.lang.Exception
	at org.eclipse.ui.internal.ViewReference.createErrorPart(ViewReference.java:115)
	at org.eclipse.ui.internal.ViewReference.createPart(ViewReference.java:101)
	at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.createPart(CompatibilityPart.java:304)
	at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.create(CompatibilityPart.java:342)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
	at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:58)
	at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:995)
	at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:960)
	at org.eclipse.e4.core.internal.di.InjectorImpl.internalInject(InjectorImpl.java:140)
	at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:403)
	at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:330)
	at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:202)
	at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.createFromBundle(ReflectionContributionFactory.java:91)
	at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.doCreate(ReflectionContributionFactory.java:60)
	at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.create(ReflectionContributionFactory.java:42)
	at org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer.createWidget(ContributedPartRenderer.java:132)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createWidget(PartRenderingEngine.java:995)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:659)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$1.run(PartRenderingEngine.java:544)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:528)
	at org.eclipse.e4.ui.workbench.renderers.swt.ElementReferenceRenderer.createWidget(ElementReferenceRenderer.java:73)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createWidget(PartRenderingEngine.java:995)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:659)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:763)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:728)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:712)
	at org.eclipse.e4.ui.workbench.renderers.swt.StackRenderer.showTab(StackRenderer.java:1209)
	at org.eclipse.e4.ui.workbench.renderers.swt.LazyStackRenderer.postProcess(LazyStackRenderer.java:116)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:677)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:763)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:728)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:712)
	at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:72)
	at org.eclipse.e4.ui.workbench.renderers.swt.SashRenderer.processContents(SashRenderer.java:150)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:673)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:763)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:728)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:712)
	at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:72)
	at org.eclipse.e4.ui.workbench.renderers.swt.SashRenderer.processContents(SashRenderer.java:150)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:673)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:763)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:728)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:712)
	at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:72)
	at org.eclipse.e4.ui.workbench.renderers.swt.PerspectiveRenderer.processContents(PerspectiveRenderer.java:51)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:673)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:763)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:728)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:712)
	at org.eclipse.e4.ui.workbench.renderers.swt.PerspectiveStackRenderer.showTab(PerspectiveStackRenderer.java:82)
	at org.eclipse.e4.ui.workbench.renderers.swt.LazyStackRenderer.postProcess(LazyStackRenderer.java:116)
	at org.eclipse.e4.ui.workbench.renderers.swt.PerspectiveStackRenderer.postProcess(PerspectiveStackRenderer.java:64)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:677)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:763)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:728)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:712)
	at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:72)
	at org.eclipse.e4.ui.workbench.renderers.swt.SashRenderer.processContents(SashRenderer.java:150)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:673)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:763)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:728)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:712)
	at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:72)
	at org.eclipse.e4.ui.workbench.renderers.swt.WBWRenderer.processContents(WBWRenderer.java:658)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:673)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:763)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:728)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:712)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1083)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1046)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155)
	at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:644)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:551)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:156)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:152)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:136)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:401)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:659)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:596)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1467)
Comment 12 Michael Gasche CLA 2022-02-24 17:00:12 EST
I exported settings and software from 4.22 and imported it in 4.23; seems to work fine so far. From my side, bug could be closed.
Comment 13 Andrey Loskutov CLA 2022-02-24 17:09:04 EST
(In reply to Michael Gasche from comment #12)
> I exported settings and software from 4.22 and imported it in 4.23; seems to
> work fine so far. From my side, bug could be closed.

Any errors in the log, especially index related?
Comment 14 Michael Gasche CLA 2022-02-24 17:13:53 EST
Created attachment 288118 [details]
Eclipse log 4.23 - Out of memory

I was wrong, out of memory just happened again with 4.23. The log is attached (eclipse-4.23.log). Indexing again.
Comment 15 Michael Gasche CLA 2022-02-24 17:17:16 EST
PS: I can't work anymore. Every CTRL-Space (auto-completion) brings the out of memory pop-up-window error. It says I have to quit Eclipse.

If you don't mind: Do you have another solution beforehand? I cannot work anymore. Appreciated! Thanks.
Comment 16 Andrey Loskutov CLA 2022-02-24 17:18:52 EST
(In reply to Michael Gasche from comment #14)
> Created attachment 288118 [details]
> Eclipse log 4.23 - Out of memory
> 
> I was wrong, out of memory just happened again with 4.23. The log is
> attached (eclipse-4.23.log). Indexing again.

Thanks. How big is the max heap size?
What you can do is to go to Preferences / Java and trigger index rebuild.
If after that you would still see same problem, please disable parallel index on same preferences page and rebuild the index again. 

!ENTRY org.eclipse.jdt.core 4 4 2022-02-24 23:09:16.251
!MESSAGE Background Indexer Crash Recovery
!STACK 0
java.lang.OutOfMemoryError: Java heap space
	at org.eclipse.jdt.internal.core.index.DiskIndex.readStreamDocumentArray(DiskIndex.java:992)
	at org.eclipse.jdt.internal.core.index.DiskIndex.readCategoryTable(DiskIndex.java:730)
	at org.eclipse.jdt.internal.core.index.DiskIndex.mergeCategory(DiskIndex.java:485)
	at org.eclipse.jdt.internal.core.index.DiskIndex.mergeCategories(DiskIndex.java:477)
	at org.eclipse.jdt.internal.core.index.DiskIndex.mergeWith(DiskIndex.java:579)
	at org.eclipse.jdt.internal.core.index.Index.save(Index.java:230)
	at org.eclipse.jdt.internal.core.index.MetaIndex.save(MetaIndex.java:100)
	at org.eclipse.jdt.internal.core.search.indexing.IndexManager.saveMetaIndex(IndexManager.java:1248)
	at org.eclipse.jdt.internal.core.search.indexing.IndexManager.saveIndexes(IndexManager.java:1224)
	at org.eclipse.jdt.internal.core.search.indexing.IndexManager.notifyIdle(IndexManager.java:819)
	at org.eclipse.jdt.internal.core.search.processing.JobManager.run(JobManager.java:422)
	at java.base/java.lang.Thread.run(Thread.java:833)
Comment 17 Michael Gasche CLA 2022-02-24 17:20:51 EST
This is the eclipse.ini:

-startup
../Eclipse/plugins/org.eclipse.equinox.launcher_1.6.400.v20210924-0641.jar
--launcher.library
../Eclipse/plugins/org.eclipse.equinox.launcher.cocoa.macosx.x86_64_1.2.400.v20211117-0650
--launcher.defaultAction
openFile
--launcher.appendVmargs
--launcher.defaultAction
openFile
--launcher.appendVmargs
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vmargs
-Dosgi.requiredJavaVersion=11
-Dosgi.dataAreaRequiresExplicitInit=true
-Dorg.eclipse.swt.graphics.Resource.reportNonDisposed=true
--add-modules=ALL-SYSTEM
-Xdock:icon=../Resources/Eclipse.icns
-XstartOnFirstThread
-Dorg.eclipse.swt.internal.carbon.smallFonts
-Dosgi.requiredJavaVersion=11
-Dosgi.dataAreaRequiresExplicitInit=true
-Dorg.eclipse.swt.graphics.Resource.reportNonDisposed=true
--add-modules=ALL-SYSTEM
-Xdock:icon=../Resources/Eclipse.icns
-XstartOnFirstThread
-Dorg.eclipse.swt.internal.carbon.smallFonts
-Dosgi.requiredJavaVersion=11
-Xms256m
-Xmx2048m
--add-modules=ALL-SYSTEM
-Xdock:icon=../Resources/Eclipse.icns
-XstartOnFirstThread
-Dorg.eclipse.swt.internal.carbon.smallFonts
Comment 18 Andrey Loskutov CLA 2022-02-24 17:25:04 EST
(In reply to Michael Gasche from comment #17)
> This is the eclipse.ini:
> -Xmx2048m

Depending on how big your workspace is, that is pretty small heap today.
Can you set -Xmx4g at least?
Comment 19 Michael Gasche CLA 2022-02-24 17:29:41 EST
Created attachment 288119 [details]
Eclipse 4.23 Log, -Xmx4g

I configured to -Xmx4g and started eclipse and had the problem again. My machine has 16 GByte RAM.
Comment 20 Andrey Loskutov CLA 2022-02-24 17:31:53 EST
(In reply to Michael Gasche from comment #19)
> Created attachment 288119 [details]
> Eclipse 4.23 Log, -Xmx4g
> 
> I configured to -Xmx4g and started eclipse and had the problem again. My
> machine has 16 GByte RAM.

Have you tried to rebuild index, see comment 16?
Comment 21 Michael Gasche CLA 2022-02-24 17:44:02 EST
Very sorry, I missed that! At the moment it doesn't show up!!! Maybe it was all the time a corrupt index! I will observe. Thanks.