Absturz FHEM nach Aktivierung des externen RPC-Servers und Editieren fhem.cfg

Begonnen von Hans-Ulrich Tag, 29 Juli 2017, 17:17:41

Vorheriges Thema - Nächstes Thema

Hans-Ulrich Tag

Hallo zusammen,

zurzeit nutze ich 2 Systeme mit FHEM, von denen eines im Wirkbetrieb ist und das andere als VM in Parallels zum "Spielen" installiert wurde.

Nun habe ich im Modul "HMCCU" (Version 4.1) in beiden Systemen (jeweils 5.8 und aktuell) den externen RPC-Server aktiviert.

Im Log erhalte ich folgende Hinweise:
2017.07.29 14:43:57 1: HMCCU: Device myccu. Initialized version 4.1
2017.07.29 14:43:59 2: HMCCU: Corrupt or invalid entry in device table for device BidCoS-Wir:0
2017.07.29 14:43:59 2: HMCCU: Corrupt or invalid entry in device table for device BidCoS-Wir:1
2017.07.29 14:43:59 2: HMCCU: Corrupt or invalid entry in device table for device BidCoS-Wir:10
2017.07.29 14:43:59 2: HMCCU: Corrupt or invalid entry in device table for device BidCoS-Wir:11
2017.07.29 14:43:59 2: HMCCU: Corrupt or invalid entry in device table for device BidCoS-Wir:12
2017.07.29 14:43:59 2: HMCCU: Corrupt or invalid entry in device table for device BidCoS-Wir:13
2017.07.29 14:43:59 2: HMCCU: Corrupt or invalid entry in device table for device BidCoS-Wir:14
2017.07.29 14:43:59 2: HMCCU: Corrupt or invalid entry in device table for device BidCoS-Wir:15
2017.07.29 14:43:59 2: HMCCU: Corrupt or invalid entry in device table for device BidCoS-Wir:16
2017.07.29 14:43:59 2: HMCCU: Corrupt or invalid entry in device table for device BidCoS-Wir:17
2017.07.29 14:43:59 2: HMCCU: Corrupt or invalid entry in device table for device BidCoS-Wir:18
2017.07.29 14:43:59 2: HMCCU: Corrupt or invalid entry in device table for device BidCoS-Wir:19
2017.07.29 14:43:59 2: HMCCU: Corrupt or invalid entry in device table for device BidCoS-Wir:2
2017.07.29 14:43:59 2: HMCCU: Corrupt or invalid entry in device table for device BidCoS-Wir:20
2017.07.29 14:43:59 2: HMCCU: Corrupt or invalid entry in device table for device BidCoS-Wir:21
2017.07.29 14:43:59 2: HMCCU: Corrupt or invalid entry in device table for device BidCoS-Wir:22
2017.07.29 14:43:59 2: HMCCU: Corrupt or invalid entry in device table for device BidCoS-Wir:23
2017.07.29 14:43:59 2: HMCCU: Corrupt or invalid entry in device table for device BidCoS-Wir:24
2017.07.29 14:43:59 2: HMCCU: Corrupt or invalid entry in device table for device BidCoS-Wir:25
2017.07.29 14:43:59 2: HMCCU: Corrupt or invalid entry in device table for device BidCoS-Wir:26
2017.07.29 14:43:59 2: HMCCU: Corrupt or invalid entry in device table for device BidCoS-Wir:27
2017.07.29 14:43:59 2: HMCCU: Corrupt or invalid entry in device table for device BidCoS-Wir:28
2017.07.29 14:43:59 2: HMCCU: Corrupt or invalid entry in device table for device BidCoS-Wir:29
2017.07.29 14:43:59 2: HMCCU: Corrupt or invalid entry in device table for device BidCoS-Wir:3
2017.07.29 14:43:59 2: HMCCU: Corrupt or invalid entry in device table for device BidCoS-Wir:30
2017.07.29 14:43:59 2: HMCCU: Corrupt or invalid entry in device table for device BidCoS-Wir:31
2017.07.29 14:43:59 2: HMCCU: Corrupt or invalid entry in device table for device BidCoS-Wir:32
2017.07.29 14:43:59 2: HMCCU: Corrupt or invalid entry in device table for device BidCoS-Wir:33
2017.07.29 14:43:59 2: HMCCU: Corrupt or invalid entry in device table for device BidCoS-Wir:34
2017.07.29 14:43:59 2: HMCCU: Corrupt or invalid entry in device table for device BidCoS-Wir:35
2017.07.29 14:43:59 2: HMCCU: Corrupt or invalid entry in device table for device BidCoS-Wir:36
2017.07.29 14:43:59 2: HMCCU: Corrupt or invalid entry in device table for device BidCoS-Wir:37
2017.07.29 14:43:59 2: HMCCU: Corrupt or invalid entry in device table for device BidCoS-Wir:38
2017.07.29 14:43:59 2: HMCCU: Corrupt or invalid entry in device table for device BidCoS-Wir:39
2017.07.29 14:43:59 2: HMCCU: Corrupt or invalid entry in device table for device BidCoS-Wir:4
2017.07.29 14:43:59 2: HMCCU: Corrupt or invalid entry in device table for device BidCoS-Wir:40
2017.07.29 14:43:59 2: HMCCU: Corrupt or invalid entry in device table for device BidCoS-Wir:41
2017.07.29 14:43:59 2: HMCCU: Corrupt or invalid entry in device table for device BidCoS-Wir:42
2017.07.29 14:43:59 2: HMCCU: Corrupt or invalid entry in device table for device BidCoS-Wir:43
2017.07.29 14:43:59 2: HMCCU: Corrupt or invalid entry in device table for device BidCoS-Wir:44
2017.07.29 14:43:59 2: HMCCU: Corrupt or invalid entry in device table for device BidCoS-Wir:45
2017.07.29 14:43:59 2: HMCCU: Corrupt or invalid entry in device table for device BidCoS-Wir:46
2017.07.29 14:43:59 2: HMCCU: Corrupt or invalid entry in device table for device BidCoS-Wir:47
2017.07.29 14:43:59 2: HMCCU: Corrupt or invalid entry in device table for device BidCoS-Wir:48
2017.07.29 14:43:59 2: HMCCU: Corrupt or invalid entry in device table for device BidCoS-Wir:49
2017.07.29 14:43:59 2: HMCCU: Corrupt or invalid entry in device table for device BidCoS-Wir:5
2017.07.29 14:43:59 2: HMCCU: Corrupt or invalid entry in device table for device BidCoS-Wir:50
2017.07.29 14:43:59 2: HMCCU: Corrupt or invalid entry in device table for device BidCoS-Wir:6
2017.07.29 14:43:59 2: HMCCU: Corrupt or invalid entry in device table for device BidCoS-Wir:7
2017.07.29 14:43:59 2: HMCCU: Corrupt or invalid entry in device table for device BidCoS-Wir:8
2017.07.29 14:43:59 2: HMCCU: Corrupt or invalid entry in device table for device BidCoS-Wir:9
2017.07.29 14:43:59 2: HMCCU: Corrupt or invalid entry in device table for device System:1
2017.07.29 14:43:59 2: HMCCU: Corrupt or invalid entry in device table for device System:2
2017.07.29 14:44:00 1: HMCCU: Read 86 devices with 203 channels from CCU 192.168.xx.yy
2017.07.29 14:44:00 1: HMCCURPC: Device myccu_rpc. Initialized version 0.96 beta


Wired-Geräte nutze ich aber gar nicht.

Weiterhin wird beim Starten von HMCCU folgendes erzeugt:
2017.07.29 14:40:17 0: HMCCU: Start of RPC server after FHEM initialization in 12 seconds
2017.07.29 14:40:17 2: SecurityCheck:  WEB,WEBphone,WEBtablet has no associated allowed device with basicAuth. telnetPort has no associated allowed device with password/globalpassword.  Restart FHEM for a new check if the problem is fixed, or set the global attribute motd to none to supress this message.
2017.07.29 14:40:17 0: Featurelevel: 5.8
2017.07.29 14:40:17 0: Server started with 12 defined entities (fhem.pl:14634/2017-07-03 perl:5.020002 os:linux user:hannes pid:21240)
2017.07.29 14:40:29 2: HMCCURPC: Starting thread for data processing
2017.07.29 14:40:29 2: HMCCURPC: Started thread for data processing. TID=1
2017.07.29 14:40:29 2: CCURPC: Thread DATA processing RPC events. TID=1
2017.07.29 14:40:29 2: HMCCURPC: RPC server thread started for interface BidCos-RF with TID=2
2017.07.29 14:40:29 2: CCURPC: Initializing RPC server CB2001 for interface BidCos-RF
2017.07.29 14:40:29 2: HMCCURPC: Callback server CB2001 created. Listening on port 7411
2017.07.29 14:40:29 2: CCURPC: CB2001 accepting connections. TID=2
2017.07.29 14:40:30 1: HMCCURPC: RPC server(s) starting
2017.07.29 14:40:30 1: HMCCURPC: Received SL event. RPC server DATA enters server loop
2017.07.29 14:40:30 1: HMCCURPC: Received SL event. RPC server CB2001 enters server loop
2017.07.29 14:40:30 1: HMCCURPC: All threads working
2017.07.29 14:40:30 2: HMCCURPC: Registering callback http://192.168.xx.yy:7411/fh2001 with ID CB2001 at http://192.168.xx.yy:2001/
2017.07.29 14:40:30 1: CCURPC: CB2001 ListDevices. Sending init to HMCCU
2017.07.29 14:40:30 1: HMCCURPC: RPC callback with URL http://192.168.xx.yy:7411/fh2001 registered
2017.07.29 14:40:30 1: HMCCURPC: Received IN event. RPC server CB2001 running.
2017.07.29 14:40:30 1: HMCCURPC: All RPC servers running
2017.07.29 14:40:30 2: HMCCURPC: Updated devices. Success=1 Failed=0
2017.07.29 14:40:31 2: CCURPC: CB2001 NewDevice received 183 device and channel specifications
2017.07.29 14:40:59 1: HMCCURPC: Found 2 threads. Stopping ...
2017.07.29 14:40:59 1: HMCCURPC: Deregistering RPC server http://192.168.xx.yy:7411/fh2001 with ID CB2001 at http://192.168.xx.yy:2001/
2017.07.29 14:40:59 1: HMCCURPC: RPC callback for server CB2001 deregistered
2017.07.29 14:40:59 2: HMCCURPC: Sending signal INT to thread CB2001 TID=2
2017.07.29 14:41:00 2: CCURPC: RPC server CB2001 stopped handling connections. TID=2
2017.07.29 14:41:00 1: HMCCURPC: Received EX event. Thread CB2001 terminated.
2017.07.29 14:41:00 2: HMCCURPC: Thread CB2001 with TID=2 has been stopped. Deleting it
2017.07.29 14:41:00 2: HMCCURPC: All RPC servers stopped. Terminating data processing thread
2017.07.29 14:41:00 2: HMCCURPC: Sending signal INT to thread DATA TID=1
2017.07.29 14:41:00 2: CCURPC: DATA stopped event processing. TID=1
2017.07.29 14:41:01 1: HMCCURPC: Received EX event. Thread DATA terminated.
2017.07.29 14:41:01 2: HMCCURPC: Thread DATA with TID=1 has been stopped. Deleting it
2017.07.29 14:41:01 2: HMCCURPC: Stop I/O handling
2017.07.29 14:41:01 2: HMCCURPC: Close child socket
2017.07.29 14:41:01 2: HMCCURPC: Close parent socket
2017.07.29 14:41:01 1: HMCCURPC: All threads stopped
2017.07.29 14:41:18 2: HMCCU: Create child process with timeouts 0.01 and 0.25
2017.07.29 14:41:18 0: HMCCU: Child process for server CB2001 started with PID 21282
2017.07.29 14:41:18 0: CCURPC: CB2001 Creating file queue /tmp/ccuqueue_2001_1
2017.07.29 14:41:18 0: RPC server(s) starting
2017.07.29 14:41:18 0: CCURPC: Initializing RPC server CB2001
2017.07.29 14:41:18 0: CCURPC: Callback server created listening on port 7411
2017.07.29 14:41:18 1: CCURPC: CB2001 Adding callback for events
2017.07.29 14:41:18 1: CCURPC: CB2001 Adding callback for new devices
2017.07.29 14:41:18 1: CCURPC: CB2001 Adding callback for deleted devices
2017.07.29 14:41:18 1: CCURPC: CB2001 Adding callback for modified devices
2017.07.29 14:41:18 1: CCURPC: CB2001 Adding callback for replaced devices
2017.07.29 14:41:18 1: CCURPC: CB2001 Adding callback for readded devices
2017.07.29 14:41:18 1: CCURPC: CB2001 Adding callback for list devices
2017.07.29 14:41:18 0: CCURPC: CB2001 Entering server loop
2017.07.29 14:41:25 0: HMCCU: Received SL event. RPC server CB2001 enters server loop
2017.07.29 14:41:32 1: HMCCU: Registering callback http://192.168.xx.yy:7411/fh2001 with ID CB2001 at http://192.168.xx.yy:2001/
2017.07.29 14:41:32 1: CCURPC: CB2001 ListDevices. Sending init to HMCCU
2017.07.29 14:41:32 1: HMCCU: RPC callback with URL http://192.168.xx.yy:7411/fh2001 initialized
2017.07.29 14:41:33 2: CCURPC: CB2001 NewDevice received 183 device specifications
2017.07.29 14:41:37 0: HMCCU: Received IN event. RPC server CB2001 initialized.
2017.07.29 14:41:38 2: HMCCU: Updated devices. Success=1 Failed=0
2017.07.29 14:41:38 1: HMCCU: All RPC servers running
2017.07.29 14:42:02 1: HMCCU: Deregistering RPC server http://192.168.xx.yy:7411/fh2001 at http://192.168.xx.yy:2001/
2017.07.29 14:42:02 0: HMCCU: Stopping RPC server CB2001 with PID 21282
2017.07.29 14:42:02 0: CCURPC: CB2001 Server loop terminated
2017.07.29 14:42:02 2: CCURPC: Eventcount DD = 0
2017.07.29 14:42:02 2: CCURPC: Eventcount EV = 13
2017.07.29 14:42:02 2: CCURPC: Eventcount EX = 1
2017.07.29 14:42:02 2: CCURPC: Eventcount IN = 1
2017.07.29 14:42:02 2: CCURPC: Eventcount ND = 183
2017.07.29 14:42:02 2: CCURPC: Eventcount RA = 0
2017.07.29 14:42:02 2: CCURPC: Eventcount RD = 0
2017.07.29 14:42:02 2: CCURPC: Eventcount SL = 1
2017.07.29 14:42:02 2: CCURPC: Eventcount UD = 0
2017.07.29 14:42:02 2: CCURPC: Eventcount total = 199
2017.07.29 14:42:02 2: CCURPC: Eventcount writeerror = 0
2017.07.29 14:42:04 1: Including fhem.cfg


Soweit sieht das ja erstmal ok aus.

Wenn ich jetzt aber die fhem.cfg über die integrierte Funktion "Edit files" editiere und speichere, stürzt FHEM gnadenlos ab und fhem.pl wird nicht mehr ausgeführt.

Hier der Auszug aus dem daraus resultierenden Log:
2017.07.29 15:05:06 1: HMCCURPC: Found 2 threads. Stopping ...
2017.07.29 15:05:06 1: HMCCURPC: Deregistering RPC server http://192.168.xx.yy:7411/fh2001 with ID CB2001 at http://192.168.xx.yy:2001/
2017.07.29 15:05:06 1: HMCCURPC: RPC callback for server CB2001 deregistered
2017.07.29 15:05:06 2: HMCCURPC: Sending signal INT to thread CB2001 TID=4
2017.07.29 15:05:06 2: CCURPC: RPC server CB2001 stopped handling connections. TID=4
2017.07.29 15:05:07 0: HMCCU: Can't find RPC device
2017.07.29 15:05:07 1: Including fhem.cfg
2017.07.29 15:05:07 1: telnetPort: Can't open server port at 7072: Die Adresse wird bereits verwendet. Exiting.


Das passiert wie gesagt nur mit dem externen RPC-Server; bei Benutzung des internen kann die fhem.cfg in beiden Systemen problemlos editiert und auch gespeichert werden.
Das Produktiv-System ist ein RPI2 (Linux raspberrypi2 4.9.39-v7+ #1021 SMP Mon Jul 24 11:32:18 BST 2017 armv7l GNU/Linux) und die Spielwiese eine Parallels-VM mit Debian (Linux debian 3.16.0-4-amd64 #1 SMP Debian 3.16.43-2+deb8u2 (2017-06-26) x86_64 GNU/Linux).

Ich glaube, dass Du mal wieder gefragt bist, zap.

Euch allen ein schönes Wochenende.

Gruß

Hans-Ulrich

zap

Zum 1. Problem "Corrupt or invalid entry ...": was verbirgt sich hinter den Kanälen BidCoS-Wir:n ? Hat das was mit Wired zu tun? Ist mir bisher noch nicht unter gekommen.

Zum 2. Problem: Ich halte das manuelle Editieren der fhem.cfg - insbesondere bei laufendem FHEM- für eine schlechte Idee. Zumal ich nicht genau weiß, was nach dem Abspeichern passiert. Wird dann ein rereadcfg ausgeführt? Darauf deutet zumindest hin, dass der RPC Server versucht zu stoppen. Das klappt vermutlich nicht vollständig bzw. nicht rechtzeitig und führt so zu dem Absturz. Aber das ist nur eine Vermutung.

Du kannst mal folgende Vorgehensweise versuchen:

- RPC Server stoppen
- fhem.cfg editieren
- RPC Server wieder starten

Besser wäre aber m.E. zum Editieren der fhem.cfg FHEM anzuhalten.
2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)

Hans-Ulrich Tag

Zitat von: zap am 30 Juli 2017, 13:15:07
Zum 1. Problem "Corrupt or invalid entry ...": was verbirgt sich hinter den Kanälen BidCoS-Wir:n ? Hat das was mit Wired zu tun? Ist mir bisher noch nicht unter gekommen.

Zum 2. Problem: Ich halte das manuelle Editieren der fhem.cfg - insbesondere bei laufendem FHEM- für eine schlechte Idee. Zumal ich nicht genau weiß, was nach dem Abspeichern passiert. Wird dann ein rereadcfg ausgeführt? Darauf deutet zumindest hin, dass der RPC Server versucht zu stoppen. Das klappt vermutlich nicht vollständig bzw. nicht rechtzeitig und führt so zu dem Absturz. Aber das ist nur eine Vermutung.

Du kannst mal folgende Vorgehensweise versuchen:

- RPC Server stoppen
- fhem.cfg editieren
- RPC Server wieder starten

Besser wäre aber m.E. zum Editieren der fhem.cfg FHEM anzuhalten.

Hallo zap,

das versuche ich mal (RPC-Server anhalten).

Die BidCoS-Wir:n scheinen die 50 virtuellen Devices der CCU2 zu sein. Wired nutze ich aber gar nicht.

zap

Zitat von: Hans-Ulrich Tag am 30 Juli 2017, 13:48:34
Die BidCoS-Wir:n scheinen die 50 virtuellen Devices der CCU2 zu sein. Wired nutze ich aber gar nicht.

Nein, die haben die Adressen BidCoS-RF:n. Daher meine Vermutung, dass bei Dir aus irgendwelchen Gründen (auch) virtuelle Wired Geräte existieren. Vielleicht kannst Du bei Gelegenheit in der CCU mal unter "Einstellungen -> Geräte" nachschauen. Die virtuellen Kanäle findest Du dort unter dem Gerät "CCU".

2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)

Hans-Ulrich Tag

Zitat von: zap am 30 Juli 2017, 14:51:52
Nein, die haben die Adressen BidCoS-RF:n. Daher meine Vermutung, dass bei Dir aus irgendwelchen Gründen (auch) virtuelle Wired Geräte existieren. Vielleicht kannst Du bei Gelegenheit in der CCU mal unter "Einstellungen -> Geräte" nachschauen. Die virtuellen Kanäle findest Du dort unter dem Gerät "CCU".

Hallo zap,

die wired-Geräte heißen doch aber nicht BidCoS-RF, sondern BidCos-Wired, die anderen sind doch die virtuellen drahtlosen Geräte.
Und die 50 virtuellen wired-Geräte wurden automatisch angelegt. Müssten auch bei Dir zu finden sein, sofern Du auch eine CCU(2) nutzt.

Edit: wenn ich den externen RPC-Server anhalte, kann ich die fhem.cfg übrigens tatsächlich editieren.

zap

Ich nutze die CCU und habe die wired Geräte nicht. Mysteriös. Hat aber mit dem Absturz nichts zu tun, die werden von HMCCU ignoriert.
2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)