Window Filesize Limit?

Is there a limit to the size of a window when compressed? It seem that one of our more cluttered screens reaches about 20,000 kb. The screen worked fine in FactoryPMI and converted via the backup process ok but if it is opened and saved again without making changes then it will not load any more in the client. As well it is not possible to open in the designer or do much of anything in the project after this occurs.

Not really an issue for us at the moment as I’ve just removed about 4 mb of data and we have no issues.

Here is the exception upon trying to load the client:

com.inductiveautomation.ignition.common.xmlserialization.SerializationException: Unexpected I/O error during deserialization.
	at com.inductiveautomation.ignition.common.xmlserialization.deserialization.XMLDeserializer._deserialize(XMLDeserializer.java:214)
	at com.inductiveautomation.ignition.common.xmlserialization.deserialization.XMLDeserializer.deserialize(XMLDeserializer.java:164)
	at com.inductiveautomation.ignition.common.xmlserialization.deserialization.XMLDeserializer.deserialize(XMLDeserializer.java:156)
	at com.inductiveautomation.ignition.common.xmlserialization.deserialization.XMLDeserializer.deserialize(XMLDeserializer.java:80)
	at com.inductiveautomation.factorypmi.application.runtime.ClientContextImpl.deserialize(ClientContextImpl.java:96)
	at com.inductiveautomation.factorypmi.application.model.WindowCache.getWindowInfo(WindowCache.java:176)
	at com.inductiveautomation.factorypmi.application.model.WindowCache.getAboutWindow(WindowCache.java:463)
	at com.inductiveautomation.factorypmi.application.runtime.RuntimeMenu.<init>(RuntimeMenu.java:65)
	at com.inductiveautomation.factorypmi.application.runtime.ClientPanel$10.run(ClientPanel.java:501)
	at java.awt.event.InvocationEvent.dispatch(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.util.zip.ZipException: oversubscribed dynamic bit lengths tree
	at java.util.zip.InflaterInputStream.read(Unknown Source)
	at java.util.zip.GZIPInputStream.read(Unknown Source)
	at sun.nio.cs.StreamDecoder.readBytes(Unknown Source)
	at sun.nio.cs.StreamDecoder.implRead(Unknown Source)
	at sun.nio.cs.StreamDecoder.read(Unknown Source)
	at java.io.InputStreamReader.read(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.load(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.peekChar(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
	at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
	at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
	at com.inductiveautomation.ignition.common.xmlserialization.deserialization.XMLDeserializer._deserialize(XMLDeserializer.java:201)
	... 16 more

Ignition v7.1.6 (b5739)
Java: Sun Microsystems Inc. 1.6.0_10

Hi Todd,

It seems like you have the same problem that i have (viewtopic.php?f=72&t=5666).

Now that you say the size limit, i remember that my windows reach something like 25000 or 30000 kb when failed (when the window reach that size, i can save it and all goes ok but when a open it again, i have the deserialization error mesage).

For now, i divide the elements of the projects in 4 different windows, avoiding that windows reach the critical size.

Greetings

Yep same problem. You can save but not decompress.

Easily reproduced on my screens by just copying the same container (with a lot of stuff in it) over and over again until it gets too big. Did not try on the demo project since I dont have that installed but I’m assuming it should be easily reproduced just by creating a lot of small objects in a container and then duplicating the container repeatedly.

The size is less that 25 MB I think but not positive but does seem to be over 20 MB. Unfortunately I have little control over the teams that modify the screens and they can get a little copy/paste crazy with a lot of details and dont want to bother creating sub-screens.

I would recommend the developers look for hard coded buffer sizes in the code where the project is decompressed.

This is currently under investigation, stay tuned. I should have an answer either later today or tomorrow.

Ok the cause of this has been identified and resolved. It was an issue with the internal database used to store the windows. It was only a “reading” problem which means that all stored window data is intact but the reading of the window data had intermittent issues when reading windows over .5mb.

Long story short - it’ll work correctly in 7.1.8.

Good to hear. Thanks for the quick resolution.