(see the rsync man page for an explanation)
rsync error: protocol incompatibility (code 2) at compat.c(62)
there is a good way on how to debug this error:
The "is your shell clean" message and the "protocol mismatch" message are usually caused by having some sort of program in your .cshrc, .profile, .bashrc or equivalent file that writes a message every time you connect using a remote-shell program (such as ssh or rsh). Data written in this way corrupts the rsync data stream. rsync detects this at startup and produces those error messages. However, if you are using rsync-daemon syntax (host::path or rsync://) without using a remote-shell program (no --rsh or -e option), there is not remote-shell program involved, and the problem is probably caused by an error on the daemon side (so check the daemon logs).
A good way to test if your remote-shell connection is clean is to try something like this (use ssh or rsh, as appropriate):
ssh remotesystem /bin/true > test.dat
That should create a file called test.dat with nothing in it. If test.dat is not of zero length then your shell is not clean. Look at the contents of test.dat to see what was sent. Look at all the startup files on remotesystem to try and find the problem.
and in my case, it is because of the csh error or is it bug? somehow once csh executed this is the error message.
no idea what it mean (maybe related to memory problem... i dunno) but for temporary solution i changed the permission of /etc/profile.d/z-lti.csh to 600, so the csh will not sourcing this file when the user uses csh. the error gone & he able to rsync :)