You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
While storing the cache, a thread can get issues if there is not enough memory available.
Got a throwable from task eTConfig("XXX (uploaded)","QALD9 Test Multilingual","QA","STRONG_ENTITY_MATCH").
Task=ExperimentTask("eTConfig("XXX (uploaded)","QALD9 Test Multilingual","QA","STRONG_ENTITY_MATCH")") state=TERMINATED progress=100.0% of dataset with exception: java.lang.OutOfMemoryError: Java heap space
at java.io.ObjectOutputStream$HandleTable.growEntries(ObjectOutputStream.java:2347)
at java.io.ObjectOutputStream$HandleTable.assign(ObjectOutputStream.java:2276)
at java.io.ObjectOutputStream.writeString(ObjectOutputStream.java:1302)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1172)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
at org.aksw.gerbil.semantic.sameas.impl.cache.FileBasedCachingSameAsRetriever.performCacheStorage(FileBasedCachingSameAsRetriever.java:233)
at org.aksw.gerbil.semantic.sameas.impl.cache.FileBasedCachingSameAsRetriever.retrieveSameURIs(FileBasedCachingSameAsRetriever.java:158)
at org.aksw.gerbil.semantic.sameas.impl.AbstractSameAsRetrieverDecorator.addSameURIs(AbstractSameAsRetrieverDecorator.java:43)
at org.aksw.gerbil.execute.ExperimentTask.runExperiment(ExperimentTask.java:560)
at org.aksw.gerbil.execute.ExperimentTask.run(ExperimentTask.java:167)
at org.aksw.simba.topicmodeling.concurrent.workers.WorkerImpl.run(WorkerImpl.java:44)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
The main problem with the experiment failing is that the file-based cache is blocked by the dead thread since it didn't give back the Semaphore. In the running screen, it looks like the following:
Check why the file based retriever has issues when it simply has to write it's data to the disk.
It already seriliazes the objects one by one. A further improvement is possible by serializing them as Strings instead of objects. However, this may lead to quite some overhead without a big impact.
Problem Description
While storing the cache, a thread can get issues if there is not enough memory available.
The main problem with the experiment failing is that the file-based cache is blocked by the dead thread since it didn't give back the Semaphore. In the
running
screen, it looks like the following:Solutions
Get rid of the Semaphore and usesynchronize
for thread synchronizationThe text was updated successfully, but these errors were encountered: