Problems transferring from older version of rsync to new

Wayne Davison wayned at
Sat Mar 6 10:06:54 MST 2010

On Mon, Feb 22, 2010 at 10:53 AM, Javier Henderson <javier at> wrote:

> (Client) Protocol versions: remote=29, negotiated=29
> Invalid flist flag: 1004

I looked at both 2.6.8 and 2.6.9 last week and didn't see any way for the
old code to construct a 0x1004 value for the file list flags, but sadly I
neglected to answer you back.  The older code doesn't even have an 0x1000
bit (1<<12), so that makes me think that some kind of corruption is
occurring in the transmitted bytes.  If you want to help diagnose the issue,
add some debug code to the old 2.6.8 software to make it log a flag value of
0x1004.  Then we would know if 0x1004 was indeed being transmitted by the
code. From your usage, it appears that the 2.6.8 software is an rsync
daemon, so lets have it write to the daemon log (edit flist.c):

        if (protocol_version >= 28) {
                if (!flags && !S_ISDIR(mode))
                        flags |= XMIT_TOP_DIR;
                if ((flags & 0xFF00) || !flags) {
                        flags |= XMIT_EXTENDED_FLAGS;
                        if (flags == 0x1004) rprintf(FLOG, "Sending flags =
%x!!\n", flags); /* <-- Add this line */
                        write_byte(f, flags);
                        write_byte(f, flags >> 8);
                } else
                        write_byte(f, flags);
        } else {

If you find that 0x1004 is indeed being sent, we'll have to figure out if
there is any way (other than memory corruption) for that flag to be sent.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the rsync mailing list