iobuf.msg.size default is 32k so when send many files it may be hang on perform_io and why iobuf.msg.len always increase to big and never reduce .x86_64 (gdb) bt #0 0x000000322bce1353 in __select_nocancel () from /lib64/libc.so.6 #1 0x0000000000429d7a in perform_io (needed=154, flags=4) at io.c:742 #2 0x000000000042b45a in send_msg (code=MSG_LOG, buf=0x7fff8ed87400 "10.126.100.201 682364 tjtx-100-200_20160121_135901/aifang_dw/contract_snapshot_detail_20151103.MYD 682244 2015/12/05-18:53:33 recv 114409 fullbak\n", len=147, convert=0) at io.c:958 #3 0x00000000004218a0 in rwrite (code=FLOG, buf=0x7fff8ed87400 "10.126.100.201 682364 tjtx-100-200_20160121_135901/aifang_dw/contract_snapshot_detail_20151103.MYD 682244 2015/12/05-18:53:33 recv 114409 fullbak\n", len=147, is_utf8=0) at log.c:277 #4 0x000000000042299c in log_formatted (code=FLOG, format=<value optimized out>, op=0x45170a "recv", file=0x7f976a8cb360, fname=0x0, iflags=40960, hlink=0x0) at log.c:769 #5 0x0000000000422eaa in log_item (code=FINFO, file=0x7f976a8cb360, iflags=40960, hlink=0x0) at log.c:806 #6 0x0000000000413966 in recv_files (f_in=3, f_out=7, local_name=0x0) at receiver.c:852 #7 0x000000000041d3dc in do_recv (f_in=3, f_out=7, local_name=0x0) at main.c:901 #8 0x000000000041dbbd in do_server_recv (f_in=3, f_out=3, argc=<value optimized out>, argv=<value optimized out>) at main.c:1070 #9 start_server (f_in=3, f_out=3, argc=<value optimized out>, argv=<value optimized out>) at main.c:1104 #10 0x000000000043c5b8 in rsync_module (f_in=3, f_out=3, i=3, addr=<value optimized out>, host=0x67d2a0 "tjtx-100-201.58os.org") at clientserver.c:1003 #11 0x000000000043d58d in start_daemon (f_in=3, f_out=3) at clientserver.c:1094 #12 0x0000000000433b20 in start_accept_loop (port=873, fn=0x43d3b0 <start_daemon>) at socket.c:618 #13 0x000000000043d77b in daemon_main () at clientserver.c:1196 #14 0x000000000041ee25 in main (argc=0, argv=0x0) at main.c:1621 (gdb)