Rückmeldung zu: update neu geschrieben

Begonnen von betateilchen, 20 August 2014, 10:17:13

Vorheriges Thema - Nächstes Thema

rudolfkoenig

Stimmt, windows gibts ja auch noch.
Da fehlte
  binmode(FD);
in FHEM/98_update.pm, vor der Zeile
  print FD $content;
danach hat es mit dem update geklappt. Allerdings scheint windows mit "updateInBackground" nicht zu harmonieren, damit hoert update nach 50/60 downloads auf, und im frontend sieht man auch nichts. Wenn ein Windows-Experte oder -Liebhaber das mal anschaut und mir Patches schickt, dann baue ich das ein.

betateilchen

Hallo Rudi,

könntest Du bitte den Aufruf der Update-Funktion für configDB wieder einbauen, der im alten update-Modul enthalten war?



Index: 98_update.pm
===================================================================
--- 98_update.pm (revision 6452)
+++ 98_update.pm (working copy)
@@ -317,6 +317,8 @@
     return;
   }

+  cfgDB_FileUpdate("$root/$fName") if(configDBUsed());
+
   return 1;
}



Auf meinen Testsystemen erfolgreich im Einsatz.

Danke!
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

chris1284

Update Force unter Win hat mit deiner Änderung nun funktioniert und er hat brav alles neu geladen.

rudolfkoenig


betateilchen

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Hallo Rudi,

hast Du irgendeinen Plan, die Anzahl der in ./restoreDir angelegten Backupverzeichnisse irgendwie zu begrenzen?
Ich denke da an etwas ähnliche wie nrarchives oder so...


Viele Grüße
Udo
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

JoWiemann

Zitat von: betateilchen am 25 August 2014, 19:07:41
hast Du irgendeinen Plan, die Anzahl der in ./restoreDir angelegten Backupverzeichnisse irgendwie zu begrenzen?

Ist das nicht schon vorhanden?

CommandRef:

◦restoreDirs update sichert jede Datei vor dem Überschreiben mit der neuen Version aus dem Web. Für diesen Zweck wird zuerst ein restoreDir Verzeichnis in der global modpath Verzeichnis angelegt, und danach ein Unterverzeichnis mit dem aktuellen Datum. In diesem Verzeichnis werden vor dem Überschreiben die alten Versionen der Dateien gerettet. Die Voreinstellung ist 3, d.h. die letzten 3 Datums-Verzeichnisse werden aufgehoben, und die älteren entfernt. Falls man den Wert auf 0 setzt, dann ist dieses Feature deaktiviert.
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

betateilchen

Danke für den Hinweis, das hatte ich übersehen.

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

scooty

Hallo Rudolf,

ich schon wieder.  ;)

Habe bei mir immer noch bewusst
backup_before_update=1
gesetzt.
Bei der einmaligen Eingabe von
update
wird allerdings immer zwei mal ein Backup (=zwei Backup-Dateien im Backup-Verzeichnis) durchgeführt.

Sieht für mich so aus, als ob
update
trotz nur einmaliger Eingabe zweimal ausgeführt wird.

Im Web-Frontend passiert während des gesamten Update-Prozesses (Backup + Update) nichts, bis irgendwann (nach Abschluss des zweiten Backups + Updates?) die Meldung "Keine Daten empfangen" erscheint.

Wäre nett, wenn Du Dir das 'mal anschaust.

Hier der Auszug aus dem Log:
2014.08.27 08:54:32 2: Backup with command: tar -cf - fhem.cfg ./log/fhem.save /opt/fhem/CHANGED /opt/fhem/config /opt/fhem/configDB.pm /opt/fhem/contrib /opt/fhem/credentials.cfg /opt/fhem/demolog /opt/fhem/docs /opt/fhem/FHEM /opt/fhem/fhem.cfg /opt/fhem/fhem.cfg.demo /opt/fhem/fhem.pl /opt/fhem/log /opt/fhem/README_DEMO.txt /opt/fhem/restoreDir /opt/fhem/unused /opt/fhem/www |gzip > /opt/fhem/backup/FHEM-20140827_085432.tar.gz
2014.08.27 08:55:35 1: backup tar: Entferne führende ,,/" von Elementnamen
2014.08.27 08:55:35 1: backup done: FHEM-20140827_085432.tar.gz (15998991 Bytes)
2014.08.27 08:55:35 1: Backup: tar: Entferne führende ,,/" von Elementnamen
backup done: FHEM-20140827_085432.tar.gz (15998991 Bytes)
2014.08.27 08:55:36 1: UPD FHEM/00_HMLAN.pm
2014.08.27 08:55:36 1: UPD FHEM/10_CUL_HM.pm
2014.08.27 08:55:37 1: UPD FHEM/98_ComfoAir.pm
2014.08.27 08:55:38 1: UPD FHEM/98_HMinfo.pm
2014.08.27 08:55:38 1: UPD FHEM/98_HTTPMOD.pm
2014.08.27 08:55:38 1: UPD FHEM/98_statistics.pm
2014.08.27 08:55:38 1: UPD docs/commandref.html
2014.08.27 08:55:41 1:
2014.08.27 08:55:41 1: update finished, "shutdown restart" is needed to activate the changes.
2014.08.27 08:55:41 1:
2014.08.27 08:55:45 1: Fhem info:
  Release  : 5.5
  Branch   : DEVELOPMENT
  OS       : linux
  Arch     : arm-linux-gnueabihf-thread-multi-64int
  Perl     : v5.14.2
  uniqueID : 18f364a9f6691c6c4af037478c12cd7a
  upTime   : 12:54:38

Defined modules:
  CUL           : 2
  CUL_HM        : 33
  CUL_MAX       : 1
  Calendar      : 1
  Dashboard     : 1
  FHEMWEB       : 8
  FLOORPLAN     : 1
  FileLog       : 36
  HMinfo        : 1
  HTTPMOD       : 6
  MAX           : 8
  PRESENCE      : 4
  SVG           : 17
  SYSMON        : 1
  THRESHOLD     : 2
  Twilight      : 1
  Weather       : 1
  at            : 30
  autocreate    : 1
  dummy         : 25
  eventTypes    : 1
  holiday       : 1
  notify        : 28
  readingsGroup : 3
  structure     : 2
  telnet        : 1
  watchdog      : 2
  weblink       : 3

Defined models per module:
  CUL_HM        : ActionDetector,CCU-FHEM,HM-ES-PMSw1-Pl,HM-LC-Bl1PBU-FM,HM-Sen-MDIR-O-2

Transmitting this information during an update:
  onUpdate (Note: You can change this via the global attribute sendStatistics)

server response: ==> ok

2014.08.27 08:55:48 2: Backup with command: tar -cf - fhem.cfg ./log/fhem.save /opt/fhem/CHANGED /opt/fhem/config /opt/fhem/configDB.pm /opt/fhem/contrib /opt/fhem/credentials.cfg /opt/fhem/demolog /opt/fhem/docs /opt/fhem/FHEM /opt/fhem/fhem.cfg /opt/fhem/fhem.cfg.demo /opt/fhem/fhem.pl /opt/fhem/log /opt/fhem/README_DEMO.txt /opt/fhem/restoreDir /opt/fhem/unused /opt/fhem/www |gzip > /opt/fhem/backup/FHEM-20140827_085548.tar.gz
2014.08.27 08:56:53 1: backup tar: Entferne führende ,,/" von Elementnamen
2014.08.27 08:56:53 1: backup done: FHEM-20140827_085548.tar.gz (16530876 Bytes)
2014.08.27 08:56:53 1: Backup: tar: Entferne führende ,,/" von Elementnamen
backup done: FHEM-20140827_085548.tar.gz (16530876 Bytes)
2014.08.27 08:56:53 1: nothing to do...


Viele Grüße,
Andreas
Fhem auf Gigabyte Brix
CUL V3 HM / CUL V3 MAX / MaxCube aFW Homematic&MAX / ZWave.me ZME_UZB1 / SDuino 433 / Velux KLF200
Homematic / MAX / Logitech Hub / ZWave / Wifi LED / div. 433 Temperatursensoren / pywws WH1080 / IO Homecontrol

rudolfkoenig

Seufz, ich will nicht auch noch backup neu schreiben, den verwende ich gar nicht. Aber vielleicht habe ich Glueck, und das Probem sitzt nicht in backup.

Koenntest Du bitte so einen Problemfall mit "attr global verbose 5" protokollieren?
Tritt das Problem immer auf?
Auch ohne "updateInBackground" ?

Bitte alle 3 Fragen beantworten, nicht nur ausgewaehlte :)
Dass update 2-mal aufgerufen wurde, sehe ich in deinem Log nicht, aber tar (aus backup) wurde 4-mal aufgerufen.

betateilchen

Hierzu ein paar Beobachtungen von mir zu genau diesem Thema:

Das Problem mit der doppelten Ausführung von im Frontend eingegebenen Befehlen tritt fhem-weit (!) immer dann auf, wenn eine Aktion länger als (circa) 60 Sekunden dauert. Warum auch immer. (Browser Problem? Javascript Problem? FHEMWEB Problem?)

Per Telnet tritt das Phänomen nie auf.

Mit dem neuen update Modul scheint das Problem allerdings beim update-Befehl (alleine) zumindest behoben. Ich hatte vorher den Effekt mit dem doppelt ausgeführten Update (bei abgeschaltetem backup) regelmäßig auf meinem Produktivsystem, aber nie auf dem Entwicklungssystem. Offenbar hat die Laufzeit bestimmter Aktionen auch noch etwas mit der "Größe" der fhem-Installation zu tun, genauer: mit der Anzahl der definierten devices und/oder der Anzahl der geladenen/verwendeten Module.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

scooty

Hallo Rudolf,

Zitat von: rudolfkoenig am 27 August 2014, 09:41:15
Koenntest Du bitte so einen Problemfall mit "attr global verbose 5" protokollieren?
Anbei die zwei Logs, einmal mit updateInBackground=0 (zwei Backupdateien wurden erzeugt) und einmal mit updateInBackground=1 (damit wurden sogar drei Backup-Dateien erzeugt).

Zitat von: rudolfkoenig am 27 August 2014, 09:41:15
Tritt das Problem immer auf?
Ja, immer bei Aufruf von "update", auch wenn das Ergebnis "Nothing to do..." ist.

Zitat von: rudolfkoenig am 27 August 2014, 09:41:15
Auch ohne "updateInBackground" ?
s.o.

Vielen Dank,
Andreas
Fhem auf Gigabyte Brix
CUL V3 HM / CUL V3 MAX / MaxCube aFW Homematic&MAX / ZWave.me ZME_UZB1 / SDuino 433 / Velux KLF200
Homematic / MAX / Logitech Hub / ZWave / Wifi LED / div. 433 Temperatursensoren / pywws WH1080 / IO Homecontrol

karl0123

Auch bei mir wird Backup 3 mal ausgeführt bei update in Background. Die Dateien haben dabei eine unterschiedliche Größe, sodass ich denke, dass auch die Restore Files 3 mal angelegt werden.

betateilchen

Kann es sein, dass das neue update-Modul das Attribut "exclude_from_update" schlichtweg ignoriert?

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

rudolfkoenig

@betateilchen:
nein, hoechstens dass es nicht funktioniert. Ist (wie dokumentiert) eine Liste von Regexps.

@scooty:
in der nicht-blockierenden updateInBackground=1 Variante sehe ich nur ein Update bzw. Backup, d.h. diese Version is mAn vom Problem nicht betroffen.

In der blockierenden Version sind es zwei updates, nach Abschluss des ersten updates+backup, was leider genau eine Minute dauert, schickt der Browser eine zweite Aufforderung, ich gehe davon aus, dass dies nicht manuell ausgeloest wurde, um mich zu aergern :)

Neue Fragen:
- welchen Browser verwendest du bzw. tritt das Problem auch mit einem anderen auf
- ist das FHEMWEB Attribut redirectCmds gesetzt?
- tritt das Problem auch in der leeren "Home-Ansicht" auf? Mit "Home Ansicht" meine ich die Seite ohne Geraete, die man nach dem Klick auf das FHEM-Icon bekommt.