-
Notifications
You must be signed in to change notification settings - Fork 671
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
Big files do not sync - chunks do not sum up #7020
Comments
@kerlerm Do you know the version that worked? |
Unfortunately, I did not follow installed versions on my machine. I assume 2.4.3 still worked, 2.5.2 and 2.5.3 certainly do not. Should I try downgrading to verify? |
@kerlerm Thanks for the report and for including client logs! @guruz The log contains warnings like this:
Is there a way to disable http2 for testing? From what I can see the client attempts to upload chunks and sees successes even though the server log shows a 400. For example there's a from-scratch upload that logs like this:
|
It looks like we end up in Should we check for putFileJob->device()->atEnd() after a successful job, just to make sure? Could be though that the data was sent successfully, just the reply didn't end up being processed correctly somehow. |
@kerlerm Do you think you might be able to capture the network traffic that happens while failing to sync this file with a tool like wireshark and upload the data? (shared privately with mail at ckamm de preferably, it might contain auth cookies) This could be your server speaking HTTP2 improperly, but could also be a bug in Qt. You should definitely be able to work around the problem by disabling HTTP2 server side. |
@ckamm Sent you a notice. PCAP is available on my owncloud for download. |
Disabling HTTP/2 is bit of a hassle because this is not running on a root server but shared hosting... |
@ckamm I tried mitmproxy of ubuntu, but the package is damaged (newer libs). Then I fetched the linux binaries of mitmproxy 4.0, but those froze at 6MB transfer while testing. So I'm a bit lost... Should I provide a test account on my owncloud for you? |
@kerlerm Mitmproxy freezing mid-transfer might be an indication that something is indeed going wrong with the http2 stream. Yes, if you could give me a test account I'd try to reproduce and check it out. |
I think this is a bug in the Qt http2 stack. Test setup:
The GOAWAY processing seems to be the problem for mitmproxy, and also for Qt. Looking at https://code.woboq.org/qt5/qtbase/src/network/access/qhttp2protocolhandler.cpp.html#815 it seems that a GOAWAY with lastStreamId of 2^31-1 will close all active streams. If I read the spec correctly, it shouldn't do that (https://http2.github.io/http2-spec/#GOAWAY). |
Created upstream ticket: https://bugreports.qt.io/browse/QTBUG-73947 |
@michaelstingl @guruz @ogoffart I'm working on the upstream issue but am strongly recommending to disable HTTP2 support until we have upgraded to a Qt version containing the fix. |
@ckamm Is there a config switch to disable HTTP2? |
No, not yet :/ I'd disable it for 2.5.4 and add a env variable to reenable it if desired. |
Due to QTBUG-73947 and #7020. Use OWNCLOUD_HTTP2_ENABLED=1 to enable anyway.
@ckamm Wow. And meh! |
Note: PR doesn't solve the issue, just disables HTTP2. We'll need to update Qt once the patch is released. |
Due to QTBUG-73947 and #7020. Use OWNCLOUD_HTTP2_ENABLED=1 to enable anyway.
@kerlerm Can you try a recent daily build? |
Sorry for the late reply: Version 2.5.4daily20190305 (build 453) syncs big files without problems. @ckamm: Should I delete your account on my owncloud or will you do further testing once Qt is fixed? |
@kerlerm Thanks for testing! You can delete it now, I found a way to reproduce a very similar problem locally. |
Tested on ubuntu 18.10 with 2.5.4rc1allow haproxy to use HTTP/2.0 |
Expected behaviour
Big files should sync.
Actual behaviour
Bigger files do not sync when using the sync client 2.5.3
Upload is possible by Webbrowser & GUI. No changes where made on the server since 10/2018 and I synced files sized about 320 MB in 12/2018. No quota is applied to the user.
Steps to reproduce
Take file "test" with about 100-150 MB and initiate sync. Error "Chunks on server do not sum up to ..." is thrown after upload of chunks is complete.
Server configuration
Operating system:
Linux
Web server:
Apache
Database:
MySQL 5.7
PHP version:
7.2 FPM
ownCloud version:
10.0.10.4
Storage backend (external storage):
Client configuration
Client version:
2.5.3 build 342
Operating system:
Linux 64
OS language:
German
Qt version used by client package (Linux only, see also Settings dialog):
Qt 5.10.1
Client package (From ownCloud or distro) (Linux only):
GIT-Revision 80478b auf Feb 7 2019, 17:25:04 verwendet Qt 5.10.1, OpenSSL 1.0.2n 7 Dec 2017
Installation path of client:
/usr/bin/owncloud
Logs
Client logfile: Output of
owncloud --logwindow
orowncloud --logfile log.txt
https://gist.githubusercontent.com/kerlerm/bb259a92d63e4b926b7ad3fe30ab0f62/raw/fd2740e5ffebfbef2d608ce28613317c3e76ee68/client_log.txt
Web server error log:
https://gist.githubusercontent.com/kerlerm/9bc1dfcc073be59966b2c2d70592f29a/raw/4b60d3d6744c623c8ce43587bdea8bd3784d3989/gistfile1.txt
Server logfile: ownCloud log (data/owncloud.log):
https://gist.githubusercontent.com/kerlerm/99f1ae603170e8ce0669987cc54cf055/raw/0711f8b296e7a68a902125dd0216ce98fa9d487b/server_log.txt
The text was updated successfully, but these errors were encountered: