borgbackup/borg
Thomas Waldmann 941b8d7778 borg serve: fix transmission data loss of pipe writes, fixes #1268
This problem was found on cygwin/windows due to its small pipe buffer size of 64kiB.

Due to that, bigger (like >64kiB) writes are always only partially done and os.write() returns
the amount of data that was actually sent. the code previously did not use that return value
and assumed that always all is sent, which led to a loss of the remainder of transmission data
and usually some "unexpected RPC data format" error on the client side.

Neither Linux nor *BSD ever do partial writes on blocking pipes, unless interrupted by a
signal, in which case serve() would terminate.
2017-01-13 20:40:40 +01:00
..
testsuite work around spurious log level related test fail when using pytest-xdist 2017-01-06 05:48:50 +01:00
__init__.py implement borgmajor/minor/patch placeholders, fixes #1694 2016-10-22 00:20:50 +02:00
__main__.py cosmetic source cleanup (flake8) 2016-01-30 21:32:45 +01:00
_chunker.c Workround a bug in Linux fadvise FADV_DONTNEED, fixes #907 2016-04-15 20:16:47 -04:00
_hashindex.c hashindex.c: hashindex_resize check hashindex_set rc (contract) 2016-07-09 01:35:01 +02:00
archive.py check: print non-exit-code warning if --last or --prefix aren't fulfilled 2017-01-12 02:04:44 +01:00
archiver.py upgrade: fix incorrect title levels 2017-01-12 14:30:23 +01:00
cache.py fix determination of newest mtime, fixes #1860 2016-11-20 00:08:33 +01:00
chunker.pyx cython code: add some int types to get rid of unspecific python add / subtract operations 2015-09-10 23:12:12 +02:00
compress.pyx lz4: reuse helpers.Buffer 2016-08-13 01:46:15 +02:00
crypto.pyx Add tertiary authentication for metadata (TAM) 2016-12-17 20:06:41 +01:00
fuse.py FUSE: always create a root dir, fixes #1125 2016-07-29 00:24:18 +02:00
hashindex.pyx hashindex: bump api version 2016-09-30 20:38:46 +02:00
helpers.py helpers.Buffer: raise OSError subclass if too much memory is allocd 2017-01-04 19:28:05 +01:00
key.py init: explain manifest auth compatibility 2016-12-19 04:01:27 +01:00
keymanager.py backport bin_to_hex and use it 2016-10-06 05:15:01 +02:00
locking.py repository: fix spurious, empty lock.roster on InvalidRepository exception 2016-08-18 00:54:12 +02:00
logger.py sane remote logging, remote stderr, fixes #461 2015-12-12 22:15:08 +01:00
lrucache.py Merge branch 'master' into lrucache 2015-08-14 10:59:21 +01:00
platform.py borg umount, fixes #1855 2016-11-17 20:16:28 +01:00
platform_darwin.pyx borg umount, fixes #1855 2016-11-17 20:16:28 +01:00
platform_freebsd.pyx borg umount, fixes #1855 2016-11-17 20:16:28 +01:00
platform_linux.pyx borg umount, fixes #1855 2016-11-17 20:16:28 +01:00
remote.py borg serve: fix transmission data loss of pipe writes, fixes #1268 2017-01-13 20:40:40 +01:00
repository.py always setup module level "logger" in the same way 2017-01-06 05:48:50 +01:00
shellpattern.py fix most python-source related sphinx warnings 2016-07-10 17:26:04 +02:00
upgrader.py always setup module level "logger" in the same way 2017-01-06 05:48:50 +01:00
xattr.py helpers.Buffer: raise OSError subclass if too much memory is allocd 2017-01-04 19:28:05 +01:00