Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The Java Language Server encountered an OutOfMemory error. Some language features may not work due to limited memory. #3779

Open
rohithiresheddi opened this issue Sep 26, 2024 · 1 comment

Comments

@rohithiresheddi
Copy link

Type: Bug

Hi Team,

Laguage Support for Java by Red Hat fails when .m2/repository directory is included as referenced library for the Java project.

Expected: No error.
Actual: VS Code becomes unresponsive and eventually plugin fails with OutOfMemory error.

Thanks

Extension version: 1.34.0
VS Code version: Code 1.93.1 (38c31bc77e0dd6ae88a4e9cc93428cc27a56ba40, 2024-09-11T17:20:05.685Z)
OS version: Darwin arm64 23.5.0
Modes:

System Info
Item Value
CPUs Apple M1 Pro (10 x 2400)
GPU Status 2d_canvas: enabled
canvas_oop_rasterization: enabled_on
direct_rendering_display_compositor: disabled_off_ok
gpu_compositing: enabled
multiple_raster_threads: enabled_on
opengl: enabled_on
rasterization: enabled
raw_draw: disabled_off_ok
skia_graphite: disabled_off
video_decode: enabled
video_encode: enabled
webgl: enabled
webgl2: enabled
webgpu: enabled
webnn: disabled_off
Load (avg) 39, 50, 56
Memory (System) 32.00GB (0.23GB free)
Process Argv --crash-reporter-id 3bd13f8b-038c-47ad-bb2e-22897dca9b90
Screen Reader no
VM 0%
A/B Experiments
vsliv368:30146709
vspor879:30202332
vspor708:30202333
vspor363:30204092
vscod805cf:30301675
binariesv615:30325510
vsaa593:30376534
py29gd2263:31024239
c4g48928:30535728
azure-dev_surveyone:30548225
962ge761:30959799
pythongtdpath:30769146
welcomedialogc:30910334
pythonnoceb:30805159
asynctok:30898717
pythonmypyd1:30879173
h48ei257:31000450
pythontbext0:30879054
accentitlementst:30995554
dsvsc016:30899300
dsvsc017:30899301
dsvsc018:30899302
cppperfnew:31000557
dsvsc020:30976470
pythonait:31006305
dsvsc021:30996838
jg8ic977:31013176
a69g1124:31058053
dvdeprecation:31068756
dwnewjupytercf:31046870
newcmakeconfigv2:31071590
impr_priority:31102340
nativerepl2:31139839
refactort:31108082
pythonrstrctxt:31112756
flighttreat:31134774
wkspc-onlycs-t:31132770
nativeloc2:31134642
wkspc-ranged-c:31125598
cf971741:31144450
pme_test_c:31118331
defaultse:31146405
ei213698:31121563
iacca1:31144502
5fd0e150:31146321

@rgrunber
Copy link
Member

rgrunber commented Sep 26, 2024

What is the size of your .m2/repository ? Also, do you have access to Java : Open Language Server Log File (from the command palette) to post any errors you find there ? It does seem to work, though it just takes a really long time (~2.5min) to get a response. Using an unmanaged project :

(I disabled shared indexing to better measure the final size of the index, and it was around 1.7GB.)
.vscode/settings.json

{
    "java.sharedIndexes.enabled": "off",
    "java.project.referencedLibraries": [
        "~/.m2/repository/**/*.jar"
    ],
}
$ du -sh ~/.m2/repository/
2.6G	/home/rgrunber/.m2/repository/
[Trace - 11:43:52] Received response 'workspace/symbol - (26)' in 152818ms.

I did occasionally notice this error :

[Error - 10:49:50] Sep. 26, 2024, 10:49:50 a.m. An internal error occurred during: "Update classpath Job".
null
java.lang.StackOverflowError
	at org.eclipse.jdt.internal.core.JavaModelCache.peekAtInfo(JavaModelCache.java:192)
	at org.eclipse.jdt.internal.core.JavaModelManager.removeInfoAndChildren(JavaModelManager.java:4313)
	at org.eclipse.jdt.internal.core.JavaElement.close(JavaElement.java:158)
	at org.eclipse.jdt.internal.core.ElementCache.close(ElementCache.java:59)
	at org.eclipse.jdt.internal.core.OverflowingLRUCache.privateRemoveEntry(OverflowingLRUCache.java:289)
	at org.eclipse.jdt.internal.core.OverflowingLRUCache.makeSpace(OverflowingLRUCache.java:189)
	at org.eclipse.jdt.internal.core.OverflowingLRUCache.setSpaceLimit(OverflowingLRUCache.java:384)
	at org.eclipse.jdt.internal.core.ElementCache.resetSpaceLimit(ElementCache.java:97)
	at org.eclipse.jdt.internal.core.JavaModelCache.removeInfo(JavaModelCache.java:285)
	at org.eclipse.jdt.internal.core.JavaModelCache.removeInfo(JavaModelCache.java:300)
	at org.eclipse.jdt.internal.core.JavaModelManager.removeInfoAndChildren(JavaModelManager.java:4327)
	at org.eclipse.jdt.internal.core.JavaElement.close(JavaElement.java:158)
	at org.eclipse.jdt.internal.core.JavaModelManager.closeChildren(JavaModelManager.java:4169)
	at org.eclipse.jdt.internal.core.JavaModelManager.removeInfoAndChildren(JavaModelManager.java:4325)
	at org.eclipse.jdt.internal.core.JavaElement.close(JavaElement.java:158)
	at org.eclipse.jdt.internal.core.JavaModelManager.closeChildren(JavaModelManager.java:4169)
	at org.eclipse.jdt.internal.core.JavaModelManager.removeInfoAndChildren(JavaModelManager.java:4325)
	at org.eclipse.jdt.internal.core.JavaElement.close(JavaElement.java:158)
	at org.eclipse.jdt.internal.core.ElementCache.close(ElementCache.java:59)
	at org.eclipse.jdt.internal.core.OverflowingLRUCache.privateRemoveEntry(OverflowingLRUCache.java:289)
	at org.eclipse.jdt.internal.core.OverflowingLRUCache.makeSpace(OverflowingLRUCache.java:189)
	at org.eclipse.jdt.internal.core.OverflowingLRUCache.setSpaceLimit(OverflowingLRUCache.java:384)
	at org.eclipse.jdt.internal.core.ElementCache.resetSpaceLimit(ElementCache.java:97)
	at org.eclipse.jdt.internal.core.JavaModelCache.removeInfo(JavaModelCache.java:285)
	at org.eclipse.jdt.internal.core.JavaModelCache.removeInfo(JavaModelCache.java:300)
	at org.eclipse.jdt.internal.core.JavaModelManager.removeInfoAndChildren(JavaModelManager.java:4327)
	at org.eclipse.jdt.internal.core.JavaElement.close(JavaElement.java:158)
	at org.eclipse.jdt.internal.core.JavaModelManager.closeChildren(JavaModelManager.java:4169)
	at org.eclipse.jdt.internal.core.JavaModelManager.removeInfoAndChildren(JavaModelManager.java:4325)
	at org.eclipse.jdt.internal.core.JavaElement.close(JavaElement.java:158)
	at org.eclipse.jdt.internal.core.JavaModelManager.closeChildren(JavaModelManager.java:4169)
	at org.eclipse.jdt.internal.core.JavaModelManager.removeInfoAndChildren(JavaModelManager.java:4325)
	at org.eclipse.jdt.internal.core.JavaElement.close(JavaElement.java:158)
	at org.eclipse.jdt.internal.core.ElementCache.close(ElementCache.java:59)
	at org.eclipse.jdt.internal.core.OverflowingLRUCache.privateRemoveEntry(OverflowingLRUCache.java:289)
	at org.eclipse.jdt.internal.core.OverflowingLRUCache.makeSpace(OverflowingLRUCache.java:189)
	at org.eclipse.jdt.internal.core.OverflowingLRUCache.setSpaceLimit(OverflowingLRUCache.java:384)
	at org.eclipse.jdt.internal.core.ElementCache.resetSpaceLimit(ElementCache.java:97)
	at org.eclipse.jdt.internal.core.JavaModelCache.removeInfo(JavaModelCache.java:285)
	at org.eclipse.jdt.internal.core.JavaModelCache.removeInfo(JavaModelCache.java:300)
	at org.eclipse.jdt.internal.core.JavaModelManager.removeInfoAndChildren(JavaModelManager.java:4327)
	at org.eclipse.jdt.internal.core.JavaElement.close(JavaElement.java:158)
	at org.eclipse.jdt.internal.core.JavaModelManager.closeChildren(JavaModelManager.java:4169)
	at org.eclipse.jdt.internal.core.JavaModelManager.removeInfoAndChildren(JavaModelManager.java:4325)
	at org.eclipse.jdt.internal.core.JavaElement.close(JavaElement.java:158)
	at org.eclipse.jdt.internal.core.JavaModelManager.closeChildren(JavaModelManager.java:4169)
	at org.eclipse.jdt.internal.core.JavaModelManager.removeInfoAndChildren(JavaModelManager.java:4325)
	at org.eclipse.jdt.internal.core.JavaElement.close(JavaElement.java:158)
	at org.eclipse.jdt.internal.core.ElementCache.close(ElementCache.java:59)
	at org.eclipse.jdt.internal.core.OverflowingLRUCache.privateRemoveEntry(OverflowingLRUCache.java:289)
	at org.eclipse.jdt.internal.core.OverflowingLRUCache.makeSpace(OverflowingLRUCache.java:189)
	at org.eclipse.jdt.internal.core.OverflowingLRUCache.setSpaceLimit(OverflowingLRUCache.java:384)
	at org.eclipse.jdt.internal.core.ElementCache.resetSpaceLimit(ElementCache.java:97)
	at org.eclipse.jdt.internal.core.JavaModelCache.removeInfo(JavaModelCache.java:285)
	at org.eclipse.jdt.internal.core.JavaModelCache.removeInfo(JavaModelCache.java:300)
	at org.eclipse.jdt.internal.core.JavaModelManager.removeInfoAndChildren(JavaModelManager.java:4327)
	at org.eclipse.jdt.internal.core.JavaElement.close(JavaElement.java:158)
	at org.eclipse.jdt.internal.core.JavaModelManager.closeChildren(JavaModelManager.java:4169)
	at org.eclipse.jdt.internal.core.JavaModelManager.removeInfoAndChildren(JavaModelManager.java:4325)
	at org.eclipse.jdt.internal.core.JavaElement.close(JavaElement.java:158)
	at org.eclipse.jdt.internal.core.JavaModelManager.closeChildren(JavaModelManager.java:4169)
	at org.eclipse.jdt.internal.core.JavaModelManager.removeInfoAndChildren(JavaModelManager.java:4325)
	at org.eclipse.jdt.internal.core.JavaElement.close(JavaElement.java:158)
	at org.eclipse.jdt.internal.core.ElementCache.close(ElementCache.java:59)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants