Rsync 2.6.4 Multiplexing Overflows when File Name Too Long
wayned at samba.org
Mon Apr 4 01:10:15 GMT 2005
On Fri, Apr 01, 2005 at 03:54:38PM -0500, Benjamin Watkins wrote:
> multiplexing overflow 1:296 [sender]
This indicates that there is an error message arriving (1) that has a
length of 296 bytes, but this is too long for the "line" buffer in
readfd_unbuffered(). I changed the length of this buffer from 1024
bytes to MAXPATHLEN+1 because it was too short for receiving info/error
messages for really long file names (since a normal system has a
MAXPATHLEN that is closer to 4 KB). (Hmm, is MAXPATHLEN really supposed
to be that short under Cygwin? Surprising...)
Anyway, the simple solution is to just make the line buffer larger.
I'll attach a patch.
> In addition, the client actually exits with a status code of 3072, not
> 12 as indicated by the standard error message.
That sounds like a problem with your shell or the Cygwin environment
because rsync exits with the right error code under Linux.
-------------- next part --------------
--- io.c 4 Apr 2005 00:48:39 -0000 1.167
+++ io.c 4 Apr 2005 01:07:10 -0000
@@ -706,7 +706,11 @@ static int readfd_unbuffered(int fd, cha
static size_t remaining;
static size_t iobuf_in_ndx;
int tag, ret = 0;
- char line[MAXPATHLEN+1];
+#if MAXPATHLEN < 4096
+ char line[4096+1024];
+ char line[MAXPATHLEN+1024];
if (!iobuf_in || fd != sock_f_in)
return read_timeout(fd, buf, len);
More information about the rsync