Update .pprg from 4.3.1 to 5.05 fails

Post Reply
colinfrewen
Posts: 67
Joined: 10 Dec 2013, 01:22
Location: Australia

HI,

WE have a pprj file that fails the update. WE have processed on Windows 10, 64, Windows 7,10 32. It either generates no process and freezes on apply or it creates a number of java heap memory or garbage error messages.

The systems we are running this on has 16gb memory and runs dual i7's and we have upped the standard memory allocation in Protoge and java. We are running on latest jvm although have tried on past three versions along with bundled jvm.

Question: As there is no error logging is there something we have done to our pprj that may cause this behaviour. Is their an error checking process we can follow?

Regards
Colin
User avatar
neil.walsh
Posts: 459
Joined: 16 Feb 2009, 13:45
Contact:

Hi Colin,

I assume you mean the EUP update that is applied from the Essential Update tab.

Can you provide some details on the steps you take to perform the upgrade?

Also, you can check the Tomcat and Protege logs to see if there's anything shown in there. You'll find both sets of logs inside the respective install locations. If you post the logs on here, we'll take a look.

Thanks

Neil
colinfrewen
Posts: 67
Joined: 10 Dec 2013, 01:22
Location: Australia

Hi Neil,

Yes that is correct, it is the EUP upgrade. We are also having an issue with publishing to the report server and we are wondering if this could be related.

We are running 16gb memory on 64b machine. The log that I have uploaded only gets generated every other time, normally it just hangs.

Could it be one of the mods we have made to the ontology. Our pprj file is around 50mb.

Appreciated
Colin

Code: Select all

2016.07.08 16:16:05.228 AEST INFO: Load time for file:\F:\TestFiles\woolworthsdev.pprj = 32 sec (project) + 6 sec (ui) -- ProjectManager$3.run()
2016.07.08 16:34:03.855 AEST FINE: Exception caught -- java.lang.OutOfMemoryError: Java heap space
	at javax.swing.table.AbstractTableModel.fireTableCellUpdated(Unknown Source)
	at TGViztab.MySlotsTableModel.setValueAt(MySlotsTableModel.java:181)
	at TGViztab.MySlotsTableModel.<init>(MySlotsTableModel.java:103)
	at TGViztab.TGVizTab.updateSlotsTableModel(TGVizTab.java:816)
	at TGViztab.MyFrameListener.ownSlotValueChanged(MyFrameListener.java:87)
	at edu.stanford.smi.protege.model.framestore.EventDispatchFrameStore.dispatchFrameEvent(Unknown Source)
	at edu.stanford.smi.protege.model.framestore.EventDispatchFrameStore.dispatchEvent(Unknown Source)
	at edu.stanford.smi.protege.model.framestore.EventDispatchFrameStore.dispatchEvents(Unknown Source)
	at edu.stanford.smi.protege.model.framestore.EventDispatchFrameStore.dispatchEvents(Unknown Source)
	at edu.stanford.smi.protege.model.framestore.EventDispatchFrameStore.dispatchEvents(Unknown Source)
	at edu.stanford.smi.protege.model.framestore.EventDispatchFrameStore.removeDirectType(Unknown Source)
	at edu.stanford.smi.protege.model.framestore.undo.RemoveDirectTypeCommand.doIt(Unknown Source)
	at edu.stanford.smi.protege.model.framestore.undo.UndoFrameStore.simpleCommandExecute(Unknown Source)
	at edu.stanford.smi.protege.model.framestore.undo.UndoFrameStore.execute(Unknown Source)
	at edu.stanford.smi.protege.model.framestore.undo.UndoFrameStore.removeDirectType(Unknown Source)
	at edu.stanford.smi.protege.model.framestore.ArgumentCheckingFrameStore.removeDirectType(Unknown Source)
	at edu.stanford.smi.protege.model.framestore.ChangeMonitorFrameStore.removeDirectType(Unknown Source)
	at edu.stanford.smi.protege.model.framestore.FrameStoreAdapter.removeDirectType(Unknown Source)
	at edu.stanford.smi.protege.model.framestore.FrameStoreAdapter.removeDirectType(Unknown Source)
	at edu.stanford.smi.protege.model.framestore.FrameStoreAdapter.removeDirectType(Unknown Source)
	at edu.stanford.smi.protege.model.DefaultKnowledgeBase.removeDirectTypes(Unknown Source)
	at edu.stanford.smi.protege.model.DefaultKnowledgeBase.setDirectTypes(Unknown Source)
	at edu.stanford.smi.protege.model.DefaultKnowledgeBase.setDirectType(Unknown Source)
	at edu.stanford.smi.protege.model.DefaultInstance.setDirectType(Unknown Source)
	at sun.reflect.GeneratedMethodAccessor74.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.python.core.PyReflectedFunction.__call__(Unknown Source)
	at org.python.core.PyMethod.__call__(Unknown Source)
	at org.python.core.PyObject.__call__(Unknown Source)
	at org.python.core.PyInstance.invoke(Unknown Source)
	at org.python.pycode._pyx1229.migrateEIPSlot$1(<unknown>:7)

2016.07.08 16:34:10.575 AEST WARNING: Exception caught java.lang.OutOfMemoryError: Java heap space -- EventDispatchFrameStore.dispatchEvents()
2016.07.08 16:34:10.576 AEST WARNING: use fine logging for more details -- EventDispatchFrameStore.dispatchEvents()
User avatar
neil.walsh
Posts: 459
Joined: 16 Feb 2009, 13:45
Contact:

Hi Colin,

It looks like you're hitting out of memory issues (probably in Protege) as a result of a misconfiguration.

I've just put together a blog article about this which should help you troubleshoot your setup.

http://www.enterprise-architecture.org/ ... essential/

It would be great if you could post back if this article helped or not.

Thanks

Neil
colinfrewen
Posts: 67
Joined: 10 Dec 2013, 01:22
Location: Australia

Hi Neil,

I had tried most of this before and I gave up on:

64 bit Java Installed, Allocated 8gb to Java, Nothing else running:

As per log, I hit the garbage collector / heap error again. I will try again allocating more than 8gb but can't see why it would need that much.

Code: Select all

FINE: Exception caught -- java.lang.OutOfMemoryError: GC overhead limit exceeded
        at java.security.AccessController.getStackAccessControlContext(Native Method)
        at java.security.AccessController.getContext(Unknown Source)
        at java.awt.AWTEvent.<init>(Unknown Source)
        at java.awt.event.InvocationEvent.<init>(Unknown Source)
        at java.awt.event.InvocationEvent.<init>(Unknown Source)
        at sun.awt.PeerEvent.<init>(Unknown Source)
        at sun.awt.PeerEvent.<init>(Unknown Source)
        at sun.awt.SunToolkit.executeOnEventHandlerThread(Unknown Source)
        at javax.swing.JComponent.revalidate(Unknown Source)
        at javax.swing.plaf.basic.BasicTextUI$RootView.preferenceChanged(Unknown Source)
        at javax.swing.text.View.preferenceChanged(Unknown Source)
        at javax.swing.text.PlainView.updateDamage(Unknown Source)
        at javax.swing.text.PlainView.removeUpdate(Unknown Source)
        at javax.swing.text.FieldView.removeUpdate(Unknown Source)
        at javax.swing.plaf.basic.BasicTextUI$RootView.removeUpdate(Unknown Source)
        at javax.swing.plaf.basic.BasicTextUI$UpdateHandler.removeUpdate(Unknown Source)
        at javax.swing.text.AbstractDocument.fireRemoveUpdate(Unknown Source)
        at javax.swing.text.AbstractDocument.handleRemove(Unknown Source)
        at javax.swing.text.AbstractDocument.remove(Unknown Source)
        at javax.swing.text.AbstractDocument.replace(Unknown Source)
        at javax.swing.text.JTextComponent.setText(Unknown Source)
        at javax.swing.JFormattedTextField$AbstractFormatter.install(Unknown Source)
        at javax.swing.JFormattedTextField.setFormatter(Unknown Source)
        at javax.swing.JFormattedTextField.setValue(Unknown Source)
        at javax.swing.JFormattedTextField.setFormatterFactory(Unknown Source)
        at javax.swing.colorchooser.ValueFormatter.init(Unknown Source)
        at javax.swing.colorchooser.SlidingSpinner.<init>(Unknown Source)
        at javax.swing.colorchooser.ColorPanel.<init>(Unknown Source)
        at javax.swing.colorchooser.ColorChooserPanel.<init>(Unknown Source)
        at javax.swing.colorchooser.ColorChooserComponentFactory.getDefaultChooserPanels(Unknown Source)
        at javax.swing.plaf.basic.BasicColorChooserUI.createDefaultChoosers(Unknown Source)
        at javax.swing.plaf.basic.BasicColorChooserUI.installUI(Unknown Source)

WARNING: Exception caught java.lang.OutOfMemoryError: GC overhead limit exceeded -- EventDispatchFrameStore.dispatchEvents()
WARNING: use fine logging for more details -- EventDispatchFrameStore.dispatchEvents()
FINE: Exception caught -- java.lang.OutOfMemoryError: GC overhead limit exceeded
        at java.util.Hashtable.addEntry(Unknown Source)
        at java.util.Hashtable.put(Unknown Source)
        at TGViztab.MySlotsTableModel.<init>(MySlotsTableModel.java:99)
        at TGViztab.TGVizTab.updateSlotsTableModel(TGVizTab.java:816)
        at TGViztab.MyFrameListener.ownSlotValueChanged(MyFrameListener.java:87)
        at edu.stanford.smi.protege.model.framestore.EventDispatchFrameStore.dispatchFrameEvent(Unknown Source)
        at edu.stanford.smi.protege.model.framestore.EventDispatchFrameStore.dispatchEvent(Unknown Source)
        at edu.stanford.smi.protege.model.framestore.EventDispatchFrameStore.dispatchEvents(Unknown Source)
        at edu.stanford.smi.protege.model.framestore.EventDispatchFrameStore.dispatchEvents(Unknown Source)
        at edu.stanford.smi.protege.model.framestore.EventDispatchFrameStore.dispatchEvents(Unknown Source)
        at edu.stanford.smi.protege.model.framestore.EventDispatchFrameStore.addDirectType(Unknown Source)
        at edu.stanford.smi.protege.model.framestore.undo.AddDirectTypeCommand.doIt(Unknown Source)
        at edu.stanford.smi.protege.model.framestore.undo.UndoFrameStore.simpleCommandExecute(Unknown Source)
        at edu.stanford.smi.protege.model.framestore.undo.UndoFrameStore.execute(Unknown Source)
        at edu.stanford.smi.protege.model.framestore.undo.UndoFrameStore.addDirectType(Unknown Source)
        at edu.stanford.smi.protege.model.framestore.ArgumentCheckingFrameStore.addDirectType(Unknown Source)
        at edu.stanford.smi.protege.model.framestore.ChangeMonitorFrameStore.addDirectType(Unknown Source)
        at edu.stanford.smi.protege.model.framestore.FrameStoreAdapter.addDirectType(Unknown Source)
        at edu.stanford.smi.protege.model.framestore.FrameStoreAdapter.addDirectType(Unknown Source)
        at edu.stanford.smi.protege.model.framestore.FrameStoreAdapter.addDirectType(Unknown Source)
        at edu.stanford.smi.protege.model.DefaultKnowledgeBase.addDirectTypes(Unknown Source)
        at edu.stanford.smi.protege.model.DefaultKnowledgeBase.setDirectTypes(Unknown Source)
        at edu.stanford.smi.protege.model.DefaultKnowledgeBase.setDirectType(Unknown Source)
        at edu.stanford.smi.protege.model.DefaultInstance.setDirectType(Unknown Source)
        at sun.reflect.GeneratedMethodAccessor70.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.python.core.PyReflectedFunction.__call__(Unknown Source)
        at org.python.core.PyMethod.__call__(Unknown Source)
        at org.python.core.PyObject.__call__(Unknown Source)
        at org.python.core.PyInstance.invoke(Unknown Source)
        at org.python.pycode._pyx1229.migrateEIPSlot$1(<unknown>:7)

WARNING: Exception caught java.lang.OutOfMemoryError: GC overhead limit exceeded -- EventDispatchFrameStore.dispatchEvents()
WARNING: use fine logging for more details -- EventDispatchFrameStore.dispatchEvents()
FINE: Exception caught -- java.lang.OutOfMemoryError: GC overhead limit exceeded
        at sun.awt.SunToolkit.executeOnEventHandlerThread(Unknown Source)
        at javax.swing.JComponent.revalidate(Unknown Source)
        at javax.swing.plaf.basic.BasicTextUI$RootView.preferenceChanged(Unknown Source)
        at javax.swing.text.View.preferenceChanged(Unknown Source)
        at javax.swing.text.PlainView.updateDamage(Unknown Source)
        at javax.swing.text.PlainView.removeUpdate(Unknown Source)
        at javax.swing.text.FieldView.removeUpdate(Unknown Source)
        at javax.swing.plaf.basic.BasicTextUI$RootView.removeUpdate(Unknown Source)
        at javax.swing.plaf.basic.BasicTextUI$UpdateHandler.removeUpdate(Unknown Source)
        at javax.swing.text.AbstractDocument.fireRemoveUpdate(Unknown Source)
        at javax.swing.text.AbstractDocument.handleRemove(Unknown Source)
        at javax.swing.text.AbstractDocument.remove(Unknown Source)
        at javax.swing.text.AbstractDocument.replace(Unknown Source)
        at javax.swing.text.JTextComponent.setText(Unknown Source)
        at javax.swing.JFormattedTextField$AbstractFormatter.install(Unknown Source)
        at javax.swing.JFormattedTextField.setFormatter(Unknown Source)
        at javax.swing.JFormattedTextField.setValue(Unknown Source)
        at javax.swing.JFormattedTextField.setFormatterFactory(Unknown Source)
        at javax.swing.colorchooser.ValueFormatter.init(Unknown Source)
        at javax.swing.colorchooser.SlidingSpinner.<init>(Unknown Source)
        at javax.swing.colorchooser.ColorPanel.<init>(Unknown Source)
        at javax.swing.colorchooser.ColorChooserPanel.<init>(Unknown Source)
        at javax.swing.colorchooser.ColorChooserComponentFactory.getDefaultChooserPanels(Unknown Source)
        at javax.swing.plaf.basic.BasicColorChooserUI.createDefaultChoosers(Unknown Source)
        at javax.swing.plaf.basic.BasicColorChooserUI.installUI(Unknown Source)
        at javax.swing.JComponent.setUI(Unknown Source)
        at javax.swing.JColorChooser.setUI(Unknown Source)
        at javax.swing.JColorChooser.updateUI(Unknown Source)
        at javax.swing.JColorChooser.<init>(Unknown Source)
        at javax.swing.JColorChooser.<init>(Unknown Source)
        at javax.swing.JColorChooser.<init>(Unknown Source)
        at TGViztab.SlotsColorTable.setUpColorEditor(SlotsColorTable.java:248)

WARNING: Exception caught java.lang.OutOfMemoryError: GC overhead limit exceeded -- EventDispatchFrameStore.dispatchEvents()
WARNING: use fine logging for more details -- EventDispatchFrameStore.dispatchEvents()
FINE: Exception caught -- java.lang.OutOfMemoryError: GC overhead limit exceeded

WARNING: Exception caught java.lang.OutOfMemoryError: GC overhead limit exceeded -- EventDispatchFrameStore.dispatchEvents()
WARNING: use fine logging for more details -- EventDispatchFrameStore.dispatchEvents()
Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: GC overhead limit exceeded
FINE: Exception caught -- java.lang.OutOfMemoryError: GC overhead limit exceeded

WARNING: Exception caught java.lang.OutOfMemoryError: GC overhead limit exceeded -- EventDispatchFrameStore.dispatchEvents()
WARNING: use fine logging for more details -- EventDispatchFrameStore.dispatchEvents()
You do not have the required permissions to view the files attached to this post.
Trent

I think it has something to do with the custom classes in the Colin's Ontology. It hangs when it tries to update the meta-classes.

The value is is in the Individuals, would you know if there is an easy way to copy across the Individuals from Colin's PPRJ into a baseline ver 5 EAS ontology?

Alternatively would you have an explicit list of changes between 4.3.1 and 5 so that we might manually update the old Ontology?

Regards,
Trent.
User avatar
neil.walsh
Posts: 459
Joined: 16 Feb 2009, 13:45
Contact:

Hi Colin,

Have you modified the OOTB meta-model or just extended it with new classes/slots? Do you have a record of the modifications you have made?

The release notes for v5.05 describe the meta-model change made in this version. http://www.enterprise-architecture.org/ ... leasenotes.

Allocating all the RAM available to Protege *might* force the upgrade through. I'd suggest removing the Java memory allocation. You only need to assign this to Protege and Tomcat rather than Java itself unless you're deliberately wanting to limit the resources available to Java.

It may be possible to apply the separate aspects of the EUP upgrade individually to de-bug the issue but it probably won't make the issue of the upgrade hanging on a particular class without directly resolving that specific problem.

Are there any other errors in the logs or console that you could share that occur during the upgrade process?

You may need to contact EAS professional services to resolve this if the meta-model changes you have made are more substantial. We may be able to build you a bespoke upgrade package or migrate your content to a OOTB v5 repository.

Thanks

Neil
colinfrewen
Posts: 67
Joined: 10 Dec 2013, 01:22
Location: Australia

Hi Neil,

When I apply the update it freezes after applying Common Functions.. When applying the update pack.. produces no errors at all.. does not update the protoge or any other logs.

The only major changes we have made are the packs we bought last year from you for the risk and excel upload. We have some minor slot changes but cant see that being a problem. How would we apply the pack by python scripts one at a time?

We have run on 4 machines and same issues with update pack and not sure where else to look.

This is the log file at this point

Code: Select all

2016.07.12 18:48:10.865 AEST INFO: Loaded 5000 instances: KB_394206_Class69 -- Parser.getInstance()
2016.07.12 18:48:10.896 AEST INFO: Loaded 6000 instances: KB_537692_Class640 -- Parser.getInstance()
2016.07.12 18:48:10.968 AEST INFO: Loaded 7000 instances: KB_537692_Class198 -- Parser.getInstance()
2016.07.12 18:48:11.013 AEST INFO: Loaded 8000 instances: KB_621473_Class572 -- Parser.getInstance()
2016.07.12 18:48:11.068 AEST INFO: Loaded 9000 instances: KB_851144_Class76 -- Parser.getInstance()
2016.07.12 18:48:11.082 AEST INFO: Set type on 5000 instances: KB_920521_Class736 -- Parser.getInstance()
2016.07.12 18:48:12.350 AEST CONFIG: PROMPT: Loaded plugin ca.uvic.cs.cogz.PromptUIPlugin - CogZ -- PluginManager.loadPlugin()
2016.07.12 18:48:12.381 AEST CONFIG: PROMPT: Loaded plugin edu.stanford.smi.protegex.promptx.foam.FoamPlugin - FOAM Plugin for Prompt -- PluginManager.loadPlugin()
2016.07.12 18:48:12.399 AEST CONFIG: PROMPT: Loaded plugin edu.stanford.smi.protegex.promptx.mappingDomainPSM.MappingDomainPSM - Store mappings using the Domain_PSM ontology -- PluginManager.loadPlugin()
2016.07.12 18:48:12.403 AEST CONFIG: PROMPT: Loaded plugin edu.stanford.smi.protegex.promptx.simpleMappingStorage.SimpleMappingStorage - Store mapping using a simple mapping ontology -- PluginManager.loadPlugin()
2016.07.12 18:48:12.403 AEST CONFIG: PROMPT: Loaded plugin edu.stanford.smi.protegex.promptx.synonyms.SynonymPlugin - Lexical matching with synonyms -- PluginManager.loadPlugin()
2016.07.12 18:48:12.419 AEST CONFIG: PROMPT: Loaded plugin edu.stanford.smi.protegex.promptx.umls.UMLSPlugin - Using UMLS concept identifiers for matching -- PluginManager.loadPlugin()
2016.07.12 18:48:12.419 AEST INFO: Prompt version 3.0 -- PromptTab.initialize()
2016.07.12 18:48:12.419 AEST INFO: Prompt version date: August 8, 2006 -- PromptTab.initialize()
2016.07.12 18:48:13.650 AEST INFO: Load time for file:\C:\Protege_3.5\test.pprj = 3 sec (project) + 2 sec (ui) -- ProjectManager$3.run()
as you can see it dost indicate file has run ...

Any suggestions of things to try...

Colin
You do not have the required permissions to view the files attached to this post.
User avatar
neil.walsh
Posts: 459
Joined: 16 Feb 2009, 13:45
Contact:

Hi Colin,

Can you contact EAS directly to discuss this further? The contact address we have for you is no longer in use.

Thanks

Neil
colinfrewen
Posts: 67
Joined: 10 Dec 2013, 01:22
Location: Australia

Hi Neil,

Jason has my new details but I will contact him directly as he understands our meta model.

Thanks
Colin
User avatar
neil.walsh
Posts: 459
Joined: 16 Feb 2009, 13:45
Contact:

Hi Colin,

I've just tried applying this on an older development snapshot with the Risk Configuration we supplied and the pack applied successfully.

It looks like it could be an issue with some customisations you have made.

Contact Jason directly and if you can send him a repository snapshot (either directly or link e.g. Sharepoint or Dropbox), we'll check if we can perform the upgrade locally and report back.

Thanks

Neil
colinfrewen
Posts: 67
Joined: 10 Dec 2013, 01:22
Location: Australia

Hi Neil,

We can close this topic. I created a set of scripts to check for issues. At one point we had a PAL constraint that stopped duplicate slot values, ie:Duplicate instances used in slots. We removed this constraint and our admin ppl created duplicates. On the update script it was hanging when it got to the migration as it couldn't work out the duplication, ie: That was the garbage dump issue.

So all our own fault.

We fixed by:
1) Removing the duplicates
2) Reapplying the constraint on duplicate instances

We also have a script to check for duplicates. We have made just over 100 changes to the class structure to allow for portfolio assessment, deployment planning, project phase, application health and our most important one is around application life cycle and the update worked fine now.

Thanks for all the help.
User avatar
neil.walsh
Posts: 459
Joined: 16 Feb 2009, 13:45
Contact:

Thanks for the update Colin
Post Reply