Windows client upload/download sync not working (edited)

Hi, can’t seem to get my windows client syncing properly and need some help. So the client version is 6.1.1 and the server is 6.2.2 on a Debian 9 machine.

Other from my windows client (I have tested android app and browser) I can upload anything to the server just fine but when adding something in my synced folder and try to sync it just sits on “Upload 0%” and then changes to “Data transfer was interrupted. Please check network or firewall”. Since it works well otherwise I figured the firewall and network settings are fine and looked into the logs this comes over and over in the “seafile.log” on my windows machine.

[10/15/17 18:07:29] http-tx-mgr.c(912): libcurl failed to PUT http://*privatedomain*/seafhttp/repo/aba490ef-6c40-4b64-bab3-6b6d10c2c5aa/block/ea5f913b0793bee3693c5f96c23c10c964ef7146: Failure when receiving data from the peer.
[10/15/17 18:07:29] http-tx-mgr.c(1132): Transfer repo 'aba490ef': ('normal', 'data') --> ('error', 'finished')
[10/15/17 18:07:29] sync-mgr.c(764): Repo 'My Library' sync state transition from uploading to 'error': 'Error occured in upload.'.

I am at the moment using apache webserver without ssl since I read that I need to enable CRL to get it to sync with windows client.

Anyone that can give me a helping hand? Please do tell if and what information you need more. Thanks!

First, you can use Let’s Encrypt for SSL. :slight_smile:

Did you try reinstall client. It’s look like there is some problem with curl library.
Did you checked server side logs? Apache, seafile etc. what they are saying?

Hi, thanks for answering :slight_smile:

I’ll definitively look up Let’s Encrypt, I quickly tried to enable ssl and config the server but with the same outcome.

Client has been reinstalled twice but no difference. I’ve tried to install curl and libcurl3 to the server but no affect.

In the serverlogs I found this in “seahub_django_request.log” (and only this so far here but it’s 2 days old):

2017-10-14 14:49:28,800 [WARNING] django.request:170 get_response Not Found: /8000
2017-10-14 14:49:36,880 [WARNING] django.request:170 get_response Not Found: /8000
2017-10-14 14:51:27,521 [WARNING] django.request:170 get_response Not Found: /8000
2017-10-14 14:51:32,025 [WARNING] django.request:170 get_response Not Found: /8082
2017-10-14 14:52:15,722 [WARNING] django.request:170 get_response Not Found: /8000/api2/auth-token/
2017-10-14 15:20:48,744 [ERROR] django.request:256 handle_uncaught_exception Internal Server Error: /
Traceback (most recent call last):
  File "/home/seafile/seafile-server-6.2.2/seahub/thirdpart/Django-1.8.18-py2.7.egg/django/core/handlers/base.py", line 108,$
    response = middleware_method(request)
  File "/home/seafile/seafile-server-6.2.2/seahub/seahub/auth/middleware.py", line 18, in process_request
    if request.user.is_authenticated() and not request.user.is_active:
  File "/home/seafile/seafile-server-6.2.2/seahub/seahub/auth/middleware.py", line 10, in __get__
    request._cached_user = get_user(request)
  File "/home/seafile/seafile-server-6.2.2/seahub/seahub/auth/__init__.py", line 118, in get_user
    user = backend.get_user(username) or AnonymousUser()
  File "/home/seafile/seafile-server-6.2.2/seahub/seahub/base/accounts.py", line 475, in get_user
    user = self.get_user_with_import(username)
  File "/home/seafile/seafile-server-6.2.2/seahub/seahub/base/accounts.py", line 446, in get_user_with_import
    emailuser = seaserv.get_emailuser_with_import(username)
  File "/home/seafile/seafile-server-6.2.2/seafile/lib64/python2.6/site-packages/seaserv/service.py", line 132, in get_email$
    return ccnet_threaded_rpc.get_emailuser_with_import(email)
  File "/home/seafile/seafile-server-6.2.2/seafile/lib64/python2.6/site-packages/pysearpc/client.py", line 110, in newfunc
    ret_str = self.call_remote_func_sync(fcall_str)
  File "/home/seafile/seafile-server-6.2.2/seafile/lib64/python2.6/site-packages/ccnet/rpc.py", line 78, in call_remote_func$
    ret = self._real_call(client, req_id, fcall_str)
  File "/home/seafile/seafile-server-6.2.2/seafile/lib64/python2.6/site-packages/ccnet/rpc.py", line 40, in _real_call
    client.send_update(req_id, SC_CLIENT_CALL, SS_CLIENT_CALL, fcall_str)
  File "/home/seafile/seafile-server-6.2.2/seafile/lib64/python2.6/site-packages/ccnet/client.py", line 144, in send_update
    write_packet(self._connfd, pkt)
  File "/home/seafile/seafile-server-6.2.2/seafile/lib64/python2.6/site-packages/ccnet/packet.py", line 128, in write_packet
    sendall(fd, hdr)
  File "/home/seafile/seafile-server-6.2.2/seafile/lib64/python2.6/site-packages/ccnet/utils.py", line 31, in sendall
    raise NetworkError('Failed to write to socket: %s' % e)
NetworkError: Failed to write to socket: [Errno 32] Broken pipe

“ccnet.log” and “seafile.log” don’t show any errors/warnings or such, “seahub.log” is empty.
Apache “error.log” basically says this over and over:

[Mon Oct 16 11:46:14.767390 2017] [proxy_http:error] [pid 457:tid 139957347776256] [client 192.168.1.1:2909] AH01097: pass request body failed to 127.0.0.1:8082 (127.0.0.1) from 192.168.1.1 ()
[Mon Oct 16 11:46:45.843899 2017] [proxy_http:error] [pid 457:tid 139957238671104] (70007)The timeout specified has expired: [client 192.168.1.1:2924] AH02609: read request body failed to 127.0.0.1:8082 (127.0.0.1) from 192.168.1.1 ()

You don’t need SSL for now, stay without it. First solve problems and then migrate to SSL.

But you have problem in libcurl on client side not server side. So your installing curl and libcurl3 cannot affect you computer. Are which you provide is from different time then you provide from client.

is posibile that you have unstable local network? Cause this looks like it drop while sync. Check your server settings, Mainly used ports and URL scheme (http:// or https://).

Yep, libcurl client side. (I was thinking that too but just tried on server).

Did you mean logs from different times? I just took the latest I had from server side logs but the client side “seafile.log” shows the same error today as the one I listed in my first question. “seahub_django_request.log” only has from that day i pasted so that may be irrelevant?

I think our network is fine, have not had any problems with it before and I can download anything, it’s just the upload that’s problematic. Upload using browser on the same computer works perfectly.

You know what? I tried once more to reinstall the client with the difference that I downloaded a completely new installation file and removed the folder completely on my install path before reinstalling. Now it works…

Well, thank you and sorry for taking your time, feeling a bit silly at the moment. :slight_smile:

That’s OK :slight_smile:

Hi again,

I am sorry to say that the problem still persists. I took it all for granted when I just tried uploading a single file (which did not work before) earlier today.
Now I have the same problem again when trying to sync my folders with/or large files. Files over 1 MB already seem to be problematic, also for the browser so maybe I have some configuration on the server wrong, thoughts?

Br Benjamin

Sorry, but if it working for small files and not for large, than I cannot help you. There can be problem with server configuration or with client PC and I don’t have any idea where to start.

Post log where is successful upload and where upload fail and how big are files.

As we had it in another post today, looking at your logs it looks like you’re using python 2.6.

Python 2.7 is required.

Hmm, I checked and I do have Python 2.7 installed. I also have 3.5 though, can there be anything wrong if the server uses 3.5 instead of 2.7?

ok,

can you show your config(s)? Make sure to erase confidential information before posting them.

Ok! I have not touched too much in the config files since I believed it would work out of the box with standard configurations and the manual did not specify that too much needed to be done. Say if there are any more relevant conf files that I need to send.

conf/ccnet.conf

[General]
USER_NAME = m100s
ID = a8a...
NAME = m100s
SERVICE_URL = http://*privatedomain*:8000

[Client]
PORT = 13419

conf/seafdav.conf

[WEBDAV]
enabled = false
port = 8080
fastcgi = false
host = 0.0.0.0
share_name = /

conf/seafile.conf

[seahub]
port=8000

[fileserver]
port=8082

conf/seahub_settings.py

# -\*- coding: utf-8 -*-
SECRET_KEY = "@$w..."
FILE_SERVER_ROOT = 'http://*privatedomain*/seafhttp'

/etc/apache2/sites-enabled/000-default.conf

<VirtualHost *:80>
        ServerName *privatedomain*
        DocumentRoot /var/www

        Alias /media  /home/seafile/seafile-server-latest/seahub/media

        RewriteEngine On

        <Location /media>
                Require all granted
        </Location>

        #
        # seafile fileserver
        #
        ProxyPass /seafhttp http://127.0.0.1:8082
        ProxyPassReverse /seafhttp http://127.0.0.1:8082
        RewriteRule ^/seafhttp - [QSA,L]

        #
        # seahub
        #
        SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
        ProxyPass / http://127.0.0.1:8000/
        ProxyPassReverse / http://127.0.0.1:8000/

        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
        # error, crit, alert, emerg.
        # It is also possible to configure the loglevel for particular
        # modules, e.g.
        #LogLevel info ssl:warn

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        # For most configuration files from conf-available/, which are
        # enabled or disabled at a global level, it is possible to
        # include a line for only one particular virtual host. For example the
        # following line enables the CGI configuration for this host only
        # after it has been globally disabled with "a2disconf".
        #Include conf-available/serve-cgi-bin.conf
</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

You need to remove the port from the SERVICE_URL as it should represent the URL the user accesses Seafile by and your Webserver listens on port 80 and not 8000.

FILE_SERVER_ROOT looks ok. Make sure there is also no port specified, as it is port 80 in your case. (8000 and 8082 are only being used by apache to proxy the traffic internally).

Thanks! That was probably a problem also. Does not fix the syncing tho, restarted server (and apache just in case) but the problem persists.

So this do not seem have to do anything with the webserver or db, I’ve tried switching from SQlite to MySQL and from Apache2 to nginx doing so pretty much set up Seafile twice but the problem still persists…

ANY ideas what to try next?