Client 2.5.4 and 2.6.0alpha1 does not work with nginx

Expected behaviour

  1. username can login on web portal
  2. testpilot client connects to server with same credentials

Actual behaviour

  1. username can connect and upload/download files on web portal, server works perfectly fine: OK
  2. desktop client cannot connect: KO
    error with connection closed, cannot login

=> error does not happens with testpilot 2.5.1
Also, client desktop testpilot 2.5.1 on stable channel proposes to update to 2.5.2 but only 2.5.4 is available.

Steps to reproduce

  1. install testpilot desktop client 2.5.4 or 2.6.0alpha1 on Windows 10 Pro x64
  2. enter server address, username and password
  3. click connect

Server configuration

Operating system:
host: Ubuntu 16.04 AWS
docker container: Ubuntu 18.04 + ownlcloud 10.0.10 or 10.2.0 (tried both)

Web server:
host: nginx/1.10.3 (Ubuntu) + php 7.2-FPM
docker container: nginx/1.14.0 (Ubuntu)

Database:
docker container MariaDB
docker container Redis

PHP version:
host: php 7.2-FPM
docker container: php 7.2-FPM + OPcache + APCu

ownCloud version:
10.0.10
10.2.0

Storage backend (external storage):
docker volume (local fs)

Client configuration

Client version:
testpilot edition 2.5.1: ok
testpilot edition 2.5.4: ko
testpilot edition 2.6.0alpha1: ko

Operating system:
Windows 10 Pro x64 (2 different machines)

OS language:
english

Installation path of client:
C:\Program Files(x86)

Logs

/data/website.com/logs/nginx.access.log

when it doesn't work:
client.ip.0.0 - - [04/Jun/2019:18:50:25 -0400] "PROPFIND /remote.php/dav/files/username/ HTTP/1.1" 401 460 349 0.023 0.023 "-" "Mozilla/5.0 (Windows) mirall/2.6.0alpha1 (build 11574) (testpilotcloud)" "-"
client.ip.0.0 - username [04/Jun/2019:18:50:31 -0400] "GET /status.php HTTP/1.1" 200 156 566 0.016 0.016 "-" "Mozilla/5.0 (Windows) mirall/2.6.0alpha1 (build 11574) (testpilotcloud)" "-"
client.ip.0.0 - username [04/Jun/2019:18:50:31 -0400] "PROPFIND /remote.php/dav/files/username/ HTTP/1.1" 400 0 657 0.108 - "-" "Mozilla/5.0 (Windows) mirall/2.6.0alpha1 (build 11574) (testpilotcloud)" "-"

when it works:
client.ip.0.0 - - [04/Jun/2019:20:54:52 -0400] "PROPFIND /remote.php/dav/files/username/ HTTP/2.0" 401 888 64 0.020 0.020 "-" "Mozilla/5.0 (Windows) mirall/2.5.1 (build 10808) (testpilotcloud)" "-"
client.ip.0.0 - username [04/Jun/2019:20:54:55 -0400] "GET /status.php HTTP/2.0" 200 681 309 0.015 0.015 "-" "Mozilla/5.0 (Windows) mirall/2.5.1 (build 10808) (testpilotcloud)" "-"
client.ip.0.0 - username [04/Jun/2019:20:54:55 -0400] "PROPFIND /remote.php/dav/files/username/ HTTP/2.0" 207 696 212 0.198 0.130 "-" "Mozilla/5.0 (Windows) mirall/2.5.1 (build 10808) (testpilotcloud)" "-"
  1. Client logfile: testpilotcloud.exe does not accept parameters and does not generate logs

  2. Web server error log: cf ### Logs

  3. Server logfile: ownCloud log (data/owncloud.log): irrelevant, does not get appended until the client is connected

Owncloud is hosted in a docker container, called audioscavenger/owncloud-lemp:latest and is a fork of your own dockerfile, but with nginx instead of apache. I didn’t change anything relevant and the server works fine.
I thought I made some mistakes on the server side and updated the container from owncloud 10.0.10 to 10.2.0 but same issue.
The issue is the testpilot desktop client on windows, version 2.6.0alpha1 and 2.5.4.

I solved my issue by downgrading the client to 2.5.1 but I hope it can help your development in some way!

There is the logdir option though :slight_smile: Can you check that parameter?

Your http log shows an error 400… hmm… have you also checked nginx error log?

maybe i was not clear, my bad.

http log = /data/website.com/logs/nginx.access.log = nginx proxy server on the host

This proxy serves SSL so the container doesn’t have to.
The nginx logs of the owncloud server in the container are the same. Exactly the same.

I just synchronized successfully some more folders with testpilot 2.5.1, so it’s definitely an issue with 2.5.4 and 2.6.0, that malform the login requests.

I cannot use wireshark with SSL, too bad.
And you are right I wanted to see the client logs, but none of these options worked: --logwindow or --logfile log.txt

but YOUR option worked --logdir !

  • So I am proud to say that I could generate logs for the client version 2.6.0alpha1 here on gist
  • I also realized I never upgraded to owncloud 10.2.0 since I was using the keyword latest to download the tarball… shame on me.

updated server to version 10.2.0, web access works fine
downgraded client to production version 2.5.4, connection to server works then connection “closed”

server side logs are scarce, i really don’t see what the issue is.
gist with logs : https://gist.github.com/audioscavenger/d1501b1ee25dbccd6247a2a56efc29f5

downgraded client to testpilot 2.5.1 and everything works fine
thanks

We strongly recommend using apache since we develop and test using apache. If you want to use nginx you can, but you have to be willing to hack your way through.

2 Likes

Is there a difference if http2 is enabled vs if it is not?

Hmmmm owncloud was served by nginx with http in its own container, and https is the reverse proxy on the host server. It didn’t come to my mind that i should test without ssl. It just used to work with previous oc version version and thats the only difference.

thank you for the information! it makes all sense now. That’s exactly why I forked your docker image to nginx :slight_smile:

Just as addendum to this older conversation which I came across having had issues with stable client 2.6.0 syncing with OC 10.3.2 (Owncloud server replied with an error while reading directory…)

I am using Owncloud 10.3.2 with nginx and php7.3-fpm. Client 2.5.4 works fine. Client 2.6.0 does not.

However, Nextcloud client 2.6.1 (with http2) is working swimmingly.

Hey,

in such cases i think it is the best idea to report a possible issue to the ownCloud developement team at https://github.com/owncloud/client/issues because i’m not sure if they are reading / noticing this thread. :frowning_face: