NEWS
SOLVED Adapter s7.0 offline - SIGSEGV und SIGABRT
-
@apollon77 Ich habe eine schlechte Nachricht. Seit späten Freitag nach dem ich die Version 1.1.5 installiert habe war alles io bis gestern (18.12.2019 ca 21:06). Der Fehler (Poll error count und DBRead error) ist erneut gekommen und zwar mehrmals (ca 10x) bis heute Morgen um 06:30 seit dem kommen keine Fehler mehr. Habe natürlich den Adapter neu gestartet) Der Fehler ist bei beiden Adaptern zur gleichen Zeit aufgetaucht als erstes kommt der Fehler: DBRead error : code 0x006 und danach kommt Poll error count: 1 code: 0x006e.
Was mir aufgefallen ist das Problem ist seit Freitag den 13.12 nicht mehr gekommen bis auf gestern. Ich kenne den Adapter Code nicht aber kann villeicht irgendwo eine Programmzeile sein die nach den gewissen Tagen bzw Zeit abgelaufen ist. Und den Fehler verursacht da es wie in bei dem letzten mal wieder nach um 21 Uhr passiert ist.
Vielleicht findest du den Fehler were echt sehr gut. Da ständig meine Log Datei mit den Meldungen voll ist und ich den Adapter neu starten muss. Da wie gesagt sonst die Ein und Ausgänge auf der VIS machen was sie wollen.
Nach einem Neustart funktioniert wieder alles super bis zur nächsten Fehlermeldung. -
@apollon77
Also Update auf Node 10 hat funktioniert über rebuild npm funktioniert auch der S7.0 Adapter wieder.
Danke für den Tipp zu "Richtig updaten"Leider weiterhin abstürze des S7-Adapters. Damit nach wie vor sehr unzuverlässig.
-
Ich habe keine Ahnung was da passiert und wie man da weiterkommt. Der Adapter hat garantiert keine Logik die nach x Tagen irgendwas kaputt macht
Ich kann mir ggf vorstellen das vllt die S7 nach x Tagen die Verbindung schliesst oder so. Kannst Du ggf. da bei der s7 etwas einstellen?
Eine Option das mal auszuprobieren ob es an sich irgendwann schliessenden Connections liegt wäre ggf. die IDee den Adapter einmal pro Tag zu restarten, dann gibts in jedem Fall eine neue verbindung. Instanzen - Expertenmodus - restart schedule
-
@Basti97 PS wie ist das volle log?
Kommt irgendwann ein "try reconnection" und danach tuts wieder oder wie ist es? -
@apollon77 Also die Meldung "try reconnection" kommt nicht (siehe Foto) nach dem der Fehler gekommen ist reagieren die Zustände von der Logo mit einer gewissen Zeitverzögerung (länger als sonst) und auch gewisser massen durcheinander. Zum Beispiel wenn ich den physischen Schalter in meiner Wohnung drücke, geht erst nach ein paar Sekunden (länger als üblich) die Lampen in meiner Vis an bzw aus. Dadurch reagieren auch Aktoren später die an einen Datenpunkt Ausgang des S7 Adapters hängen. Außerdem wird beim Drücken einer virtuellen Schaltfläche in der vis. Fangen andere vis Lampen (Datenpunkte) die mit innerhalb des S7 Adapter sind mit an zu Blinken bzw leuchten kurz auf und gehen wieder aus. Aber nur diese wie gesagt die über den gleichen Adapter laufen.
Erst nach einem Neustart des Adapters funktioniert alles wieder normal bis der Fehler erneut kommt. Dann fängt es von vorne an.
Wenn ich mir das richtig überlege müsste ja bei Wiederherstellung die Meldung: reconnection kommen wie du geschrieben hast. Vielleicht wird die DB nicht mehr richtig hergestellt und dadurch kommt es zu solchen Fehlern.
Gerne kann ich auch den gesamte Log persönlich an dich schicken wenn dieses aussagekräftiger ist. -
@apollon77 Ich habe jetzt das eine Script laufen. Die die Log Datei ausließt und wenn der Fehler erneut kommt wird der Adapter Neu gestartet. Das ist heute Nacht 10x passiert. Dadurch wird der Fehler im Adapter nicht behoben aber der auftretende Fehler in meinen Smart Home erst mal gelöst bis zum nächsten mal.
Oder kann villeicht sein das bei Störung der Netzwerk Verbindung oder so. Es passiert das er die Datenbank nicht mehr richtig wiederherstellen kann. Und dadurch die Fehler kommen. -
@Basti97 Schick mir mal ein log von ohne deinem restart Script. Alte Logs liegen noch auf Platte im Verzeichnis log im iobroker Verzeichnis.
Laut Code sollte er nach 6 Fehlern ein reconnect machen. Würde gern schauen wie das aussieht wenn es nicht per restart gefixt wird.
Gern an iobroker@fischer-ka.de
-
Ps: ich erweitere morgen mal das logging. Dann sehen wir vllt bissl mehr bei so einem Fehler.
-
@Basti97 AUf Github ist eine Version mit noch bissl mehr Logging. Wäre cool wenn DU die mal ohne Dein Restart Script testen könntest. Vom GitHub installieren (Custom install) und dann auf jeden Fall instanz manuell einmal neu starten. Er sollte dann wenn es passiert eine Zeile mehr Loggen. und ich würde gern dann mal ein volles log sehen sobald das passiert. Die Frage ist wie hoch der Fehlerzähler geht
-
Ich musste gerade Feststellen das die älteren Log Dateien weg sind der letzte Eintrag ist der 14.12.2019. Und der Fehler war am 13.12.2019 das letzte mal ohne das ich den Adapter bei jedem Fehler neugestartet habe bzw das er es selbst gemacht hat. Ich habe nun das Script mit dem Automatischen Neustart mal deaktiviert. Und lasse ihn mal in Ruhe ohne diesen immer neu zustarten. Sobald der Fehler wieder kommt werde ich dir den gesamten Log mal schicken denke so in den nächsten Tagen wird es wieder kommen. Soll ich trotzdem die Version installieren die auf Github ist oder noch nicht?
Und wo finde ich diese.
Kann man vielleicht auch ein Adapter nur Updaten da ich ja zwei habe mit zwei verschiedenen Logos oder alle beide?
Ich schicke dir mal eine Email ok. -
@Basti97 Wenn beide s7 Instanzen auf dem gleichen Host laufen kannst DU nur gemeinsam updaten.
Aktualisieren mit dem GitHub Icon unter "Adapter". Sollte "Custom Install" heissen. Dort in der selection s7 wählen, dann updated er von GitHub. Dann instanzen manuell neu starten. Und ja wäre hilfreich weil dann Logging gleich erweitert ist
-
@apollon77 Ja ok werde ich morgen gleich machen. Ich schicke dir die erste Log Datei ohne der Aktualisierung. Fehler ist 21:00 2x erneut aufgetreten. Bei beiden Adaptern. Den Restart Adapter habe ich deaktiviert.
-
@apollon77 Ich habe dir die Log Dateien per Email geschickt ich hoffe sie bringen dir was.
Ich habe den Adapter über die Schaltfläche "Installieren aus eigenen URL" dann von"Github" und den S7 Adapter ausgewählt und auf "Installieren" gegangen. War das richtig. -
Wie lang ist denn die Keep alive Zeit in der s7 konfiguriert?
Also scheinbar gibt es einen timeout bei der Kommunikation. Meistens fängt er sich aber schon nach einem Fehler - also iobroker macht gar keinen eigenen Reconnect.
Jetzt ist die Frage wie man darauf am besten reagiert. Man könnte schon beim ersten auftreten dieses Fehlers einen Reconnect vom Adapter her machen ... können wir mal versuchen.
-
@apollon77 Ich habe dir eine Email geschickt auch mit der Adapter Config.
Ja das könnten wir mal probieren. Ich teste es gerne aus.
-
@Basti97 Ok, GitHub hat neue Verison. Beid em genannten Fehler passiert direkt nach dem ersten Fehler ein Disconnect und nach der eingestellten Reconnect-Zeit ein neuer Connect.
Das kannst Du mal versuchen ... ABER mach mal vorher was anderes:
Unter s7.X.info.poll_time wird beim Daten lesen die Poll-zeit reingeschrieben. Vergleich mal den Wert der da so grob/üblicherweise drin steht BEVOR der Fehler kam und DANACH. Wenn Du sagst das es nach einem solchen Fehler langsamer ist würde ich erwarten das man das da sehen kann ... Wenn ja was sind das für Grössenordnungen?
-
@apollon77 Also die info.Poll time ist nach dem Fehler zwischen 1-4/ Cputime 0.72876 schwankt stark.
Davor war die Polltime zwischen 4-7 auch kurzzeitig mal bei 12.
Cputime: 0.76788 -
@apollon77 Davor sieht es so aus das es viel schneller ist oder? Kann ich den Adapter installieren.
-
@Basti97 hm ... an sich wird da ne zeitdifferenz ermittelt. Heißt also kleiner ist besser. Aber naja ok
Versuch mal GitHub Version. Die Macht wie gesagt direkt einen reconnect wenn der Fehler einmal kam. Es gilt die eingestellte reconnect time. Bei dir glaube 60s. Je nachdem was du in der s7 direkt als Keepalive Time eingestellt hast kannst du das ggf ändern. Aber so wie ich es verstanden haben nicht kleiner als keepalive werden.
-
@apollon77 Ok ich installiere es gerade von Github muss ich danach das ganze System Neu starten oder nur die beiden Adapter?
-
@apollon77 Der hat bei der Polltime nur Zahlen angezeigt mal eine 1 dann 2 usw