Hallo Andreas,
ich habe ein reproduzierbares Problem mit IPSView 6.5.10.
System
-
IP-Symcon 9.0
-
IPSView Designer 6.5.10
-
IPSView Clients 6.5.10
-
Windows, Android und Browser
Chronologie
-
Die Visualisierung funktionierte einwandfrei.
-
Ich erstellte drei neue Kacheln und Popup-Seiten.
-
Anschließend kopierte ich einen bestehenden IPSView-Graphen (Homematic CCU Load) auf eine neue Popup-Seite.
-
Danach erschien auf allen Clients die Meldung:
ViewContent ... exceeds MemoryLimit 32M for decoding -
Ich löschte den Graphen wieder, der Fehler blieb jedoch bestehen.
-
Ich restaurierte eine Sicherung der View vom 28.06. (damals funktionierend).
-
Trotzdem funktionierte diese restaurierte View auf keinem Gerät mehr (Windows, Android, Browser).
Einige Tage später, ohne Änderungen an dieser View, funktionierte dieselbe restaurierte View plötzlich wieder auf allen Geräten.
Daraufhin habe ich:
-
Eine neue, minimale IPSView erstellt (nur die notwendigen Seiten).
-
Danach liefen wieder alle Geräte mit der restaurierten View.
-
Anschließend habe ich eine Kopie der restaurierten View erstellt und unter einer neuen Media-ID betrieben, sodass ich zwei unabhängige Views hatte.
-
Ich habe diese neue Kopie Schritt für Schritt erweitert.
-
Sobald ich wieder den IPSView-Graphen eingefügt habe, trat der Memory-Fehler erneut auf.
-
Ich habe anschließend die Seite mit dem Graphen gelöscht.
-
Die Dateigröße der
.ipsViewblieb praktisch unverändert (ca. 10,66 MB). -
Ich löschte zusätzlich noch eine weitere Seite.
-
Danach erschien statt der bisherigen Meldung ein PHP-Fehler:
Allowed memory size of 33554432 bytes exhausted
(tried to allocate 14905384 bytes)
IPSViewConnect->GetView()
base64_decode(...)
Auffälligkeiten
-
Die View ist nur etwa 10,66 MB groß (Backup: 10,64 MB).
-
Die verwendeten PNGs sind lediglich 160×160 Pixel.
-
Keine Hintergrundbilder.
-
Die Dateigröße verändert sich nach dem Löschen der Graph-Seite praktisch nicht.
-
Der Fehler entsteht in IPSViewConnect::GetView() beim base64_decode().
Frage:
Kann es sein, dass beim Einfügen/Kopieren eines IPSView-Graphen interne Daten oder der serialisierte ViewContent inkonsistent werden und deshalb GetView() beim Dekodieren an das 32-MB-PHP-Limit stößt?