IPSView 6.5.10 – MemoryLimit 32M beim Einfügen eines IPSView-Graphen

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

  1. Die Visualisierung funktionierte einwandfrei.

  2. Ich erstellte drei neue Kacheln und Popup-Seiten.

  3. Anschließend kopierte ich einen bestehenden IPSView-Graphen (Homematic CCU Load) auf eine neue Popup-Seite.

  4. Danach erschien auf allen Clients die Meldung:

    ViewContent ... exceeds MemoryLimit 32M for decoding

  5. Ich löschte den Graphen wieder, der Fehler blieb jedoch bestehen.

  6. Ich restaurierte eine Sicherung der View vom 28.06. (damals funktionierend).

  7. 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:

  1. Eine neue, minimale IPSView erstellt (nur die notwendigen Seiten).

  2. Danach liefen wieder alle Geräte mit der restaurierten View.

  3. Anschließend habe ich eine Kopie der restaurierten View erstellt und unter einer neuen Media-ID betrieben, sodass ich zwei unabhängige Views hatte.

  4. Ich habe diese neue Kopie Schritt für Schritt erweitert.

  5. Sobald ich wieder den IPSView-Graphen eingefügt habe, trat der Memory-Fehler erneut auf.

  6. Ich habe anschließend die Seite mit dem Graphen gelöscht.

  7. Die Dateigröße der .ipsView blieb praktisch unverändert (ca. 10,66 MB).

  8. Ich löschte zusätzlich noch eine weitere Seite.

  9. 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?

Intern wird die View noch Base64 und JSON dekodiert, das benötigt meistens das 3-4 fache der View Größe an Memory. Du bist da also sicher irgend wo am Limit mit dem Speicher, zusätzlich muss teilweise auch noch der Snapshot geladen werden.

Erhöhe Dein Memory auf 48 oder 64MB, dann sollte der Spuck vorbei sein :wink:

Arbeite mir paresy bereits an einer Lösung um das Problem endgültig zu beseitigen.

Vielen Dank für die rasche Antwort. Hast du schon eine Idee wann diese Änderung releasen kannst.
Gruss Herby