-
Notifications
You must be signed in to change notification settings - Fork 670
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
2.6.0: issues with HTTP/2 #7610
Comments
@fritzmg Thank you for the report. This sounds unfortunate. @ckamm Do you think this could be https://bugreports.qt.io/browse/QTBUG-77852 ? |
@fritzmg Just wondering which Apache version exactly you use? |
ownClouds running always with mod prefork, which doesn‘t support http/2. |
However, the issue is also present when using nginx only (version
Hm, not sure, how do I check that?
Not sure what you mean there - isn't that just the PHP version? |
@TheOneRing please disable again for the 2.6.1 |
Before you revert anything: can anybody else confirm the issue? This might still be a server configuration issue. As far as I know, I have done every conceivable and recommended server configuration - but there might still be something, that needs to be done. I just need to find out what it is. |
I haven't tried HTTP2 myself, but we collected some info. It probably requires php-FPM in any case, which is not our recommended setup. There are two use cases
|
Why is that? The official documentation does not mention that anywhere, at least as far as I see. PHP-FPM should always be the recommended way of running PHP. |
@fritzmg here you can find some background: owncloud/core#30725 |
@michaelstingl interesting, thanks. But still, the issues I am having also happen with a pure nginx + PHP-FPM setup, while owncloud/core#30725 mostly talks about Apache support of HTTP/2. |
@fritzmg for the upcoming |
@tessus Have you seen this in your testing? |
@guruz no, but I didn't do extensive testing out of fear. IMO a lot of VFS issues bled over to the basic sync code for some reason and the entire client is less stable than before. Currently I'm still using an ancient version for 2 reasons: h2 works, no VFS code:
But let me comment on a few things here, because I have tthe feeling that some people do not understand h2, backend, and fpm.
h2 uses a thread model, which will break when using a prefork MPM on the web server, which is process based. Furthermore a process based server has several other disadvantages as well: one php version per server, php caches (apcu, opcache, ...) will be lost during httpd server restart, ... Any sane server environment these days uses a thread based model, h2, and php-fpm (and maybe a reverse proxy somwhere in the mix). Everything else is less performant, more complicated to maintain, and less secure. As a side note, I find it really disconcerting that h2 is still a problem and that you've decided to deactivate it again instead of making it the highest priority. There are server admins out there who have disabled http/1.0 and http/1.1 completely. The reasons should be obvious, but I will not start a h2 promotion thread here. P.S.: I'm more than willing to re-evaluate the ownCloud client again in the future. I'm not saying that I'm gonna turn my back on it forever. It's just that the current situation doesn't create much confidence. |
Have the same issue after 2.6.0 |
I'm very puzzled as to why this issue has been closed. The issues with H2 haven't been fixed. Instead H2 was deactivated once again. I honestly don't understand why you don't stop any other development to get the most fundamental issue fixed. Nothing is more important than the transport of data. I'm not making this up. It's the 1st layer of the application layer (OSI). Anyway, maybe in 5 or 10 years H2 will work. Until then I'll use a 5 year old client that actually does work with H2. |
Sorry to hear so much frustration. Yes priorities appear to differ here. Not sure how to actually make progress... |
@jnweiger IMO there is no issue with H2 on the server unless the server admins use a wrong nghttp2 version. Apache httpd depends on nghttp2 and if that lib is broken, h2 can't work. Stefan Eissing, the dev of mod_h2 in httpd has done a great job making the h2 module stable over the past few years. Of course there's a chance that it is a combination of server/client issues that manifests itself in the client. But let's put it that way: I've been using H2 for a long time and I haven't had any issues with any other client. @ho4ho the QT implemrntation of H2 has been broken since forever. There's always: "ah, there's this bug, which will be fixed in QT x.x.x", then it takes forever to switch the client to use that QT version and then it starts all over. If QT is unable to do H2 properly, a different approach must be taken. e.g. using the nghttp2 lib directly and use a wrapper to use from the oc client. With all due respect, but after a few years of trying to get H2 working without success, somebody must accept that the current approach is not working. |
In 2.5.4, HTTP/2 was disabled in the ownCloud client due to issues within the Qt library. In 2.6.0 HTTP/2 was re-enabled again, as the issues were supposedly fixed.
However, when using the ownCloud client in version 2.6.0 now, syncing does not work with our ownCloud instance anymore, when there is a large number of files to be checked/synced. When using a PHP-FPM setup, we get the following error message within the client:
This error weirdly does not appear, when logging is enabled in the client. The client only times out after the same amount of time when that error would happen without logging. The log entries when logging is enabled are:
On the server side, this is the only error that coincides:
There are no PHP, PHP-FPM or MySQL errors present in the respective error logs otherwise.
Since the source error message ("Server stopped accepting new streams before this stream was established") comes from within the Qt library here, it looks like it has something to do with HTTP/2 again.
And sure enough, after disabling HTTP/2 on the server side, no synchronisation errors happened any more.
Server configuration
Operating system:
Ubuntu 16.04.6
Web server:
Apache 2.4.18
nginx 1.16.1.3
Database:
MySQL 5.7.28
PHP version:
7.3.12
ownCloud version:
10.3.1
Client configuration
Client version:
2.6.0
Operating system:
Windows
OS language:
English
Installation path of client:
C:\Program Files (x86)\ownCloud
The text was updated successfully, but these errors were encountered: