-
Notifications
You must be signed in to change notification settings - Fork 2.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
"Server does not support X-OC-MTime" warning, wrongly sending OC-ETag #13931
Comments
Setting to 8.0 to evaluate severity. CC @karlitschek |
The other way... The fields need to be both empty because the upload is not actually done (but the server claims it is) |
I see, the access log shows the first three chunks:
The first one is supposedly the one that returns the etag prematurely (because it's an existing file it already has one), and that makes subsequent calls fail. |
@karlitschek @DeepDiver1975 I suggest to revert at this stage and find a proper fix in 8.0.1. |
I'll submit a revert PR and we can discuss this there. |
Revert PR is here: #13932 |
CC @jnfrmarks to add a test case for this if there isn't one already. |
I can try to get this test case written by EOD tomorrow. I think I have enough of the bits in place |
You guys are truly kidding me late night - right? W(hy)TF am I implementing a feature for the client - which is tested and okay-ed HALF a years ago and ONE fuxxing day before release you come up with a regression? There is seriously something wrong in here ... @dragotin we need to get this sorted out ... cooperation of server an client team has to evolve ... we need proper automated testing of the sync protocol. THX and Good night! |
The good news is that it was found today and not after the release. |
Issue description looks unrelated to the pr. this issue claims to be related to server 8 and client 1.8. What about older clients? Same issue? thx |
So you are basically expecting the oc-etag only on the last chunk response? |
@DeepDiver1975 yes, only on the last chunk. Its the indicator for the client that all chunks have been received. Sending the ETag header earlier makes the client think that the file upload was completed, ie. because there have been chunks from before. |
The OC-Etag must be equivalent to the ETag. The reason the OC-Etag was introduced is because some server modules (mod_gzip) or proxies change/remove the ETag. The sync client uses ETag/OC-ETag to get the info "you now had uploaded the last chunk, file is complete". So yes only on last chunk (not last numerically but last chunk that completes the file) |
I ll come up with a fix. |
@dragotin can I ask you to please add a test on this in our sync test t*.pl? We should catch issues like this in the future - THX |
@guruz the new header is only available for oc8 - I assume you can continue to live not having the header for now - I'm all in now to simply revert the orifingal pr |
Here we go: #13932 |
A test was added to t6.pl: owncloud/client@2a88f50 |
thx @dragotin |
The PR is merged: Close? |
Closing. I reopened the original issue: #9005 |
Steps to reproduce
touch data.dat
to make it overwrite the remote fileAdditional hint: add the debug line:
qDebug() << "OLIVIER" << finished << job->reply()->rawHeader("ETag") << job->reply()->rawHeader("OC-ETag");
here: https://github.com/owncloud/client/blob/94e61c32056c470a68c773163d714b0003fddbe6/src/libsync/propagateupload.cpp#L486
Expected result
No error in sync log.
(the second field being the OC-Etag)
Actual result
Sync log contains message:
propagateupload.cpp:565 Server do not support X-OC-MTime ""
Also the log doesn't contain any debug entries with "false", but only:
The Etag field is missing, only OC-Etag is returned.
This is a regression introduced by #10725
@guruz as discussed on IRC. What is the consequence of this regression ? Is it related to parallel uploads ?
@DeepDiver1975 @icewind1991 @guruz
The text was updated successfully, but these errors were encountered: