Fhem hängt + keine Logs...

Begonnen von ChrisW, 15 August 2016, 13:09:36

Vorheriges Thema - Nächstes Thema

ChrisW

Hallo,
ich komme nicht mehr weiter. Es liegt nicht wie vermutet an der Fritzbox Labor version .. wol eher an meinem PI.

Fhem friert einfach ein. Logs füllen sich nicht mehr. Prozess ist noch Aktiv aber auch 0% CPU.

In den Logs steht nichts.
Verbose5 und auch stacktrace ist Aktiv
Es stehen nach einem absturz ganz normale dinge als letztes drin. Mal HM infos mal wetter abfrage aber nicht wieso fhem hängt...
habe absolut KEINE idee mehr.

Gibt es noch eine möglichkeit an mehr Logs zu kommen ?
Raspberry PI3 mit allem möglichen.

Otto123

Hi,

ich glaube wenn Du 0% CPU siehst (mit was?), bedeutet das nicht unbedingt, dass das System nicht voll ausgelastet ist.

Hier sind ein paar Tipps um das System zu analysieren, den per Console kommst Du ja noch drauf - oder?

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

ChrisW

Ja console klappt. Ich nutze top um mir das anzuzeigen
Raspberry PI3 mit allem möglichen.

rudolfkoenig

ZitatFhem friert einfach ein. Logs füllen sich nicht mehr. Prozess ist noch Aktiv aber auch 0% CPU.
Ist die Festplatte voll?

Falls nein: Funktioniert FHEMWEB? Was liefert "strace -p <FHEM-PID>" ?

ChrisW

#4
also neuste Pi updates drauf.

Beim fhem.cfg speichern ewige Ladezeit .. und das wars nichts geht mehr.
festplatte zu 50% leer.

strace liefert :
-interrupt to quit recvform(105,


mehr passietr da nicht

Top zeigt an 10% mem in benutzung. Aber überall noch mehr als genug Frei ...

Habe es gekillt und lasse strace nun mal laufen bis es hängt ...
Kann ich den Inhalt speichern in eine Datei ? Da Kopieren aus Putty nicht so wirklich funktioniert bei mir.
Raspberry PI3 mit allem möglichen.

rudolfkoenig

Jetzt wuesste ich gerne, was 105 ist, siehe "ls -l /proc/<fhem-pid>/fd/105"

ZitatKann ich den Inhalt speichern in eine Datei ?
"strace -o /tmp/xy -p <pid>". Siehe auch "man strace"

ChrisW

Danke.

Da kommt :
startwatchdog und watchdog.pl

Das ist etwas altes was gar nicht mehr Aktiv ist die Dateien liegen im fhem root. Was auch immer diese damit zu tun haben ??
in der fhem.cfg ist dazu nichts.
Raspberry PI3 mit allem möglichen.

marvin78

Findest du denn etwas in deinen fhem Stardateien (bspw. /etc/init.d/fhem)?

ChrisW

Die schaut normal aus :
#!/bin/sh
# description: Start or stop the fhem server
# Added by Alex Peuchert

### BEGIN INIT INFO
# Provides:             fhem.pl
# Required-Start:       $local_fs $remote_fs
# Required-Stop:        $local_fs $remote_fs
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    FHEM server
### END INIT INFO

set -e
cd /opt/fhem
port=7072

case "$1" in
'start')
        echo "Starting fhem..."
        perl fhem.pl fhem.cfg
        RETVAL=$?
        ;;
'stop')
        echo "Stopping fhem..."
        perl fhem.pl $port "shutdown"
        RETVAL=$?
        ;;
'status')
        cnt=`ps -ef | grep "fhem.pl" | grep -v grep | wc -l`
        if [ "$cnt" -eq "0" ] ; then
                echo "fhem is not running"
        else
                echo "fhem is running"
        fi
        ;;
*)
        echo "Usage: $0 { start | stop | status }"
        RETVAL=1
        ;;
esac
exit $RETVAL
Raspberry PI3 mit allem möglichen.

amithlon

Hallo,

Zitat von: ChrisW am 15 August 2016, 14:17:42
Kann ich den Inhalt speichern in eine Datei ? Da Kopieren aus Putty nicht so wirklich funktioniert bei mir.

Windows und Putty: kopieren aus Putty: nur mit der Maus markeiren, der markierte Text landet automatisch im Clipboard.
Clipboard-Inhalt in Putty einfügen an der Cursorpositon: nur rechte Maustaste drücken.

Gruß aus Berlin
Michael

ChrisW

Nicht Windows da hat es damals funktioniert. ich nutze Linux ;)
Aber auch nicht weiter schlimm. Nun passiert natürlich wieder nichts. Läuft alles.
Raspberry PI3 mit allem möglichen.

Wernieman

Unter Linux:
Markieren und mit "Mittlerer Maustaste" woanders einfügen ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

ChrisW

#12
Soo nach langem warten ist es jetzt wieder passiert wohl schon wieder dieses Watchdog ... Woher auch immer das kommt.
Ich habe dies auch erst nach den ersten abstürzen ausprobiert.

Finde in Fhem nichts mehr !
gettimeofday({1471340300, 684929}, NULL) = 0
gettimeofday({1471340300, 687257}, NULL) = 0
stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2309, ...}) = 0
gettimeofday({1471340300, 693243}, NULL) = 0
stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2309, ...}) = 0
gettimeofday({1471340300, 698104}, NULL) = 0
select(112, [9 10 11 43 44 45 60 88 102 104 105], NULL, NULL, {2, 621853}) = 1 (                                                                                                                                                                                                                                             in [10], left {2, 321977})
read(10, "tAE7C72072C23\r\n", 255)      = 15
gettimeofday({1471340301, 6785}, NULL)  = 0
stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2309, ...}) = 0
gettimeofday({1471340301, 11429}, NULL) = 0
stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2309, ...}) = 0
gettimeofday({1471340301, 17758}, NULL) = 0
gettimeofday({1471340301, 21405}, NULL) = 0
gettimeofday({1471340301, 24110}, NULL) = 0
stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2309, ...}) = 0
gettimeofday({1471340301, 30872}, NULL) = 0
stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2309, ...}) = 0
gettimeofday({1471340301, 36010}, NULL) = 0
select(112, [9 10 11 43 44 45 60 88 102 104 105], NULL, NULL, {2, 283946}) = 1 (                                                                                                                                                                                                                                             in [10], left {0, 651478})
read(10, "tA0E581781615\r\n", 255)      = 15
gettimeofday({1471340302, 676779}, NULL) = 0
stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2309, ...}) = 0
gettimeofday({1471340302, 681158}, NULL) = 0
stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2309, ...}) = 0
gettimeofday({1471340302, 686384}, NULL) = 0
gettimeofday({1471340302, 689280}, NULL) = 0
gettimeofday({1471340302, 691525}, NULL) = 0
stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2309, ...}) = 0
gettimeofday({1471340302, 696775}, NULL) = 0
stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2309, ...}) = 0
gettimeofday({1471340302, 701361}, NULL) = 0
select(112, [9 10 11 43 44 45 60 88 102 104 105], NULL, NULL, {0, 618596}) = 1 (                                                                                                                                                                                                                                             in [10], left {0, 326228})
read(10, "tAEE557057214\r\n", 255)      = 15
gettimeofday({1471340303, 1824}, NULL)  = 0
stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2309, ...}) = 0
gettimeofday({1471340303, 6641}, NULL)  = 0
stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2309, ...}) = 0
gettimeofday({1471340303, 12345}, NULL) = 0
gettimeofday({1471340303, 16086}, NULL) = 0
gettimeofday({1471340303, 18725}, NULL) = 0
stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2309, ...}) = 0
gettimeofday({1471340303, 25301}, NULL) = 0
stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2309, ...}) = 0
gettimeofday({1471340303, 30392}, NULL) = 0
select(112, [9 10 11 43 44 45 60 88 102 104 105], NULL, NULL, {0, 289565}) = 0 (                                                                                                                                                                                                                                             Timeout)
gettimeofday({1471340303, 325984}, NULL) = 0
gettimeofday({1471340303, 334454}, NULL) = 0
socket(PF_INET, SOCK_STREAM, IPPROTO_TCP) = 5
ioctl(5, SNDCTL_TMR_TIMEBASE or TCGETS, 0xbec8e844) = -1 ENOTTY (Inappropriate i                                                                                                                                                                                                                                             octl for device)
_llseek(5, 0, 0xbec8e890, SEEK_CUR)     = -1 ESPIPE (Illegal seek)
ioctl(5, SNDCTL_TMR_TIMEBASE or TCGETS, 0xbec8e844) = -1 ENOTTY (Inappropriate i                                                                                                                                                                                                                                             octl for device)
_llseek(5, 0, 0xbec8e890, SEEK_CUR)     = -1 ESPIPE (Illegal seek)
fcntl64(5, F_SETFD, FD_CLOEXEC)         = 0
fcntl64(5, F_GETFL)                     = 0x2 (flags O_RDWR)
fcntl64(5, F_SETFL, O_RDWR|O_NONBLOCK)  = 0
connect(5, {sa_family=AF_INET, sin_port=htons(5577), sin_addr=inet_addr("192.168                                                                                                                                                                                                                                             .2.46")}, 16) = -1 EINPROGRESS (Operation now in progress)
select(8, NULL, [5], NULL, {2, 0})      = 1 (out [5], left {1, 994701})
connect(5, {sa_family=AF_INET, sin_port=htons(5577), sin_addr=inet_addr("192.168                                                                                                                                                                                                                                             .2.46")}, 16) = 0
fcntl64(5, F_GETFL)                     = 0x802 (flags O_RDWR|O_NONBLOCK)
fcntl64(5, F_SETFL, O_RDWR)             = 0
getpeername(5, {sa_family=AF_INET, sin_port=htons(5577), sin_addr=inet_addr("192                                                                                                                                                                                                                                             .168.2.46")}, [16]) = 0
getpeername(5, {sa_family=AF_INET, sin_port=htons(5577), sin_addr=inet_addr("192                                                                                                                                                                                                                                             .168.2.46")}, [16]) = 0
send(5, "\357\1w", 3, 0)                = 3
recvfrom(5, ^C <unfinished ...>
Process 2609 detached
root@raspberrypi:~# ls -I /proc/2609/fd/5
startwatchdog  watchdog.pl
root@raspberrypi:~#


Ich lasse jetzt alles wie es ist und starte FHEM nicht mehr. Was kann ich nun noch versuchen?

Habe mal geschaut es läuft auch kein Watchdog ..

ps aux | grep perl
fhem      2609  5.0 11.3  55828 50504 ?        S    Aug15  66:39 perl fhem.pl fhem.cfg
root     19931  0.0  0.4   4160  1884 pts/0    S+   12:29   0:00 grep perl


Ups ein fehler ich habe ls -I gemacht und nicht ls -l:
root@raspberrypi:~# ls -l /proc/2609/fd/5
lrwx------ 1 root root 64 Aug 16 12:43 /proc/2609/fd/5 -> socket:[63438]



Somit war das Watchdog nur der Inhalt von root ;)
Leider sagt mir das nun gar nichts was es mit deinem Problem zu tun hat
Raspberry PI3 mit allem möglichen.

rudolfkoenig

Zitatrecvfrom(5, ^C <unfinished ...>
...
lrwx------ 1 root root 64 Aug 16 12:43 /proc/2609/fd/5 -> socket:[63438]
FHEM wartet also auf Netzwerk-Daten. Mit
lsof | grep 63438
kriegt man etwas mehr Details ueber diesen Netzwerk-Kanal, was hoffentlich reicht, um den Verursacher zu identifizieren. Am besten im Problemfall vor FHEM-Neustart die Ausgabe von lsof in einer Datei sichern.

ChrisW

aha ...
ergebniss:
perl       2609            fhem    5u     IPv4      63438      0t0        TCP RaspBerry-FHEM.fritz.box:47483->WIFILED-KUECHE.fritz.box:5577 (ESTABLISHED)

Das ist :

define wifiledkueche LW12 192.168.2.46
attr wifiledkueche room Lampen
attr wifiledkueche webCmd rgb:rgb ff0000:rgb 00ff00:rgb 0000ff:toggle:on:off:dim
Raspberry PI3 mit allem möglichen.