FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: rogseut am 26 September 2015, 16:54:26

Titel: Fehlermeldung Blocking.pm line 105
Beitrag von: rogseut am 26 September 2015, 16:54:26
2015.09.26 16:49:38 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at /opt/fhem/FHEM/Blocking.pm line 105.
2015.09.26 16:49:38 1: CallBlockingFn: Can't connect to localhost:: IO::Socket::INET: Bad hostname 'localhost:'

Das Interessante dabei ist es tritt genau alle 60s ein und wiederholt sich.

Hab schon hier im Forum gesucht jedoch keine Lösung gefunden.
Anscheinend soll das was mit der Telnet Verbindung sein, leider versteh ich davon zu wenig,

Kann mir hier jemand helfen?
Titel: Antw:Fehlermeldung Blocking.pm line 105
Beitrag von: rogseut am 26 September 2015, 17:00:28
Das habe ich noch zum Thema gefunden

http://forum.fhem.de/index.php?topic=27800.0
Titel: Antw:Fehlermeldung Blocking.pm line 105
Beitrag von: rogseut am 26 September 2015, 18:25:25
2015.09.26 18:16:46 5: SYSMON sysmon: Exec_Local.4092 Result '$VAR1 = 'Filesystem     1M-blocks  Used Available Use% Mounted on
';
$VAR2 = '/dev/root           5703  5296        96  99% /
';
'
2015.09.26 18:16:46 5: SYSMON sysmon: getFileSystemInfo.2566 recieved 2 lines
2015.09.26 18:16:46 5: SYSMON sysmon: getFileSystemInfo.2583 recieved line0 Filesystem     1M-blocks  Used Available Use% Mounted on

2015.09.26 18:16:46 5: SYSMON sysmon: getFileSystemInfo.2602 analyse line /dev/root           5703  5296        96  99% /
for /
2015.09.26 18:16:46 5: SYSMON sysmon: getFileSystemInfo.2611 pattern (/) found
2015.09.26 18:16:46 5: SYSMON sysmon: getFileSystemInfo.2617 use line /dev/root           5703  5296        96  99% /

2015.09.26 18:16:46 5: SYSMON sysmon: getFileSystemInfo.2550 get fs_usb1:/media/usb1:USB-Stick
2015.09.26 18:16:46 5: SYSMON sysmon: getFileSystemInfo.2561 exec df /media/usb1 -m 2>/dev/null
2015.09.26 18:16:46 5: SYSMON sysmon: Exec_Local.4087 Execute 'df /media/usb1 -m 2>/dev/null'
2015.09.26 18:16:46 5: SYSMON sysmon: Exec_Local.4102 Result undef
2015.09.26 18:16:46 5: SYSMON sysmon: getFileSystemInfo.2566 recieved 1 lines
2015.09.26 18:16:46 5: SYSMON sysmon: getFileSystemInfo.2586 recieved empty line
   2015.09.26 18:16:46 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at /opt/fhem/FHEM/Blocking.pm line 105.
   2015.09.26 18:16:46 3: stacktrace:
   2015.09.26 18:16:46 3:     main::__ANON__                      called by /opt/fhem/FHEM/Blocking.pm (105)
   2015.09.26 18:16:46 3:     main::BlockingInformParent          called by /opt/fhem/FHEM/Blocking.pm (92)
   2015.09.26 18:16:46 3:     main::BlockingCall                  called by /opt/fhem/FHEM/42_SYSMON.pm (898)
   2015.09.26 18:16:46 3:     main::SYSMON_Update                 called by fhem.pl (2683)
   2015.09.26 18:16:46 3:     main::HandleTimeout                 called by fhem.pl (583)
   2015.09.26 18:16:46 1: CallBlockingFn: Can't connect to localhost:: IO::Socket::INET: Bad hostname 'localhost:'
2015.09.26 18:16:49 5: Triggering powermonitor (4 changes)
2015.09.26 18:16:49 5: Notify loop for powermonitor Leistung_X1: 28.62
2015.09.26 18:16:49 5: Messwerte: not on any display, ignoring notify
2015.09.26 18:16:55 5: exec at command Time_Update
2015.09.26 18:16:55 5: Cmd: >{ fhem 'set fp_Time '.strftime('%Y-%m-%d     %H:%M', localtime) }<



Die Wichtigen Zeilen hab ich mal eingerutscht.

Kommt das vom SYSMON??
Titel: Antw:Fehlermeldung Blocking.pm line 105
Beitrag von: rapster am 26 September 2015, 18:34:11
definier mal ein Telnet-Device => http://fhem.de/commandref_DE.html#telnet

Gruß
  Claudiu
Titel: Antw:Fehlermeldung Blocking.pm line 105
Beitrag von: rogseut am 26 September 2015, 18:54:36
Du meinst das hier?

Ist bereits drin.

#---------------------------------
#--        telnetPort           --
#---------------------------------
define telnetPort telnet 7072 global
attr telnetPort SSL 1
Titel: Antw:Fehlermeldung Blocking.pm line 105
Beitrag von: LuckyDay am 26 September 2015, 18:56:30
Zitatattr telnetPort SSL 1

wen wundert es ,
Titel: Antw:Fehlermeldung Blocking.pm line 105
Beitrag von: rogseut am 26 September 2015, 19:01:03
selbe Problem auch bei SSL 0
schon getestet.
Titel: Antw:Fehlermeldung Blocking.pm line 105
Beitrag von: rapster am 26 September 2015, 19:02:06
save + shutdown restart gemacht?
Titel: Antw:Fehlermeldung Blocking.pm line 105
Beitrag von: rogseut am 26 September 2015, 19:05:08
Habe nun das ganze Systemmonitoring auskommentiert der Fehler scheint nun weg zu sein.
Werde versuchen nach und nach wieder etwas in Betrieb nehmen.
Mal sehn wann es wieder auftritt.





#########################################################################
## Room : Server
########################################################################
#########################################################################
## Funktion......: FHEM Backup
## Besonderheiten: Anzeige der vorhandenen Backups im dummy
#########################################################################

define SYS_Backup dummy
attr SYS_Backup alias FHEM Backup ausführen
attr SYS_Backup room Server
define SYS_BackupRun notify SYS_Backup:* backup
attr SYS_BackupRun room Server

#########################################################################

# Modul-Definition
define sysmon SYSMON 1 1 1 10
attr sysmon event-on-update-reading cpu_temp,cpu_temp_avg,cpu_freq,eth0_diff,loadavg,ram,fs_.*
attr sysmon filesystems fs_boot:/boot,fs_root:/:Root,fs_usb1:/media/usb1:USB-Stick
attr sysmon group RPi
attr sysmon network-interfaces eth0:eth0:Ethernet,wlan0:wlan0:WiFi
attr sysmon room Server
#attr sysmon event-on-update-reading cpu_temp,cpu_temp_avg,cpu_freq,eth0_diff,loadavg,ram,^~ /.*usb.*,~ /$

#########################################################################

# Log
define FileLog_sysmon FileLog ./log/sysmon-%Y-%m.log sysmon
attr FileLog_sysmon group RPi
attr FileLog_sysmon logtype SM_CPUTemp:Plot,text
attr FileLog_sysmon room Server

#########################################################################

# Visualisierung: CPU-Temperatur
define wl_sysmon_temp SVG FileLog_sysmon:SM_CPUTemp:CURRENT
attr wl_sysmon_temp group RPi
attr wl_sysmon_temp label "CPU Temperatur: Min $data{min2}, Max $data{max2}, Last $data{currval2}"
attr wl_sysmon_temp room Server

#########################################################################

# Visualisierung: Netzwerk-Datenübertragung fü eth0
define wl_sysmon_eth0 SVG FileLog_sysmon:SM_Network_eth0:CURRENT
attr wl_sysmon_eth0 group RPi
attr wl_sysmon_eth0 label "Netzwerk-Traffic eth0: $data{min1}, Max: $data{max1}, Aktuell: $data{currval1}"
attr wl_sysmon_eth0 room Server

#########################################################################

# Visualisierung: Netzwerk-Datenübertragung fü wlan0
define wl_sysmon_wlan0 SVG FileLog_sysmon:SM_Network_wlan0:CURRENT
attr wl_sysmon_wlan0 group RPi
attr wl_sysmon_wlan0 label "Netzwerk-Traffic wlan0: $data{min1}, Max: $data{max1}, Aktuell: $data{currval1}"
attr wl_sysmon_wlan0 room Server

#########################################################################

# Visualisierung: CPU-Auslastung (load average)
define wl_sysmon_load SVG FileLog_sysmon:SM_Load:CURRENT
attr wl_sysmon_load group RPi
attr wl_sysmon_load label "Load Min: $data{min1}, Max: $data{max1}, Aktuell: $data{currval1}"
attr wl_sysmon_load room Server

#########################################################################

# Visualisierung: RAM-Nutzung
define wl_sysmon_ram SVG FileLog_sysmon:SM_RAM:CURRENT
attr wl_sysmon_ram group RPi
attr wl_sysmon_ram label "RAM-Nutzung Total: $data{max1}, Min: $data{min2}, Max: $data{max2}, Aktuell: $data{currval2}"
attr wl_sysmon_ram room Server

#########################################################################

# Visualisierung: Dateisystem: Root-Partition
define wl_sysmon_fs_root SVG FileLog_sysmon:SM_FS_root:CURRENT
attr wl_sysmon_fs_root group RPi
attr wl_sysmon_fs_root label "Root Partition Total: $data{max1}, Min: $data{min2}, Max: $data{max2}, Aktuell: $data{currval2}"
attr wl_sysmon_fs_root room Server

#########################################################################

# Visualisierung: Dateisystem: USB-Stick
define wl_sysmon_fs_usb1 SVG FileLog_sysmon:SM_FS_usb1:CURRENT
attr wl_sysmon_fs_usb1 group RPi
attr wl_sysmon_fs_usb1 label "USB1 Total: $data{max1}, Min: $data{min2}, Max: $data{max2}, Aktuell: $data{currval2}"
attr wl_sysmon_fs_usb1 room Server

#########################################################################

# Anzeige der Readings zum Einbinden in ein 'Raum'.
define SysValues weblink htmlCode {SYSMON_ShowValuesHTML('sysmon')}
attr SysValues group RPi
attr SysValues room Server

#########################################################################

# Anzeige CPU Auslasung
define wl_sysmon_cpustat SVG FileLog_sysmon:SM_CPUStat:CURRENT
attr wl_sysmon_cpustat group RPi
attr wl_sysmon_cpustat label "CPU(min/max): user:$data{min1}/$data{max1} nice:$data{min2}/$data{max2} sys:$data{min3}/$data{max3} idle:$data{min4}/$data{max4} io:$data{min5}/$data{max5} irq:$data{min6}/$data{max6} sirq:$data{min7}/$data{max7}"
attr wl_sysmon_cpustat plotsize 840,420
attr wl_sysmon_cpustat room Server
define wl_sysmon_cpustat_s SVG FileLog_sysmon:SM_CPUStatSum:CURRENT
attr wl_sysmon_cpustat_s group RPi
attr wl_sysmon_cpustat_s label "CPU(min/max): user:$data{min1}/$data{max1} nice:$data{min2}/$data{max2} sys:$data{min3}/$data{max3} idle:$data{min4}/$data{max4} io:$data{min5}/$data{max5} irq:$data{min6}/$data{max6} sirq:$data{min7}/$data{max7}"
attr wl_sysmon_cpustat_s plotsize 840,420
attr wl_sysmon_cpustat_s room Server

#########################################################################
Titel: Antw:Fehlermeldung Blocking.pm line 105
Beitrag von: isy am 26 September 2015, 23:59:37
Bei mir hat es geholfen, den Telnet Port ohne SSL zu definieren.
Sieht so aus:
define telnetPort telnet 7072 global
attr telnetPort room System


Das Problem trat auf im Zusammenhang mit dem Presence  Modul.

Da ich Telnet nicht über Internet (den DNS) nutze, brauche ich auch SSL nicht.

Gruß Helmut
Titel: Antw:Fehlermeldung Blocking.pm line 105
Beitrag von: Arek am 24 Oktober 2015, 13:45:50
Hey,

hast du herausfinden können wo der Fehler liegt? Ich habe exakt das gleiche Problem. Es scheint an Sysmon zu liegen...

Gruß Arek
Titel: Antw:Fehlermeldung Blocking.pm line 105
Beitrag von: isy am 24 Oktober 2015, 13:47:54
Nein, keinen Root Cause  gefunden.
Telnet ohne SSL und schon lief es.
Titel: Antw:Fehlermeldung Blocking.pm line 105
Beitrag von: Arek am 24 Oktober 2015, 13:51:28
Ich habe aber kein SSL im Telnet
Titel: Antw:Fehlermeldung Blocking.pm line 105
Beitrag von: Arek am 24 Oktober 2015, 14:56:07
Ich habe zwar kein SSL aber dafür ein Passwort. Nach Entfernung des Passworts funktioniert es wieder.
Titel: Antw:Fehlermeldung Blocking.pm line 105
Beitrag von: iwan am 18 Dezember 2015, 03:17:38
Dies ist ein Bug in FHEM/Blocking.pm

Als Workaround kann man die folgende Definition in seine fhem.cfg aufnehmen,
die sonst von FHEM/Blocking.pm (mit seiner potentiellen Sicherheitslücke) eingerichtet wird:


define telnetForBlockingFn telnet 0



Hier die zugehörige FehlerAnalyse, die Ursache kann ich leider nicht abstellen.
Vielleicht hilft es dem Autor von FHM/Blocking.pm:

Das Problem tritt erst nach einem rereadcfg auf und liegt in der Funktion BlockingCall().

genauer:
Nach einem reboot/shutdown restart ist die Welt noch in Ordnung, erst nach einem rereadcfg tritt der Fehler auf.


# $Id: Blocking.pm 10047 2015-11-29 14:42:18Z rudolfkoenig $
# ...

sub
BlockingCall($$@)
{
  my ($blockingFn, $arg, $finishFn, $timeout, $abortFn, $abortArg) = @_;

  # Look for the telnetport
  # must be done before forking to be able to create a temporary device
  my $tName = "telnetForBlockingFn";
  $telnetDevice = $tName if($defs{$tName});

  if(!$telnetDevice) {
    foreach my $d (sort keys %defs) {
      my $h = $defs{$d};
      next if(!$h->{TYPE} || $h->{TYPE} ne "telnet" || $h->{SNAME});
      next if($attr{$d}{SSL} || $attr{$d}{password} ||
              AttrVal($d, "allowfrom", "127.0.0.1") ne "127.0.0.1");
      next if($h->{DEF} =~ m/IPV6/);
      $telnetDevice = $d;
      last;
    }
  }

  # If not suitable telnet device found, create a temporary one
  if(!$telnetDevice) {
    my $ret = CommandDefine(undef, "$tName telnet 0");
    if($ret) {
      $ret = "BlockingCall ($blockingFn): ".
                "No telnet port found and cannot create one: $ret";
      Log 1, $ret;
      return $ret;
    }
    CommandAttr(undef, "$tName room hidden");
    $telnetDevice = $tName;
    $defs{$tName}{TEMPORARY} = 1;
    $attr{$tName}{allowfrom} = "127.0.0.1";
  }

  # do fork
  ...


SYSMON benutzt FHEM/Blocking.pm. Das wiederum benötigt einen telnet-Port, der für Verbindungen von 127.0.0.1 (localhost) erreichbar ist.

Dazu prüft Blocking.pm die vorhandenen/definierten telnet-Ports.
Sobald die die Attribute SSL, password oder allowfrom benutzen, werden sie ignoriert und Blocking.pm legt temporär einen zusätzlichen telnet-Port namens "telnetForBlockingFn" an.

Bei einem rereadcfg geht dieses temporäre Device verloren und der Code in Zeile 105 liefert die kaputte NetzAdresse 'localhost:' (ohne Port-Nummer).