From e00e278d8ab0b9843db1fe76fba12f90d03686da Mon Sep 17 00:00:00 2001 From: rudolfkoenig Date: Thu, 3 Sep 2020 21:56:29 +0000 Subject: [PATCH] fhem.pl: Log ERROR for addToWriteBuffer without FD (Forum #113947) git-svn-id: https://svn.fhem.de/fhem/trunk@22726 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/TcpServerUtils.pm | 9 +++++++-- fhem/fhem.pl | 8 ++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/fhem/FHEM/TcpServerUtils.pm b/fhem/FHEM/TcpServerUtils.pm index ae8e7b0bb..b954d2743 100644 --- a/fhem/FHEM/TcpServerUtils.pm +++ b/fhem/FHEM/TcpServerUtils.pm @@ -213,8 +213,12 @@ TcpServer_Close($@) delete($hash->{CD}); delete($selectlist{$name}); delete($hash->{FD}); # Avoid Read->Close->Write - delete $attr{$name} if($dodel); - delete $defs{$name} if($dodel); + if($dodel) { + delete $attr{$name}; + delete $defs{$name}; + } else { + $hash->{stacktrace} = stacktraceAsString(1); + } } if(defined($hash->{SERVERSOCKET})) { # Server close($hash->{SERVERSOCKET}); @@ -243,6 +247,7 @@ TcpServer_Disown($) delete($hash->{CD}); delete($selectlist{$name}); delete($hash->{FD}); # Avoid Read->Close->Write + $hash->{stacktrace} = stacktraceAsString(1); } return; diff --git a/fhem/fhem.pl b/fhem/fhem.pl index 7647f7896..2baaaca2a 100755 --- a/fhem/fhem.pl +++ b/fhem/fhem.pl @@ -5365,6 +5365,14 @@ addToWritebuffer($$@) { my ($hash, $txt, $callback, $nolimit) = @_; + if(!defined($hash->{FD})) { + my $n = $hash->{NAME}; + Log 1, "ERROR: addToWritebuffer for $n without FD"; + Log 1, "probably caused at ".$hash->{stacktrace} if($hash->{stacktrace}); + delete($defs{$n}); + delete($attr{$n}); + return; + } if($hash->{isChild}) { # Wont go to the main select in a forked process TcpServer_WriteBlocking( $hash, $txt ); if($callback) {