Problem bei Update: "'controls_fhem.txt' (remote) is corrupt"

Begonnen von Elektron, 20 Februar 2016, 17:29:53

Vorheriges Thema - Nächstes Thema

Elektron

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

schnitzelbrain

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

franky08

Sollte ein update force nicht auch funktionieren, damit werden, egal wie alt fhem ist, alle Dateien neu geholt?

VG
Frank
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

schnitzelbrain

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.

rudolfkoenig

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.

Elektron

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