Jede Nacht stürzt das System ab (wegen mailcheck - Modul)

Begonnen von Dduieh, 15 Januar 2016, 07:23:58

Vorheriges Thema - Nächstes Thema

justme1968

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

rudolfkoenig


justme1968

@rudi: das wollte ich eigentlich ursprünglich. das funktioniert aber nicht weil es kein event/callback am anfang und ende der disabled zeit gibt. zumindest nicht ohne selber irgendwelche timer zu implementieren.

so ein event brauche ich aber um das im hintergrund wartende imap idle zu stoppen oder neu zu starten. d.h. das modul rollt nicht sondern wartet passiv im select. das warten muss am anfang des disabled zeitraums aktiv beendet werden. und umgekehrt. lustiger satz :)
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

rudolfkoenig


ulli

Ich habe seit einigen Tagen das selbe Problem.
Regelmäßig in der Nacht stürzt FHEM ohne Logeintrag außer folgender vollständig ab.
Bizarre copy of ARRAY in scalar assignment at /usr/share/perl/5.14/Carp.pm line 140.

Ich habe die aktuelle Version von mailcheck vom 15.02.2016.

justme1968

hast du mit aktiviertem stacktrace geschaut ob es auch an mailcheck liegt?

wenn ja gibt es bei dir einen zwangstrennung?

wenn ja wie oben beschrieben per at das modul in dieser zeit still legen.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

ulli

Ich habe Stacktrace aktiviert. Es gab aber keine Ausgabe dazu. Es gibt nur diesen einen Eintrag.

Otto123

#37
Ulli, geht  mir genau so!  :o
Während der Zwangstrennung mache ich jetzt Pause für mailcheck. Aber seit zwei Tagen stürzt er einfach so einmal am Tag ab!
Gestern dachte ich hätte das Internet etwas überlastet aber heute war zu der Zeit keiner zu Hause und im Netz nichts los. Ich kann nur am Datum des FHEM log festmachen wann es passiert.

Ist so nicht zu gebrauchen, ich versuche gerade diese System neu zu machen und ne andere Perl Version zu nehmen. Keine Ahnung ob das was bringen wird.

Habe jetzt seit gestern Abend Jessie und damit Perl 5.20 laufen - mal sehen.
Carp.pm damit Version 1.3301 vorher war es 1.20 - Inhalt sieht auf den ersten Blick ganz anders aus.

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

ulli

Hi Otto,
ich habe jetzt zwischen 23 und 2 uhr das modul mailcheck deaktiviert...jetzt läuft FHEM durch...danke!

Ma_Bo

Hallo, gibt es z.Z. nur die Lösung über das disable oder aktiv/inactive setzen?

Lohnt es sich perl zu aktualisieren oder brauch ich mir die Mühe damit garnicht erst machen?
Bei einer Zwangstrennung kommt es auch bei mir zu einem total Ausfall von fhem, sonst ist es ein super Modul, welches auch ohne Probleme läuft.

Grüße Marcel
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

Otto123

Zitat von: Ma_Bo am 27 Februar 2016, 15:10:02
Lohnt es sich perl zu aktualisieren oder brauch ich mir die Mühe damit garnicht erst machen?
Bei einer Zwangstrennung kommt es auch bei mir zu einem total Ausfall von fhem, sonst ist es ein super Modul, welches auch ohne Probleme läuft.
Hallo Marcel,

ich kann das nicht genau sagen, es gibt offenbar zwei Fehlerbilder zumindest hatte ich schon beide:
1. Bei Zwangstrennung (oder Internet Ausfall) wirft ein Perl Modul Fehler ohne Ende und dein Log File ist anschließend quasi Mist.
2. FHEM wird beendet und die letzte Auschrift ist: Bizarre copy of ARRAY in scalar assignment at /usr/share/perl/5.14/Carp.pm

Der 2. Fehler liegt eventuell an der Perl Version, der tritt bei mir jetzt erstmal nicht mehr auf, aber eine Woche ist auch noch zu kurz.
Der 1. Fehler wird auch nicht einfach mit der Perlversion behoben, da ist offenbar noch mehr Arbeit nötig.

Mir ist die Variante mit active/inactive zumindest erstmal hilfreich, nicht schön aber ausreichend.

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

Ma_Bo

Hallo Otto,
danke für deine Infos.

Mein mailcheck stell ich ersteinmal ab, da es für mich so nicht funktioniert und meine Anwesenheitskontrolle damit nicht wirklich brauchbar umzusetzen ist.

Ich werde weiterhin mitlesen, evtl. gibt es ja bald eine gute Lösung.

Grüße Marcel
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

Benni

Hallo Andre,

ich muss das Thema leider noch mal hoch holen.

Leider habe ich das Problem, dass meine Internetverbindung hier nicht sehr stabil zu sein scheint (Bin derzeit mobil über einen entsprechenden LTE-Stick online). Die Verbindung bricht also immer mal wieder sporadisch weg (es handelt sich dabei um keine Zwangstrennung!).
Wenn in diesem Zeitraum, aber Mailcheck versucht Daten zu holen, schlägt das fehl und führt dazu, dass FHEM komplett in den Seilen hängt:


2016.07.11 09:36:58 1: PERL WARNING: Trying command when NOT connected! at /usr/share/perl5/Mail/IMAPClient.pm line 118
Mail::IMAPClient::LastError('Mail::IMAPClient=HASH(0x2635d08)', 'NO not connected') called at /usr/share/perl5/Mail/IMAPClient.pm line 1454
Mail::IMAPClient::_send_line('Mail::IMAPClient=HASH(0x2635d08)', '44 SELECT INBOX', 0) called at /usr/share/perl5/Mail/IMAPClient.pm line 1304
Mail::IMAPClient::_imap_command_do('Mail::IMAPClient=HASH(0x2635d08)', 'SELECT INBOX') called at /usr/share/perl5/Mail/IMAPClient.pm line 1209
Mail::IMAPClient::_imap_command('Mail::IMAPClient=HASH(0x2635d08)', 'SELECT INBOX') called at /usr/share/perl5/Mail/IMAPClient.pm line 832
Mail::IMAPClient::select('Mail::IMAPClient=HASH(0x2635d08)', 'INBOX') called at ./FHEM/32_mailcheck.pm line 274
main::mailcheck_poll(undef) called at fhem.pl line 2781
main::HandleTimeout() called at fhem.pl line 591
2016.07.11 09:36:58 1: PERL WARNING: Trying command when NOT connected! at /usr/share/perl5/Mail/IMAPClient.pm line 118
Mail::IMAPClient::LastError('Mail::IMAPClient=HASH(0x2635d08)', 'NO not connected') called at /usr/share/perl5/Mail/IMAPClient.pm line 1454
Mail::IMAPClient::_send_line('Mail::IMAPClient=HASH(0x2635d08)', '45 IDLE', 0) called at /usr/share/perl5/Mail/IMAPClient.pm line 1304
Mail::IMAPClient::_imap_command_do('Mail::IMAPClient=HASH(0x2635d08)', 'IDLE', '+') called at /usr/share/perl5/Mail/IMAPClient.pm line 1209
Mail::IMAPClient::_imap_command('Mail::IMAPClient=HASH(0x2635d08)', 'IDLE', '+') called at /usr/share/perl5/Mail/IMAPClient.pm line 1104
Mail::IMAPClient::idle('Mail::IMAPClient=HASH(0x2635d08)') called at ./FHEM/32_mailcheck.pm line 275
main::mailcheck_poll(undef) called at fhem.pl line 2781
main::HandleTimeout() called at fhem.pl line 591
2016.07.11 09:36:58 0: Server shutdown


Folge ist, dass das System (nur FHEM) mehr als 3 Minuten hängt und dann irgendwann mein FHEM-Watchdog zuschlägt:


2016-07-11_09:27:56 fhem_server V: 7 S: OK!
2016-07-11_09:28:56 fhem_server V: 7 S: OK!
2016-07-11_09:29:56 fhem_server V: 7 S: OK!
2016-07-11_09:30:56 fhem_server V: 7 S: OK!
2016-07-11_09:31:56 fhem_server V: 7 S: OK!
2016-07-11_09:32:57 fhem_server V: 8 S: OK!
2016-07-11_09:33:57 fhem_server V: 8 S: OK!
2016-07-11_09:34:57 fhem_server V: 68 S: OK!
2016-07-11_09:35:57 fhem_server V: 128 S: OK!
2016-07-11_09:36:57 fhem_server V: 188 S: DEAD! 188 seconds
2016-07-11_09:36:57 fhem_server MSG: killing FHEM PID: 19871
2016-07-11_09:40:01 fhem_server V: 50 S: OK!
2016-07-11_09:41:01 fhem_server V: 50 S: OK!


Ich habe mir zwar mal ein PRESENCE-Device eingerichtet das prüft, ob eine Internetverbindung besteht (LAN-Ping auf die google-DNS jede Minute) und falls nicht, das Mailcheck-Device erst mal auf inactive setzt. Allerdings haut das vom Timing her doch zu oft nicht recht hin, so dass Mailcheck schon einen Hänger verursacht, wenn PRESENCE den Verlust des Internets noch gar nicht bemerkt hat.

Lässt sich denn da seitens Mailcheck nichts machen, dass im Fehlerfall nicht gleich das ganze FHEM hängen bleibt?

Gruß Benni.

justme1968

wenn dein fhem 'nur' hängen bleibt aber nicht abstürzt:

versuch bitte mal nach zeile 189 zusätzlich ein$client->Timeout(10);einzubauen.

gegen das komplett aussteigen versuch ich gerade die abfrage per BlockingCall in einen eigenen prozess zu verlagern. ich weiss aber noch nicht ob das geht.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Benni

Hallo Andre,

danke für die schnelle Rückmeldung!

Die Code-Zeile habe ich jetzt mal eingefügt.
Ich werde beobachten und berichten.

Bisher ist das System bei mir "nur" hängen geblieben und nicht abgestürzt. Den Neustart hat dann wie schon geschrieben mein Watchdog nach Hängen > 3 Minuten eingeleitet.