Apparently cygwin "stat" can sometimes return a uid or gid of -1. Since the "chown" syscall takes -1 to mean "don't change this field", rsync silently fails to preserve the source ownership. This problem came up on the rsnapshot list: https://sourceforge.net/mailarchive/forum.php?thread_name=1259202707.2009.382.camel%40mattlaptop2.local&forum_name=rsnapshot-discuss Rsync should issue an FERROR_XFER in this case. I was inclined to have the receiving side do it because the limitation is in the receiving side's chown call, but it also looks like -1 has a special meaning to the uid-mapping code, so maybe the sender needs to catch the value before it causes trouble there.
This is now fixed in the git repo.