FHEM Forum

FHEM => Automatisierung => Thema gestartet von: betateilchen am 03 Februar 2014, 20:10:47

Titel: 93_DbLog blockiert shutdown restart
Beitrag von: betateilchen am 03 Februar 2014, 20:10:47
Originaler Threadtitel war: shutdown restart funktioniert nicht mehr
Wurde geändert, da ein Verdächtiger ermittelt wurde.



Bei einem "shutdown restart" passiert seit neuestem folgendes:


2014.02.03 20:04:51 0: Server shutdown
2014.02.03 20:04:54 1: Including fhem.cfg
2014.02.03 20:04:55 1: telnetPort: Can't open server port at 7072: Die Adresse wird bereits verwendet. Exiting.


und der Neustart wird abgebrochen. Aber es gibt eigentlich nichts ausser fhem, was den Port 7072 verwendet.

Wie kann ich diesem Fehlverhalten auf die Schliche kommen? Von Hand läßt sich fhem problemlos neu starten.

Titel: Antw:shutdown restart funktioniert nicht mehr
Beitrag von: betateilchen am 03 Februar 2014, 21:32:37
ok... Problem erkannt. Die Wartezeit in CommandShutdown($$) ist zu kurz.

Wenn ich in dieser Zeile

      system("(sleep 2; exec $^X $0 $attr{global}{configfile})&");

das sleep von 2 auf 10 ändere, funktioniert alles wieder wie gehabt.

Kann es sein, dass irgendein Modul für das Problem beim Shutdown verantwortlich ist, weil es z.B. sehr lange braucht, um "sich selbst" zu beenden?
Titel: Antw:shutdown restart funktioniert nicht mehr
Beitrag von: betateilchen am 03 Februar 2014, 21:38:44
Zitat von: betateilchen am 03 Februar 2014, 21:32:37
Kann es sein, dass irgendein Modul für das Problem beim Shutdown verantwortlich ist, weil es z.B. sehr lange braucht, um "sich selbst" zu beenden?

jepp - 93_DbLog ist scheinbar der Übeltäter! Wenn ich DbLog deaktiviere, funktioniert der shutdown auch mit sleep 2 wieder.
Titel: Antw:shutdown restart funktioniert nicht mehr
Beitrag von: betateilchen am 03 Februar 2014, 22:11:07
Man hat es sich mit dem Verschieben in diese Rubrik mal wieder sehr einfach gemacht... Ich sehe die Verantwortung AUCH in fhem.pl.
Titel: Antw: Mit DbLog funktioniert shutdown restart nicht mehr
Beitrag von: rudolfkoenig am 03 Februar 2014, 22:14:49
Fhem.pl ist unschuldig: falls ein Modul Probleme beim Shutdown zu loesen hat, sollte ShutdownFn implementieren.

Z.Bsp. mit sleep(10)  :)
Titel: Antw:shutdown restart funktioniert nicht mehr
Beitrag von: betateilchen am 04 Februar 2014, 09:49:06
Das ist schon klar.

Aber wenn ich in fhem.pl das Problem ebenfalls durch eine minimale Änderung beheben kann, stellt sich einfach die Grundsatzfrage, nach welchen Kriterien die "Wartezeit" von 2 Sekunden festgelegt wurde und ob diese zwei Sekunden die "richtige" Lösung sind ;)

Titel: Antw:93_DbLog blockiert shutdown restart
Beitrag von: betateilchen am 04 Februar 2014, 10:42:34
Ich bitte um Prüfung und Einbau des angehängten Patches zu 93_DbLog.pm.

Mit diesem Patch wird ein zusätzliches optionales Attribut shutdownWait eingeführt, das eine einstellbare Pause beim fhem-Shutdown ermöglicht, um eine korrekte Beendigung vor dem Versuch eines Neustarts sicherzustellen.
Titel: Antw:93_DbLog blockiert shutdown restart
Beitrag von: Tobias am 04 Februar 2014, 13:11:04
ich habe noch nicht verstanden was das mit dem Port 7072 zu tun hat??

Ist das "alte" fhem noch online und das neue "fhem" will schon starten? Warum wartet dann das neue fhem nicht bis das alte sich beendet hat? Oder habe ich etwas falsch verstanden?
Titel: Antw:93_DbLog blockiert shutdown restart
Beitrag von: betateilchen am 04 Februar 2014, 13:25:12
Zitat von: Tobias am 04 Februar 2014, 13:11:04Ist das "alte" fhem noch online und das neue "fhem" will schon starten?

so stellt es sich dar.

Zitat von: Tobias am 04 Februar 2014, 13:11:04Warum wartet dann das neue fhem nicht bis das alte sich beendet hat?

Weil ein solches explizites Warten im shutdown Prozess nicht vorgesehen ist, schau Dir in fhem.pl die CommandShutdown an.
Dort werden zuerst alle von Modulen registrierten ShutdownFn nacheinander aufgerufen, dann wird fhem beendet, zwei Sekunden gewartet und der Neustart durchgeführt.

93_DbLog hatte bis jetzt aber keine ShutdownFn und das führt offenbar zu einer Blockade.
Titel: Antw:93_DbLog blockiert shutdown restart
Beitrag von: betateilchen am 16 Februar 2014, 14:43:13
Ist denn schon darüber entschieden, ob bzw. wann die vorgeschlagene ShutdownFn nebst Attribut in 93_DbLog implementiert wird?
Titel: Antw:93_DbLog blockiert shutdown restart
Beitrag von: Tobias am 16 Februar 2014, 17:59:22
Ist schon im Test eingebaut. Aber noch nicht eingecheckt.
Titel: Antw:93_DbLog blockiert shutdown restart
Beitrag von: betateilchen am 16 Februar 2014, 19:08:06
Noch einen Hinweis zum Modul:

Wenn man eine sql-Verbindung definiert, und das zugehörige dbd-perl-Modul ist nicht installiert, stürzt fhem sang- und klanglos beim Verbindungsaufbau ab. Könnte man evtl. mit eval abfangen und eine Fehlermeldung ausgeben, oder zumindest einen Log-Eintrag schreiben.

Fiel mir grade auf, als ich das Logging mit mySql testen wollte anstatt mit sqlite  8)
Titel: Antw:93_DbLog blockiert shutdown restart
Beitrag von: betateilchen am 18 Februar 2014, 20:17:50
Zitat von: Tobias am 16 Februar 2014, 17:59:22Ist schon im Test eingebaut.

Danke für die Bereitstellung!