Issue: Datei auf externer Speicher gelöscht

8.2.x
external_storage

#1

Hallo zusammen,
am Freitag, 17.02. 15:00Uhr habe ich vom Büro aus eine Datei "tourenplan.ods" per "Cyberduck" editiert.
Diese Datei liegt im orginal auf meinem G-Drive. Dieses G-Drive habe ich in meinem Benutzer als "external Storage" im Owncloud verbunden. Cyberduck greift nun auf Owncloud zu, welches dann über die internen Mechanismen die Datei im G-Drive lädt.
Um 15:16Uhr habe ich die Datei dann gespeichert und geschlossen.
Wie aus den u.a. Logs zu sehen ist, wurde diese Transaktion auf dem Owncloud Server auf mit einem PUT durchgeführt.
Wenige Sekunden später sieht man dann auch auf dem G-Drive Log, daß die Datei dort ankommt ("OwnCloudAccess" ist mein Name für die die API).
Fast im Gleichen Atemzug kommt dann der Löschbefehl vom Owncloud an G-Drive.

Die Datei war/ist nirgends mehr zu finden. (Papierkorb/Data-Verzeichnis, etc).

Frage: Hat jemand solch ein Verhalten schon einmal gehabt, oder kann es erklären?

Gruss
Carsten

Schritte zum Reproduzieren
[UPDATE 24.02.2017]
1. Vorbereiten des "Monitoring": Öffne Google Drive Verzeichnis im Browser und öffne die "Aktivitäten" Leiste
2. Öffne Cyberduck und öffne die zu testende Datei per "Bearbeiten mit..."
3. Führe Änderungen an der Datei durch und drücke Speichern
4. Anzeige: Cyberduck lädt Datei auf Owncloud hoch.
5. Anzeige: Datei verschwindet im Google Drive.
6. Anzeige Google Drive aktualisieren.
7. Anzeige unter "Aktivitäten": "Sie haben ein Element bearbeitet" [Dateiname]
8. Anzeige unter "Aktivitäten": "Sie haben ein Element endgültig gelöscht" [Dateiname]
9. Nun wieder eine Änderung an der noch offenen Datei ausführen und speichern
10. Anzeige: Cyberduck lädt Datei auf Owncloud hoch.
11. Datei erscheint im Google Drive
12. Anzeige Google Drive aktualisieren.
13. Anzeige unter "Aktivitäten": "Sie haben ein Element hochgeladen" [Dateiname].ocTransferId[0-9]{10}.part
14. Anzeige unter "Aktivitäten": "Sie haben ein Element umbenannt" [Dateiname]
Dieser Prozess läßt sich beliebig oft wiederholen.

Erwartetes Verhalten
Datei wird nicht gelöscht

Aktuelles Verhalten
Datei wird gelöscht

Server-Konfiguration
Betriebssystem: Debian Wheezy
Webserver-Typ: Apache 2.4
Datenbank-Typ: MySQL
PHP-Version: 5.6
ownCloud-Version 8.2.9 (stable)
Von einer älteren ownCloud-Version aktualisiert oder neu installiert?: aktualisiert
Sonderkonfigurationen (external storage, external authentication, reverse proxy, server-side-encryption):
external Storage: G-Drive verbunden und ein Unterverzeichnis Freigegeben.
Client Software: Cyberduck 5.3.7.23440 (aktuellste Version)

ownCloud log (data/owncloud.log)
n/a

Apache Access Log:
--------------
xx.xx.xx.xx - carsten [17/Feb/2017:15:16:57 +0100] "PUT /remote.php/webdav/G-Drive-Mirror/ChateauBriant2017/Tourenplan.ods HTTP/1.1" 204 906 "-" "Cyberduck/5.2.3.21496 (Windows 7/6.1) (x86)"
-------------------
Google Drive Aktivitäten Log:
--------------------------
Sie haben ein Element bearbeitet
OwnCloudAccess • Fr. 15:17
OpenOffice Calc
Tourenplan.ods
---------------------------
----------------------------
Sie haben ein Element endgültig gelöscht
OwnCloudAccess • Fr. 15:17
OpenOffice Calc
Tourenplan.ods
----------------------------

#2

Hi,

bitte gibt hier immer die vollständige ownCloud version an.


#3

done.
danke für den Hinweis.


#4

Ärgerlich. Ohne das Problem reproduzieren zu können, wir das mit dem Beheben vermutlich relativ schwierig. Zudem läuft der Support für OC 8.2 demnächst aus (Mai 2017).

In den 9er-Versionen von Owncloud wurde die Google-SDK-Bibliothek aktualisiert: https://github.com/owncloud/core/issues/23284#issuecomment-226798887


#5

Update zur Reporduzierbarkeit.
Ich konnte nach einigem Versuchen, daß Phänomen nachstellen.
Es scheint so, als wenn es ein "Flip-Flop" ist.
Erste Änderung löscht die Datei, zweite Änderung stellt die Datei wieder her, usw.
[NACHTRAG]:
Ich habe die gleiche Prozedur um Webbrowser gemacht.
Also eine geänderte Version der Datei im Owncloud hochgeladen, und die ältere überschrieben.
Da tritt der Fehler nicht auf.
Vermutung:
Cyberduck sendet zuerst ein "Lösch" Kommando und dann ein "Upload".
Owncloud bekommt nun das Timing nicht hin, und verdreht die beiden Kommandos, indem es zuerst den Upload nach G-Drive durchführt und dann das Löschkommando.
[NACHTRAG2]
Auch nach einem Update von Cyberduck auf die Version 5.3.7.23440 bleibt das Verhalten.
Wenn ich im Cyberduck den Google Drive direkt anwähle, wird ordentlich aktualisiert und nicht gelöscht.
Der Fehler passiert also auf jedenfall im Owncloud Code bei der Umsetzung vom Client zum External Storage.
[NACHTRAG3]
Das Problem läßt sich sogar mit dem Owncloud Client auf einer Windows Maschine nachstellen.
Im SyncLog taucht dann das auf:

24.02.2017 10:10:44,RO_Tourenplan_2017-01-31.xlsx,Documents_Privates\2017-07-Chateaubriant,Error downloading https://[myFQDN]/remote.php/webdav/G-Drive-Mirror/ChateauBriant2017/RO_Tourenplan_2017-01-31.xlsx - server replied: Internal Server Error (Error calling PATCH https://www.googleapis.com/drive/v2/files/[G-DriveHash]?setModifiedDate=true: (404) File not found: [FileHash])

Im G-Drive sieht man wieder die "Bearbeitet"/"gelöscht" Sequenz.


#6

Lässt es sich auch mit 9.1.4 reproduzieren? Wg. neuer SDK Bibliothek?


#7

Gute Frage. Tester gesucht :wink:
Ich zögere noch mit dem Update von 8 auf 9, weil im Owncloud Admin Interface dazu auf "BETA" umgeschaltet werden muss, und eine Zweite Instanz mit 9.x.x habe ich noch nicht am Start.


#8

Verlass Dich bitte nicht auf die Updater App, gerade speziell von solchen älteren Versionen wie 8.0-9.0.

Ich empfehle generell, Major releases nie mit der Updater App zu machen. Folge einfach der Manuellen Upgrade-Anleitung von doc.owncloud.org und mache die Schritte:

8.2.9 -> 8.2.10 -> 9.0.8 -> 9.1.4