FHEM Abstürze - perl segfault error 4

Begonnen von nugat1, 19 November 2017, 13:27:43

Vorheriges Thema - Nächstes Thema

nugat1

Hallo,

ich habe seit kurzen, in unregelmäßigen Abständen fhem Abstürze.

Mein System:
Ubuntu LTS 16.04 als VM auf einem ESXi Host

Fehlerbild - Bisherige Fehlersuche:
1. FHEM nicht mehr erreichbar.
2. ps -aux - kein fhem Prozess mehr
3. service fhem status: (siehe Screenshots)
   service - running
   es läuft aber nur der Prozess für den Homematic USB Stick
4. Kontrolle Logs - einziger Hinweis findet sich im kern.log - hier mal die letzen 3 Abstürze:
Nov 12 16:49:26 fhem kernel: [676413.205421] show_signal_msg: 9 callbacks suppressed
Nov 12 16:49:26 fhem kernel: [676413.205426] perl[2096]: segfault at 4008 ip 00000000004b141c sp 00007ffe23eb6700 error 4 in perl[400000+1cf000]
Nov 14 09:35:23 fhem kernel: [823171.566279] perl[20022]: segfault at 0 ip 00000000004ae694 sp 00007fff770c1a10 error 4 in perl (deleted)[400000+1cf000]
Nov 19 07:48:17 fhem kernel: [1248751.578808] perl[19327]: segfault at 4008 ip 00000000004ae6e0 sp 00007fff828cc4c0 error 4 in perl[400000+1cf000]


Was bedeutet dieser Fehler?
Was sind mögliche Ursachen?
Und wie lässt er sich beheben?
Gibt es eventuell eine Möglichkeit, falls dieser Fehlerzustand auftritt, den FHEM Service automatisch neuzustarten?


Grüße
nugat1

rudolfkoenig

ZitatWas bedeutet dieser Fehler?
Zugriff auf einem nicht allozierten Speicherbereich.

ZitatWas sind mögliche Ursachen?
- Hardware-Fehler (kaputte "Festeplatte", Hauptspeicher, Prozessor, etc)
- Programmierfehler, in dem perl Programm, libc, eine andere Bibliothek, oder Zusammenspiel dieser. Ist sehr selten.

ZitatUnd wie lässt er sich beheben?
Haengt davon ab, was du dir zutraust, und von der Zeit, was du opfern willst :) Nach deinen Fragen zu urteilen wuerde ich erst eine andere Perl-Version, danach eine andere Distribution versuchen. Wenn das nicht hilft, einen anderen Hypervisor verwenden, statt VM direkt Hardware verwenden oder gar Hardware tauschen.

ZitatGibt es eventuell eine Möglichkeit, falls dieser Fehlerzustand auftritt, den FHEM Service automatisch neuzustarten?
Ja, haengt von der verwendeten Distribution ab. Das Problem ist nicht FHEM-spezifisch.

nugat1

Vielen Dank für deine schnelle und sehr hilfreiche Antwort

ZitatJa, haengt von der verwendeten Distribution ab. Das Problem ist nicht FHEM-spezifisch.
Ich war grad erst einmal damit beschäftigt eine Quick-and-Dirty Variante zu "basteln", um bei diesen Fehlerbild zu reagieren:

Habe dies mit crontab gemacht, prüft alle einer Minute, ob am service fhem noch ein entsprechender perl Prozess ausgeführt wird, und wenn nicht wird der fhem service neugestartet
sudo touch /opt/checkandrestartfhem.sh
sudo chmod 755 /opt/checkandrestartfhem.sh
sudo nano /opt/checkandrestartfhem.sh
#!/bin/sh
logfile=/var/log/fhem-restart.log
# Stellt sicher, dass fhem immer wieder gestartet wird, wenn der Perl Prozess nicht laeuft
if [ $(sudo service fhem status | grep -c "perl fhem.pl fhem.cfg") -eq 0 ];
then
    echo "$(date) fhem neustarten" >> $logfile
    sudo service fhem restart
fi

sudo crontab -e
*/1 * * * * /opt/checkandrestartfhem.sh


Zitat- Hardware-Fehler (kaputte "Festeplatte", Hauptspeicher, Prozessor, etc)
Könnte man diesen Fehler eventuell noch auf eine mögliche Komponente eingrenzen?

Klar, um Arbeitsspeicher zu testen, könnte ich einen memtest ausführen
Festplatte, habe ich noch eine weitere im System, auf die ich diese vm schieben kann.
Aber das ist schon, wie eine Suche nach der Nadel im Heuhaufen  ;)

ZitatHaengt davon ab, was du dir zutraust, und von der Zeit, was du opfern willst :) Nach deinen Fragen zu urteilen wuerde ich erst eine andere Perl-Version, danach eine andere Distribution versuchen. Wenn das nicht hilft, einen anderen Hypervisor verwenden, statt VM direkt Hardware verwenden oder gar Hardware tauschen.

Ich betreibe fhem bereits seit Anfang 2014 - angefangen auf einem RasPi, über BananaPi zu einem NUC(Cerleron).
Habe das im Oktober auf diese Plattform (NUCi5 mit esxi) umgezogen. Und bisher keine Probleme gehabt.

Fehler ist aber zum ersten mal am 12.11. aufgetreten.
Kurz zuvor (04.11) habe ich den HM-USB - Dienst in Betrieb genommen.
Vielleicht ist das "reinschleifen" des HM-USB über die Virtualisierungsplattform an die VM eine mögliche Fehlerquelle, kann es eventuell auch damit zusammenhängen?