Fehler: FHEM stürzt dauernd ab

Begonnen von fhem86, 09 Juni 2013, 21:04:51

Vorheriges Thema - Nächstes Thema

fhem86

Hallo Zusammen,

Mein Fhem stürzt dauernd ab:

Fehler:
Deep recursion on subroutine "main::PrintHashJson" at ./FHEM/98_JsonList.pm line 91.

Kann das an zu vielen JSON Abfragen liegen? Das müssten 12 Stück alle 10 Sekunden sein. Sollte doch kein Problem sein oder?

Abfrage :
http://192.168.1.102:8083/fhem?cmd=jsonlist Device&XHR=1

Gruß & Danke

edit:
Ich glaube fhem hat da ein leichtes Problem mit RAM und CPU:)

root@raspberrypi:/opt/fhem# ps aux | grep fhem

root      2711 40.8 93.2 495144 418840 pts/0   R    21:41   0:31 perl fhem.pl fhem.cfg
root      2725  0.7  0.1   4136   848 pts/0    S+   21:42   0:00 grep fhem


edit2:
Ich habe die Ursache gefunden:
Wenn ich http://192.168.1.102:8083/fhem?cmd=jsonlist%20Handy_Daniel&XHR=1 einige Male aufrufe
kommt der Fehler:
Deep recursion on subroutine "main::PrintHashJson" at ./FHEM/98_JsonList.pm line 91.

Anschließend füllt FHEM den RAM, bis dieser verbraucht ist und stützt daraufhin ab.

Handy_Daniel ist ein PRESENCE Device:

define Handy_Daniel PRESENCE lan-ping 192.168.1.100 30

Ist das ein Bug?
JSON von Handy_Daniel

{
  "ResultSet": {
    "Results": {
      "ADDRESS": "192.168.1.100",
      "ATTRIBUTES": {
          "null": "null"
      },
      "CFGFN": "fhem_anwesenheit.cfg",
      "DEF": "lan-ping 192.168.1.100 30",
      "MODE": "lan-ping",
      "NAME": "Handy_Daniel",
      "NR": "78",
      "NTFY_TRIGGERTIME": "2013-06-09 22:33:36",
      "READINGS": {
        "state": {
          "TIME": "2013-06-09 22:33:36",
          "VAL": "present"
        }
      },
      "STATE": "present",
      "TIMEOUT_NORMAL": "30",
      "TIMEOUT_PRESENT": "30",
      "TYPE": "PRESENCE",
      "helper": {
          "null": "null"
      }
    }
  }
}

rudolfkoenig

Eigentliche muesste Martin (Maintainer von diesem Modul) diese Frage beantworten, er schreibt aber seit laengerem keine Artikel mehr in diesem Forum (wieso nicht? Martin, wir vermissen Dich :) )

Ich habe das Modul deswegen jetzt selbst angefasst und Endlos-Rekursions-Schutz eingebaut.