Hauptmenü

Absturz FHEM vermutlich durch FHEMapp

Begonnen von Doogy, 15 August 2024, 15:35:06

Vorheriges Thema - Nächstes Thema

Doogy

Hallo zusammen,

FHEMapp läuft bei mir jetzt schon seit längerem. Heute Nacht hat sich allerdings FHEM in einer Bootschleife befunden (FHEM startete 23x neu, im Minutentakt) und ist dauernd abgestürzt. Erst ein Reboot des Linux konnte Abhilfe schaffen. Könnte mir eventuell dazu jemand helfen, damit es nicht wieder passiert.

Meldung im logfile:
malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "\r\n<...") at ./FHEM/02_FHEMAPP.pm line 937.
VG Felix

Otto123

Hallo Felix,

Zitat von: Doogy am 15 August 2024, 15:35:06Könnte mir eventuell dazu jemand helfen, damit es nicht wieder passiert.
der Modulauthor sollte eine Prüfung der JSON Strings einbauen. Das ist ein bekanntes Problem bei der Verwendung von decode_json.

Beispiel:
sub decode_j {
# decode_json() croaks on error, this function should prevent fhem crashes
# https://metacpan.org/pod/Perl::Critic::Policy::ErrorHandling::RequireCheckingReturnValueOfEval
  use JSON qw(decode_json);
  my $maybe_json = shift;
  my $data;
  if ( eval { $data = decode_json($maybe_json); 1 } ) { return $data }
  Log3(undef, 1, "JSON decoding error, >$maybe_json< seems not to be valid JSON data: $@");
  return q{}
}

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

jemu75

Hallo Felix,

die Anpassung in dem Modul müsste sich @Benni mal ansehen. Unabhängig davon würde ich mir deine Konfiguration gern mal ansehen. Im Normalfall wird diese ja in FHEMApp erzeugt und dann an FHEM übergeben. Das FHEM Modul übernimmt hier hauptsächlich das Speichern bzw. Laden der Konfiguration auf dem FHEM-Server.

Also sende mir gern mal deine Konfiguration (unter /home/jens/extfhem/opt/fhem/conf/ xxx_config.fhemapp.json) zu finden.

Beste Grüße
Jens :)

Doogy

Hallo Jens,

hier die gewünschte Datei.

Nochmal festzuhalten, bis jetzt war es ein einmaliges "Event". Seit dem kompletten Neustart läuft erstmal wieder alles.

VG Felix

Himbi777

#4
Zitat von: Doogy am 15 August 2024, 15:35:06Hallo zusammen,

FHEMapp läuft bei mir jetzt schon seit längerem. Heute Nacht hat sich allerdings FHEM in einer Bootschleife befunden (FHEM startete 23x neu, im Minutentakt) und ist dauernd abgestürzt. Erst ein Reboot des Linux konnte Abhilfe schaffen. Könnte mir eventuell dazu jemand helfen, damit es nicht wieder passiert.

Meldung im logfile:
malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "\r\n<...") at ./FHEM/02_FHEMAPP.pm line 937.
VG Felix

Hallo Jens
Bei mir war es genauso, Fhem hat in der gleichen Nacht von 1:12 bis 1:37 auch 22x neu gestartet, lief aber ab dann wieder normal weiter.
Ich habe die gleiche Fehlermeldung im LOG-File gefunden.

Gruß Gerhard
Raspberry Pi4, OMV, FHEM, FHEM-App // Tasmota-Geräte, Zigbee2Tasmota, 433Mhz Funksender, WLED-Stripes, AI-on-the-edge Wasserzähler, Nuki-Türschlösser

Doogy


OliS.

Jupp, bei mir auch. Derselbe Zeitraum, dasselbe Verhalten.

LG
Oli
PVE auf MiniPC (N100) mit FHEM, Zigbee2MQTT, Homebridge, DeConz

Benni

Sorry, dass ich mich erst jetzt dazu melde! Aber wie so viele, befinde ich mich aktuell eher im Sommer-Urlaubs-Modus ;)

Das wichtigste zuerst: Das Problem wurde NICHT durch die FHEMApp-Config ausgelöst, sondern durch eine ungültige JSON-Antwort bei der (zyklischen) Abfrage der Releases von github.

Das erklärt woh auch die scheinbare Gleichzeitigkeit bei verschiedenen Usern. Wahrscheinlich war auch weder ein reboot die Problemlösung sondern github hat einfach ab einem bestimmten Zeitpunkt wieder eine gültige json-Antwort ausgeliefert.

Btw.: Das Modul verarbeitet die FHEMApp-Config bisher überhaupt nicht. Warum auch?

@Otto123: Danke für den Hinweis! Das werde ich in die nächste Version aufnehmen. Kann aber noch ein paar Tage dauern ... Developer machen eben eher Sommerschlaf, als Winterschlaf :D

gb#

PS: Um das in der Zwischenzeit zu verhindern, kann das Modul per attribut disabled davon abgehalten werden, zyklisch die Release-Daten bei github abzurufen, um auf updates zu prüfen.

Beta-User

#8
Hallo zusammen,

nachdem ich die Tage über ein etwas anders gelagertes Problem im Modul mit unmotivierten Neustarts gestolpert bin (https://forum.fhem.de/index.php?topic=140666.0), hier eine gepatchte Fassung in der Hoffnung, dass sich Benni dann wieder des Themas annimmt.

PS: Bitte dann FHEM neu starten, der interne timer-update-Mechanismus ist leicht geändert...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Benni

Hallo Jörg,

danke für den Hinweis und Danke fürs Patchen!
Werde ich mir gerne anschauen und umsetzen ;)

gb#

Beta-User

Hi Benni,

Danke, dass du dich der Sache annimmst! (der "patch" ist leider eher sowas wie ein hotfix, ich wollte vor allem auf die schnelle Art diese FHEM-restarts vermeiden und habe daher einfach kurz zusammengeklaubt, was mir irgendwann mal in der Vergangenheit dazu über den Weg gelaufen war...)
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files