Absturz mit Fehlermeldung zu vec

Begonnen von Sailor, 17 März 2018, 12:50:20

Vorheriges Thema - Nächstes Thema

Sailor

Hallo zusammen

seit ein paar Tagen beobachte ich häufiger Abstürze mit einem Eintrag im Log:
Negative offset to vec in lvalue context at fhem.pl line 639.

Die Zeile 639 in der fhem.pl lautet:
vec($rin, $hash->{FD}, 1) = 1

Hat Jemand ähnliche Erfahrungen gemacht und wenn ja, wie lautet die Abhilfe?

Danke!

Gruss
    Sailor
******************************
Man wird immer besser...

rudolfkoenig

Vermutlich hat jemand vorsorglich ein $hash->{FD} auf -1 gesetzt.
Kannst du bitte vor Zeile 639 Folgendes einfuegen, und testen?
if($hash->{FD} < 0) {
  Log 1, "ERROR: negative FD in $hash->{NAME}"
  continue;
}

betateilchen

... oder jemand hat perl 5.26.x im Einsatz (genaue Version weiß ich gerade nicht), da gibt es ein (bekanntes) Problem, das genau zu dieser Fehlermeldung führt.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Sailor

Hallo Rudi

Danke für deine schnelle Antwort

Zitat von: rudolfkoenig am 17 März 2018, 16:15:59
Vermutlich hat jemand vorsorglich ein $hash->{FD} auf -1 gesetzt.

Wer macht denn so was?  ;)
Im Ernst: Wozu ist "$hash->{FD}" überhaupt da?

Zitat von: rudolfkoenig am 17 März 2018, 16:15:59
Kannst du bitte vor Zeile 639 Folgendes einfuegen, und testen?
if($hash->{FD} < 0) {
  Log 1, "ERROR: negative FD in $hash->{NAME}"
  continue;
}


Habe ich gemacht und so weit so gut... Leider bekomme ich eine Ausgabe beim Start von fhem in der Konsole
Job for fhem.service failed. See 'systemctl status fhem.service' and 'journalctl -xn' for details.
und fhem laesst sich nicht starten.

Ein entfernen des o.g. Code-Fragments macht fhem wieder startfähig.

Gruss
    Sailor
******************************
Man wird immer besser...

Sailor

Hallo betateilchen

Zitat von: betateilchen am 17 März 2018, 19:34:59
... oder jemand hat perl 5.26.x im Einsatz (genaue Version weiß ich gerade nicht), da gibt es ein (bekanntes) Problem, das genau zu dieser Fehlermeldung führt.

Heisst das ein "Update" von perl würde das Problem lösen?

Gruss
    Sailor
******************************
Man wird immer besser...

rudolfkoenig

Zitatund fhem laesst sich nicht starten.
Sorry, ein ; hat gefehlt:
      if($hash->{FD} < 0) {
        Log 1, "ERROR: negative FD in $hash->{NAME}";
        continue;
      }

Sailor

Zitat von: rudolfkoenig am 18 März 2018, 12:34:00
Sorry, ein ; hat gefehlt:

Oh Mann, hätte ich auch selbst drauf kommen können!  :o

Ok, ich melde mich, sobald die Fehlermeldung wieder auftritt.

Gruss
    Sailor
******************************
Man wird immer besser...

Sailor

Treffer!

2018.03.20 10:39:22.893 1: ERROR: negative FD in GOOGLECAST-TR_Googlecast
Can't "continue" outside a when block at fhem.pl line 641


Habe es gleich ins forum plaziert: https://forum.fhem.de/index.php/topic,45505.msg784094.html#msg784094

Gruss
    Sailor
******************************
Man wird immer besser...

rudolfkoenig

ZitatCan't "continue" outside a when block at fhem.pl line 641
Sorry, das haette next heissen sollen statt continue.


Sailor

Zitat von: rudolfkoenig am 20 März 2018, 14:56:18
Sorry, das haette next heissen sollen statt continue.

Korrigiert


      if($hash->{FD} < 0) {
        Log 1, "ERROR: negative FD in $hash->{NAME}";
        next;
      }


Gruss
    Sailor
******************************
Man wird immer besser...