FHEM Forum

FHEM => Sonstiges => Thema gestartet von: Elektron am 20 Februar 2016, 17:29:53

Titel: Problem bei Update: "'controls_fhem.txt' (remote) is corrupt"
Beitrag von: Elektron am 20 Februar 2016, 17:29:53
Guten Tag zusammen,

ich habe ein Problem beim Updaten meines (zugegeben nicht ganz aktuellen) FHEM.
Ich habe gesucht und auch Hinweise gefunden, dass es da einen Fehler gab, den Rudolf dann gefixed hat...

Sieht mir aber bei mir anders aus...

Anbei die Auszüge aus dem LOG...

2016-02-20 17:23:56 Global global update get http://fhem.de/fhemupdate4/svn/FHEM/FhemUtils/release.pm
2016-02-20 17:23:56 Global global update check Releases => local: Fhem 5.5 (DEVELOPMENT) remote: Fhem 5.6 (DEVELOPMENT)
2016-02-20 17:23:56 Global global update get http://fhem.de/fhemupdate4/svn/controls_fhem.txt
2016-02-20 17:23:56 Global global update File 'controls_fhem.txt' (remote) is corrupt

Ich habe die Lokale Datei schon gelöscht, die Fehlermeldung bezieht sich aber ja auf die Datei auf dem Server...

Vielen Dank und Grüße
Michael
Titel: Antw:Problem bei Update: "'controls_fhem.txt' (remote) is corrupt"
Beitrag von: schnitzelbrain am 21 Februar 2016, 08:36:45
Hallo
ich hab bei meiner DS111 das gleiche Problem hab aber eine "Quick and Dirty" Lösung gefunden.
danach hat das Update funktioniert. Diese Lösung wurde von mir schon mal im NAS Forum gepostet.
Möglicherweise trifft sie bei dir auch zu, auch wenn du 5.5 als Ausgangsversion hast.

in der 99_Update die bei 5.3 noch existiert ist folgender passus:
Code: [Auswählen]

# parse file
  if ($controlFile) {
    foreach my $l (split("[\r\n]", $controlFile)) {
      chomp($l);
      Log 5, "update $from controls_".lc($pack).".txt: $l";
      my ($ctrl,$date,$size,$file,$move) = "";
      if ($l =~ m/^(UPD) (20\d\d-\d\d-\d\d_\d\d:\d\d:\d\d) (\d+) (\S+)$/) {
        $ctrl = $1;
        $date = $2;
        $size = $3;
        $file = $4;
      } elsif ($l =~ m/^(DIR) (\S+)$/) {
        $ctrl = $1;
        $file = $2;
      } elsif ($l =~ m/^(MOV) (\S+) (\S+)$/) {
        $ctrl = $1;
        $file = $2;
        $move = $3;
      } elsif ($l =~ m/^(DEL) (\S+)$/) {
        $ctrl = $1;
        $file = $2;
      } else {
        $ctrl = "ESC"
      }
      if ($ctrl eq "ESC") {
        Log 1, "update File 'controls_".lc($pack).".txt' ($from) is corrupt";
        $ret = "File 'controls_".lc($pack).".txt' ($from) is corrupt";
      }
      last if ($ret);
#      if ($local) {
#        next if ($l =~ m/^(DEL|MOV) /);
#      }
      $control{$pack}{$file}{ctrl} = $ctrl;
      $control{$pack}{$file}{date} = $date;
      $control{$pack}{$file}{size} = $size;
      $control{$pack}{$file}{file} = $file;
      $control{$pack}{$file}{move} = $move;
    }
  }
  return ($ret, \%control);
}


Das Problem ist das bei der jetzigen controls_fhem.txt als erstes folgendes steht


REV 10865


Wenn ich jetzt dem script folge dann sehe ich das "REV" nicht geparst wird und somit der script mit "ESC" Antwortet und somit "update File 'controls_fhem.txt' (remote) is corrupt" ausgibt sowie abbricht.

Meine Lösung :)


} else {
        $ctrl = "ESC"
      }


in



} else {
        $ctrl = "REV"
      }



ändern.
Im Prinzip ist egal was zurückkommt es sollte nur nicht ESC oder eine der im script verwendeten Möglichkeiten sein.

danach lief das Update durch und die 99_Update kann gelöscht werden da in der neuen Struktur ja die 98_Update vorhanden ist.

Hoffe dies hilft bis offiziell gepatch wird.

Schnitzelbrain
Titel: Antw:Problem bei Update: "'controls_fhem.txt' (remote) is corrupt"
Beitrag von: franky08 am 21 Februar 2016, 23:23:54
Sollte ein update force nicht auch funktionieren, damit werden, egal wie alt fhem ist, alle Dateien neu geholt?

VG
Frank
Titel: Antw:Problem bei Update: "'controls_fhem.txt' (remote) is corrupt"
Beitrag von: schnitzelbrain am 22 Februar 2016, 11:29:09
Zitat von: franky08 am 21 Februar 2016, 23:23:54
Sollte ein update force nicht auch funktionieren, damit werden, egal wie alt fhem ist, alle Dateien neu geholt?

VG
Frank

Hat zumindest auf meiner Syno nicht funktioniert.
Alles was mit Update zu tun hatte
Update
Update all
Update force

Brach mit der aufgeführten Meldung ab.
Titel: Antw:Problem bei Update: "'controls_fhem.txt' (remote) is corrupt"
Beitrag von: rudolfkoenig am 22 Februar 2016, 12:36:08
Das Problem betrifft alle Installationen vor 5.6, bzw. alle, die seit 2014-08-19 kein update durchgefuehrt haben.
Habs jetzt gefixt, hoffentlich ohne merkbaren Nebeneffekte. Ich habe es mit einem frisch ausgepackten 5.5 und einem aktuellen 5.7 getestet, beides schien zu funktionieren.

Da die Aenderung auf dem Server ist, muss man diesmal nicht bis morgen warten.
Titel: Antw:Problem bei Update: "'controls_fhem.txt' (remote) is corrupt"
Beitrag von: Elektron am 04 März 2016, 23:31:59
Hallo Rudolf,

Vielen Dank!
Bin wieder zuhause und habe das Update gerade ausgeführt.
Läuft super, ich hoffe für alle anderen ohne Nebeneffekte...

Vielen Dank und Grüße
Michael