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

Opening files from folders with deep subfolders can be slow #83

Open
tudorache opened this issue Aug 1, 2014 · 3 comments
Open

Opening files from folders with deep subfolders can be slow #83

tudorache opened this issue Aug 1, 2014 · 3 comments
Labels
Type: Bug Indicates that Protege is not working as expected

Comments

@tudorache
Copy link
Member

Observation: The user tries tries to open a file, and Protege seems to freeze, although it is working hard.

What happens: Protege tries to find local imports in the subfolders of where the ontology file is located, and if they are deep, or have many files, it can take a very long time.

Possible culprit: the catalog implementation might be too greedy. At least it should not go into the hidden folders.

Possible solution: search only in the top level (or x levels), and then pop a dialog to the user asking if the search should be continued, or go to the Web to get the imports. The import search should not even be started if the ontology has no imports.

Report from user:

This turned out to be a peculiar bug loading files (File Open) where the user interface never comes back though there's apparently enough Protege running to send a "piss off" to the window manager when I try to kill the window.

I can get around the bug by copying the file I want to open by copying its contents to another file, starting protege, File SaveAs (an empty ontology) to the file I want to load, copy the other file back over the truncated file, accept Protege's offer to reload. As streamlined as this seems to be, I have the nagging suspicion that my life would be still better if I could nail down this bug.

I used jdb to examine the diff between 4.3 and 5.0 before and after loading (or attempting to) a vapid asdf.omn. but having source for neither, my observations are probably irrelevant:
4.3 kills a sleeping Keep-Alive-Timer thread and
creates a sleeping Image Animator 3 thread.
5.0 kills a waiting Image Fetcher 3 thread and
changes AWT-EventQueue-0 from waiting to running (walking?)

Top showed a couple threads chewing up 100% of their respective CPUs so I gdb'd the child thread. It was busy walking through a hillariously deep directory structure that appears to be bastard child
of Wine and Virtual Box. I saw it xstat'ing the hell out of a directory tree under:

/home/eric/.wine/dosdevices/z:/sys/dev/char/10:237/subsystem/tun/subsystem/network_latency/subsystem/rfkill/subsystem/network_throughput/subsystem/hpet/subsystem/vboxdrv/subsystem/vboxnetctl/subsystem/loop-control/subsystem/vboxnetctl/subsystem/network_throughput/subsystem/hpet/subsystem/rfkill/subsystem/loop-control/subsystem/vboxnetctl/subsystem/rfkill/subsystem/

noted by stopping and seeing xstats of:
tun/subsystem/ecryptfs/subsystem/vga_arbiter/subsystem/psaux/power/async
tun/subsystem/device-mapper/subsystem/device-mapper/subsystem/loop-control/dev
network_throughput/subsystem/psaux/subsystem/tun/subsystem/cpu_dma_latency/power/autosuspend_delay_ms

@tudorache tudorache added the bug label Aug 1, 2014
matthewhorridge added a commit that referenced this issue Aug 2, 2014
Prevents hidden folders from being scanned.  The chances of people
storing ontology documents in hidden folders is pretty remote (we
hope!).
@matthewhorridge
Copy link
Contributor

When an ontology is opened a catalog is generated (and a folder, and subfolders, searched) whether or not the ontology has imports. Tim (@stdotjohn) do you know if this can be done lazily?

@stdotjohn
Copy link
Member

I suspect that the cause of this problem may be different than what you
suspect here. This problem usually arises because one of the files that
is scanned is an xml (not OWL) file that has DTD information in it.
Many DTD servers will block a request for DTD information for a very
long time causing the freeze that is observed. If you replicate this
problem then this diagnosis is quickly verified by generating a thread
dump. At the top of one of the stacks (the AWT-thread) you will see it
waiting on a socket.

This problem is easily fixed by preventing DTD processing. There was a
similar bug not too long ago on the OWL api tracker and Ignazio fixed it.

I have not seen the catalog implementation get into any trouble other
than this - the I/O operations on file go pretty fast. On the other
hand I/O is much slower in a vm and this may be very significant for
very large directories. My diagnosis is also inconsistent with the idea
that Protege is working hard. Without knowing more about the user I
would need confirmation of this.

This could be very quickly settled if the user sends a thread dump so we
can pinpoint exactly what Protege is doing. This is a close to
guaranteed way to determine if you are fixing the correct issue.

-Timothy

On 08/01/2014 04:36 PM, Tania T. wrote:

Observation: The user tries tries to open a file, and Protege seems
to freeze, although it is working hard.

What happens: Protege tries to find local imports in the subfolders
of where the ontology file is located, and if they are deep, or have
many files, it can take a very long time.

Possible culprit: the catalog implementation might be too greedy. At
least it should not go into the hidden folders.

Possible solution: search only in the top level (or x levels), and
then pop a dialog to the user asking if the search should be
continued, or go to the Web to get the imports. The import search
should not even be started if the ontology has no imports.

Report from user:

This turned out to be a peculiar bug loading files (File Open) where
the user interface never comes back though there's apparently enough
Protege running to send a "piss off" to the window manager when I try
to kill the window.

I can get around the bug by copying the file I want to open by copying
its contents to another file, starting protege, File SaveAs (an empty
ontology) to the file I want to load, copy the other file back over
the truncated file, accept Protege's offer to reload. As streamlined
as this seems to be, I have the nagging suspicion that my life would
be still better if I could nail down this bug.

I used jdb to examine the diff between 4.3 and 5.0 before and after
loading (or attempting to) a vapid asdf.omn. but having source for
neither, my observations are probably irrelevant:
4.3 kills a sleeping Keep-Alive-Timer thread and
creates a sleeping Image Animator 3 thread.
5.0 kills a waiting Image Fetcher 3 thread and
changes AWT-EventQueue-0 from waiting to running (walking?)

Top showed a couple threads chewing up 100% of their respective CPUs
so I gdb'd the child thread. It was busy walking through a
hillariously deep directory structure that appears to be bastard child
of Wine and Virtual Box. I saw it xstat'ing the hell out of a
directory tree under:

/home/eric/.wine/dosdevices/z:/sys/dev/char/10:237/subsystem/tun/subsystem/network_latency/subsystem/rfkill/subsystem/network_throughput/subsystem/hpet/subsystem/vboxdrv/subsystem/vboxnetctl/subsystem/loop-control/subsystem/vboxnetctl/subsystem/network_throughput/subsystem/hpet/subsystem/rfkill/subsystem/loop-control/subsystem/vboxnetctl/subsystem/rfkill/subsystem/

noted by stopping and seeing xstats of:
tun/subsystem/ecryptfs/subsystem/vga_arbiter/subsystem/psaux/power/async
tun/subsystem/device-mapper/subsystem/device-mapper/subsystem/loop-control/dev
network_throughput/subsystem/psaux/subsystem/tun/subsystem/cpu_dma_latency/power/autosuspend_delay_ms


Reply to this email directly or view it on GitHub
#83.

@tudorache
Copy link
Member Author

I had a similar experience today, trying to open an owl file from the Desktop (Ubuntu 14.04, 8GB RAM)

I waited for a few minutes until a very small ontology was opened. See dump below.

In fairness, it turns out I had a subfolder with several hundred OWL files. The generated xml catalog had 8884 lines.

Can the catalogue be generated in a separate thread, especially if the OWL file does not have any imports?

Starting Protege Desktop (Version 5.0.0, Build = beta-13)
Platform:
    Java: JVM 1.7.0_65-b32 Memory: 4194M
    Language: en, Country: US
    Framework: Apache Software Foundation (1.5)
    OS: linux (3.13.0-35-generic)
    Processor: x86-64
Plugin: Protege Editor OWL (5.0.0.beta-13)
Plugin: OntoGraf (1.0.3)
Plugin: Protege SPARQL Plugin (1.0.0)
Plugin: OWLAPI RDF Library (1.0.2)
Plugin: Guava: Google Core Libraries for Java (17.0.0)
Plugin: DL Query (1.1.4)
Plugin: OWLAPI Distribution (3.5.0)
Plugin: OWLViz (4.1.4)
Plugin: Cajun Visualization Library (1.0.2)
Plugin: OWL Code Generation Plug-in (1.0.2)
Plugin: Explanation Workbench (1.0.0)
Plugin: Protege HermiT Integration (1.0.0)
Plugin: OWL Difference (4.1.1)
Plugin: OWL Difference Engine (1.0.1)
    OWLAPI RDF Library Plugin has no plugin.xml resource
    Guava: Google Core Libraries for Java Plugin has no plugin.xml resource
    OWLAPI Distribution Plugin has no plugin.xml resource
    Cajun Visualization Library Plugin has no plugin.xml resource
    OWL Difference Engine Plugin has no plugin.xml resource
Using OWL API version 3.5.0
Rebuilding entity indices...
... rebuilt in 6 ms
Setting active ontology to OntologyID(OntologyIRI(<http://www.semanticweb.org/ttania/ontologies/2014/8/untitled-ontology-57>))
Rebuilding entity indices...
... rebuilt in 2 ms
... active ontology changed
Cannot generate ontology catalog for ontology at http://www.semanticweb.org/ttania/ontologies/2014/8/untitled-ontology-57
Setting active ontology to OntologyID(OntologyIRI(<http://www.semanticweb.org/ttania/ontologies/2014/8/untitled-ontology-57>))
Rebuilding entity indices...
... rebuilt in 2 ms
... active ontology changed
Auto-update last performed: Mon Sep 08 11:26:17 PDT 2014
Auto-update has not been performed today.  Running it.
Using OWL API version 3.5.0
Rebuilding entity indices...
... rebuilt in 1 ms
Adding root folder: /home/ttania/Desktop ...
2014-09-12 15:24:09
Full thread dump OpenJDK 64-Bit Server VM (24.65-b04 mixed mode):

"TimerQueue" daemon prio=10 tid=0x00007fbeb42cb000 nid=0x13f9 waiting on condition [0x00007fbea871c000]
   java.lang.Thread.State: WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x00000006e71a6900> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)
    at java.util.concurrent.DelayQueue.take(DelayQueue.java:209)
    at javax.swing.TimerQueue.run(TimerQueue.java:171)
    at java.lang.Thread.run(Thread.java:745)

"AWT-EventQueue-0" prio=10 tid=0x00007fbeb427a000 nid=0x13f8 runnable [0x00007fbea881a000]
   java.lang.Thread.State: RUNNABLE
    at java.io.FileInputStream.read0(Native Method)
    at java.io.FileInputStream.read(FileInputStream.java:210)
    at com.sun.org.apache.xerces.internal.impl.XMLEntityManager$RewindableInputStream.read(XMLEntityManager.java:2873)
    at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:664)
    at com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:189)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:812)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:648)
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(SAXParserImpl.java:332)
    at javax.xml.parsers.SAXParser.parse(SAXParser.java:195)
    at org.protege.editor.owl.model.library.folder.XmlBaseAlgorithm.getSuggestions(XmlBaseAlgorithm.java:41)
    at org.protege.editor.owl.model.library.folder.FolderGroupManager.examineSingleFile(FolderGroupManager.java:301)
    at org.protege.editor.owl.model.library.folder.FolderGroupManager.examineDirectoryContents(FolderGroupManager.java:267)
    at org.protege.editor.owl.model.library.folder.FolderGroupManager.examineDirectoryContents(FolderGroupManager.java:272)
    at org.protege.editor.owl.model.library.folder.FolderGroupManager.update(FolderGroupManager.java:146)
    at org.protege.editor.owl.model.library.folder.FolderGroupManager.initializeCatalog(FolderGroupManager.java:167)
    at org.protege.editor.owl.model.library.OntologyCatalogManager.ensureCatalogExists(OntologyCatalogManager.java:125)
    at org.protege.editor.owl.model.library.OntologyCatalogManager.addFolder(OntologyCatalogManager.java:189)
    at org.protege.editor.owl.model.OWLModelManagerImpl.addRootFolder(OWLModelManagerImpl.java:336)
    at org.protege.editor.owl.model.OWLModelManagerImpl.loadOntologyFromPhysicalURI(OWLModelManagerImpl.java:293)
    at org.protege.editor.owl.OWLEditorKit.handleLoadFrom(OWLEditorKit.java:207)
    at org.protege.editor.owl.OWLEditorKit.handleLoadRequest(OWLEditorKit.java:201)
    at org.protege.editor.core.ProtegeManager.openAndSetupEditorKit(ProtegeManager.java:173)
    at org.protege.editor.core.ui.action.OpenAction.openInNewWorkspace(OpenAction.java:57)
    at org.protege.editor.core.ui.util.UIUtil.openRequest(UIUtil.java:216)
    at org.protege.editor.core.ui.action.OpenAction.actionPerformed(OpenAction.java:33)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
    at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
    at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:833)
    at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:877)
    at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289)
    at java.awt.Component.processMouseEvent(Component.java:6516)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3311)
    at java.awt.Component.processEvent(Component.java:6281)
    at java.awt.Container.processEvent(Container.java:2229)
    at java.awt.Component.dispatchEventImpl(Component.java:4872)
    at java.awt.Container.dispatchEventImpl(Container.java:2287)
    at java.awt.Component.dispatchEvent(Component.java:4698)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
    at java.awt.Container.dispatchEventImpl(Container.java:2273)
    at java.awt.Window.dispatchEventImpl(Window.java:2719)
    at java.awt.Component.dispatchEvent(Component.java:4698)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
    at java.awt.EventQueue.access$200(EventQueue.java:103)
    at java.awt.EventQueue$3.run(EventQueue.java:694)
    at java.awt.EventQueue$3.run(EventQueue.java:692)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
    at java.awt.EventQueue$4.run(EventQueue.java:708)
    at java.awt.EventQueue$4.run(EventQueue.java:706)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

"AWT-Shutdown" prio=10 tid=0x00007fbeb4278800 nid=0x13f7 in Object.wait() [0x00007fbea891e000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x00000006e71a6a50> (a java.lang.Object)
    at java.lang.Object.wait(Object.java:503)
    at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:296)
    - locked <0x00000006e71a6a50> (a java.lang.Object)
    at java.lang.Thread.run(Thread.java:745)

"AWT-XAWT" daemon prio=10 tid=0x00007fbeb409f800 nid=0x13f4 runnable [0x00007fbea9d68000]
   java.lang.Thread.State: RUNNABLE
    at sun.awt.X11.XToolkit.waitForEvents(Native Method)
    at sun.awt.X11.XToolkit.run(XToolkit.java:541)
    at sun.awt.X11.XToolkit.run(XToolkit.java:505)
    at java.lang.Thread.run(Thread.java:745)

"Java2D Disposer" daemon prio=10 tid=0x00007fbeb4083800 nid=0x13f3 in Object.wait() [0x00007fbebc10f000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x00000006e84477f0> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)
    - locked <0x00000006e84477f0> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151)
    at sun.java2d.Disposer.run(Disposer.java:145)
    at java.lang.Thread.run(Thread.java:745)

"Timer-0" daemon prio=10 tid=0x00007fbeb400b000 nid=0x13f2 in Object.wait() [0x00007fbebe543000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x00000006e74d6d60> (a java.util.TaskQueue)
    at java.util.TimerThread.mainLoop(Timer.java:552)
    - locked <0x00000006e74d6d60> (a java.util.TaskQueue)
    at java.util.TimerThread.run(Timer.java:505)

"DestroyJavaVM" prio=10 tid=0x00007fbef400a000 nid=0x13d0 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"OSGi Shutdown Thread" prio=10 tid=0x00007fbef433b800 nid=0x13f1 in Object.wait() [0x00007fbebe65a000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x00000006e75026d0> (a org.apache.felix.framework.util.ThreadGate)
    at org.apache.felix.framework.util.ThreadGate.await(ThreadGate.java:79)
    - locked <0x00000006e75026d0> (a org.apache.felix.framework.util.ThreadGate)
    at org.apache.felix.framework.Felix.waitForStop(Felix.java:998)
    at org.protege.osgi.framework.Launcher$2.run(Launcher.java:116)
    at java.lang.Thread.run(Thread.java:745)

"FelixStartLevel" daemon prio=10 tid=0x00007fbef4261800 nid=0x13dc in Object.wait() [0x00007fbebe77f000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x00000006e74c4010> (a java.util.ArrayList)
    at java.lang.Object.wait(Object.java:503)
    at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:279)
    - locked <0x00000006e74c4010> (a java.util.ArrayList)
    at java.lang.Thread.run(Thread.java:745)

"FelixDispatchQueue" prio=10 tid=0x00007fbef4212800 nid=0x13db in Object.wait() [0x00007fbebfffe000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x00000006e8212110> (a java.util.ArrayList)
    at java.lang.Object.wait(Object.java:503)
    at org.apache.felix.framework.util.EventDispatcher.run(EventDispatcher.java:1063)
    - locked <0x00000006e8212110> (a java.util.ArrayList)
    at org.apache.felix.framework.util.EventDispatcher.access$000(EventDispatcher.java:54)
    at org.apache.felix.framework.util.EventDispatcher$1.run(EventDispatcher.java:101)
    at java.lang.Thread.run(Thread.java:745)

"Service Thread" daemon prio=10 tid=0x00007fbef40a2000 nid=0x13d9 runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread1" daemon prio=10 tid=0x00007fbef409f800 nid=0x13d8 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread0" daemon prio=10 tid=0x00007fbef409c800 nid=0x13d7 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Signal Dispatcher" daemon prio=10 tid=0x00007fbef409a800 nid=0x13d6 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Finalizer" daemon prio=10 tid=0x00007fbef4077800 nid=0x13d5 in Object.wait() [0x00007fbee49c4000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x00000006e7554788> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)
    - locked <0x00000006e7554788> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151)
    at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:209)

"Reference Handler" daemon prio=10 tid=0x00007fbef4075800 nid=0x13d4 in Object.wait() [0x00007fbee4ac5000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x00000006e75543d8> (a java.lang.ref.Reference$Lock)
    at java.lang.Object.wait(Object.java:503)
    at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:133)
    - locked <0x00000006e75543d8> (a java.lang.ref.Reference$Lock)

"VM Thread" prio=10 tid=0x00007fbef4071000 nid=0x13d3 runnable 

"GC task thread#0 (ParallelGC)" prio=10 tid=0x00007fbef4020000 nid=0x13d1 runnable 

"GC task thread#1 (ParallelGC)" prio=10 tid=0x00007fbef4021800 nid=0x13d2 runnable 

"VM Periodic Task Thread" prio=10 tid=0x00007fbef40ac800 nid=0x13da waiting on condition 

JNI global references: 535

Heap
 PSYoungGen      total 254464K, used 117840K [0x00000007a2400000, 0x00000007b3b00000, 0x0000000800000000)
  eden space 246784K, 44% used [0x00000007a2400000,0x00000007a8fbc028,0x00000007b1500000)
  from space 7680K, 97% used [0x00000007b2000000,0x00000007b2758010,0x00000007b2780000)
  to   space 19456K, 0% used [0x00000007b2800000,0x00000007b2800000,0x00000007b3b00000)
 ParOldGen       total 84480K, used 26447K [0x00000006e6c00000, 0x00000006ebe80000, 0x00000007a2400000)
  object space 84480K, 31% used [0x00000006e6c00000,0x00000006e85d3c00,0x00000006ebe80000)
 PSPermGen       total 32256K, used 31862K [0x00000006dc600000, 0x00000006de580000, 0x00000006e6c00000)
  object space 32256K, 98% used [0x00000006dc600000,0x00000006de51dba8,0x00000006de580000)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Type: Bug Indicates that Protege is not working as expected
Projects
None yet
Development

No branches or pull requests

3 participants