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

java.lang.OutOfMemoryError: Requested array size exceeds VM limit #21

Open
issararab opened this issue Jun 19, 2022 · 0 comments
Open

Comments

@issararab
Copy link

Hi,

I am trying to run COSS with a pretty large library (3.5M Peptides, where 1/3 are decoys).
When using a .msp file with a very small set it runs just normal. However, the above large set throws an error when trying to initialize some index list. Below is the error:

Starting COSS-V2
Rescoring with Percolator is set on by default in this version
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/C:/Users/LeIssar/Desktop/Software/COSS-2.0/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/Users/LeIssar/Desktop/Software/COSS-2.0/lib/logback-classic-1.1.6.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
2022-06-19 19:56:25 INFO MainConsoleController:213 - Configuring Spectrum Reader ....
Jun 19, 2022 7:57:13 PM com.compomics.coss.controller.ConfigSpecReaders dispatcher
SEVERE: null
java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Requested array size exceeds VM limit
at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191)
at com.compomics.coss.controller.ConfigSpecReaders.dispatcher(ConfigSpecReaders.java:171)
at com.compomics.coss.controller.ConfigSpecReaders.startConfig(ConfigSpecReaders.java:78)
at com.compomics.coss.controller.MainConsoleController.configReader(MainConsoleController.java:215)
at com.compomics.coss.controller.MainConsoleController.startRunning(MainConsoleController.java:108)
at com.compomics.main.ProjectMain.launch(ProjectMain.java:91)
at com.compomics.main.ProjectMain.access$000(ProjectMain.java:16)
at com.compomics.main.ProjectMain$1.run(ProjectMain.java:71)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: java.lang.OutOfMemoryError: Requested array size exceeds VM limit
at java.base/java.util.Arrays.copyOf(Arrays.java:3537)
at java.base/java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:229)
at java.base/java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:789)
at java.base/java.lang.StringBuilder.append(StringBuilder.java:246)
at com.compomics.ms2io.controller.BufferedRAF.getNextLine(BufferedRAF.java:141)
at com.compomics.ms2io.controller.BufferedRAF.getNextLine(BufferedRAF.java:98)
at com.compomics.ms2io.controller.Indexer.mspIndexer(Indexer.java:174)
at com.compomics.ms2io.controller.Indexer.generate(Indexer.java:71)
at com.compomics.coss.controller.ConfigSpecReaders$GetIndexList.call(ConfigSpecReaders.java:330)
at com.compomics.coss.controller.ConfigSpecReaders$GetIndexList.call(ConfigSpecReaders.java:309)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:833)

I tried to increase the heap size of the JVM but it doesn't seem to solve the problem.
Any suggestions?

Some env context:
I am running the search on a VM running Windows 10 with 64Gb of RAM. That is 3 times the size of your VM reported on the original paper. Also, I am running the software using the following command: java -jar COSS-2.0.jar

Your input is much appreciated.
Regards,
AI

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

No branches or pull requests

1 participant