-
Notifications
You must be signed in to change notification settings - Fork 1
Description
Dialogue box hangs randomly.
Tom Friese
8 Nov 2023
Can you include a picture of whats happening in Protege at that moment? Or even better: Can you post the protege-log so I can have a look at it please? (Log can be found on windows under "C:\Users\USERNAME.Protege\logs")
Ida Sri Rejeki Siahaan
8 Nov 2023
Please see the log on evee-window-vm. As I wrote before, it was random and it happened several times with different tasks. The last issue was today around 13:40ish.
Tom Friese
8 Nov 2023
Thanks, that time-stamp helps, I'll get the log and have a look at it.
Ida Sri Rejeki Siahaan
8 Nov 2023
Thanks and sorry for not being able to be more precise.
Tom Friese
8 Nov 2023
Thats fine, I can work with that, thank you 😄
Tom Friese
7 Feb 2024
The bug is due to a memory leak when using the proof services. We previously already noticed that we sometimes get a "GC Overhead limit exceeded" error when using the proof services during a longer Protege session or when proving specific entailments. For some time the memory bug was not reproducable on our local machines, thats why we thought it was gone.
On the windows-testing VM, we currently have 2 versions of Protege: 5.6.3 (most recent stable version of Protege at the time of writing) and 5.5.0. On the desktop, I've created a slightly changed variant of the run-scripts of each Protege version. The scripts simply start Protege with a restricted memory in order to reliably (and faster) reproduce the memory errors.
For Protege 5.6.3 we are restricting the memory to 250MB in total and for Protege 5.5.0 we are rstricting the memory to 100MB in total (both versions have different memory requirements due to additional plugins installed and possibly some changed memory requirements between Protege versions). In both cases Protege has about 50MB of Memory left after loading the Pizza ontology and starting the reasoner.
In either version, we can relaibly reproduce a memory error by doing the following:
Start Protege via the script
Start the Hermit reasoner
Try to explain "VegetarianPizza1 EquivalentTo VegetarianPizza2" with the proof service "Detailed Proof (LETHE)"
In the 5.6.3 version we get the error "java.lang.OutOfMemoryError: Java heap space" while in the 5.5.0 version we get the error "java.lang.OutOfMemoryError: GC overhead limit exceeded".
Tom Friese
9 months ago
Below I collect some information I found when playing around with the profiler (I found these in an old todo-file of mine and forgot to mention them here earlier):
Running the profiler itself will drastically increase the time it takes for the memory-error to occur. Therefore, the best way to check if the error is still there is by simply running protege 5.5.0 and doing the following i) Start Protégé and make sure all proof-services except for "Detailed Proof" have been turned OFF ii) Load the pizza ontology and start HermiT iii) Explain "VegetarianPizza1 EquivalentTo VegetarianPizza2" Using these steps, I was able to generate the error within a few minutes, whereas running the profiler took considerably longer.
According to profiler, when a crash occurrs, most instances of objects seem to be of the class "uk.ac.man.cs.lethe.internal.dl.forgetting.direct.ConceptClause" and "uk.ac.man.cs.lethe.internal.dl.forgetting.direct.Derivation"
At some point we also discussed implementing a parameter that limits the number of ojbects of the class "ConceptClause" that should be kept in the memory.
