If rsync is invoked with -vvv, it invokes the server with -vvv as well. Testing with a client -> server sync: During recv_file_name(), the server does: if (verbose > 2) { rprintf(FINFO, "recv_file_name(%s)\n", f_name(flist->files[i])); } which end up in mplex_write(). However, the client _never_ reads during send_file_list() (as far as I can tell). Eventually, the pipe from the server to the client fills up, causing the server to hang waiting for the socket to become writeable. After some time, (as the server is now stalled forever), the pipe from the client to the server fills up, causing the client to hang waiting for the socket to become writeable. And now we have a deadlock. Either the server should _never_ write during recv_file_list(), or the client has to check for input during send_file_list(). Sadly, I haven't been able to figure out where to modify the code so that the client reads the FINFO messages and sends them to stdout/stderr. Can someone who better understands the rsync code base fix this, or hand me a few more clues so I can fix it myself? -- Carson