pydio / pydio-sync

Python version of the Pydio synchronization client
https://pydio.com
GNU General Public License v3.0
82 stars 32 forks source link

WantWriteError when syncing > 100 kB files #142

Open raphael0202 opened 8 years ago

raphael0202 commented 8 years ago

On linux, I get a WantWriteError from the OpenSSL library when I try to upload a file > 100 kB using the sync client:

00:27:49 INFO 139700344252160 Thread-2 Processing 1 changes 00:27:49 INFO 139700344252160 Thread-2 To be processed 1 Exception in thread Thread-27: Traceback (most recent call last): File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner self.run() File "/home/raphael/Documents/Projets/pydio-sync/src/pydio/job/change_stores.py", line 166, in run if not callback2(self.change): File "/home/raphael/Documents/Projets/pydio-sync/src/pydio/job/continous_merger.py", line 613, in processor_callback2 proc.process_change() File "/home/raphael/Documents/Projets/pydio-sync/src/pydio/job/change_processor.py", line 109, in process_change self.process_upload(item['node']['node_path'], is_mod=(item['type'] != 'create'), callback_dict=item) File "/home/raphael/Documents/Projets/pydio-sync/src/pydio/job/change_processor.py", line 283, in process_upload callback_dict, max_upload_size=max_upload_size) File "/home/raphael/Documents/Projets/pydio-sync/src/pydio/sdkremote/remote.py", line 770, in upload_and_hashstat self.perform_request(url=url, type='post', data=data, files=files, with_progress=callback_dict) File "/home/raphael/Documents/Projets/pydio-sync/src/pydio/sdkremote/remote.py", line 339, in perform_request stream=stream, with_progress=with_progress) File "/home/raphael/Documents/Projets/pydio-sync/src/pydio/sdkremote/remote.py", line 284, in perform_with_tokens max_size=self.upload_max_size) File "/home/raphael/Documents/Projets/pydio-sync/src/pydio/sdkremote/remote.py", line 1232, in upload_file_with_progress proxies=self.proxies File "/usr/lib/python2.7/dist-packages/requests/api.py", line 94, in post return request('post', url, data=data, json=json, _kwargs) File "/usr/lib/python2.7/dist-packages/requests/api.py", line 49, in request return session.request(method=method, url=url, _kwargs) File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 457, in request resp = self.send(prep, _send_kwargs) File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 569, in send r = adapter.send(request, _kwargs) File "/usr/lib/python2.7/dist-packages/requests/adapters.py", line 362, in send timeout=timeout File "/usr/lib/python2.7/dist-packages/urllib3/connectionpool.py", line 516, in urlopen body=body, headers=headers) File "/usr/lib/python2.7/dist-packages/urllib3/connectionpool.py", line 308, in _make_request conn.request(method, url, **httplib_request_kw) File "/usr/lib/python2.7/httplib.py", line 1001, in request self._send_request(method, url, body, headers) File "/usr/lib/python2.7/httplib.py", line 1035, in _send_request self.endheaders(body) File "/usr/lib/python2.7/httplib.py", line 997, in endheaders self._send_output(message_body) File "/usr/lib/python2.7/httplib.py", line 854, in _send_output self.send(message_body) File "/usr/lib/python2.7/httplib.py", line 823, in send self.sock.sendall(datablock) File "/usr/lib/python2.7/dist-packages/urllib3/contrib/pyopenssl.py", line 208, in sendall return self.connection.sendall(data) File "/usr/lib/python2.7/dist-packages/OpenSSL/SSL.py", line 977, in sendall self._raise_ssl_error(self._ssl, result) File "/usr/lib/python2.7/dist-packages/OpenSSL/SSL.py", line 849, in _raise_ssl_error raise WantWriteError() WantWriteError

7omate commented 8 years ago

Hi, how are you running PydioSync? Did you try from another platform? What's your server version and configuration (ssl wise) like? Does it work without SSL?

raphael0202 commented 8 years ago

Hello, sorry for my late answer. I'm running PydioSync from directly using python main.py in the src folder, latest version from Github. I only tried on Linux. Using Nginx 1.9.10, SSL certificate obtained from Let's encrypt. And I haven't tried without SSL, as the Pydio server is in production and heavily used, I would rather not.

edit: The Nginx server performs a redirection on the 443 port, I need to modify this setting to be able to connect without SSL.