I still see 2.5.5 hangs where the destination rsync exits (for whatever reason -- I don't see any errors) and the source waits on something forever. The interesting thing about it is when I strace the child rsync pid on the source side then rsync exits as it should. Strace must introduce a timing delay of some sort that allows one of the processes to properly detect the end of channel. I forgot to do a netstat on the socket this time -- I'll do it next time. I see this hang 3-4 times each week. STRACE OF THE PARENT: (does this forever) ---------------------------------------- wait4(7259, 0xbffffc38, WNOHANG, NULL) = 0 gettimeofday({1028901467, 81808}, NULL) = 0 gettimeofday({1028901467, 81976}, NULL) = 0 select(0, NULL, NULL, NULL, {0, 20000}) = 0 (Timeout) gettimeofday({1028901467, 101509}, NULL) = 0 select(0, NULL, NULL, NULL, {0, 1000}) = 0 (Timeout) gettimeofday({1028901467, 111529}, NULL) = 0 wait4(7259, 0xbffffc38, WNOHANG, NULL) = 0 gettimeofday({1028901467, 111881}, NULL) = 0 gettimeofday({1028901467, 112936}, NULL) = 0 select(0, NULL, NULL, NULL, {0, 20000}) = 0 (Timeout) gettimeofday({1028901467, 132002}, NULL) = 0 wait4(7259, 0xbffffc38, WNOHANG, NULL) = 0 gettimeofday({1028901467, 132362}, NULL) = 0 STRACE OF CHILD: this causes rsync to exit properly --------------------------------------------------- select(7, [3 4], [], NULL, NULL) = 1 (in [4]) read(4, "", 16384) = 0 close(4) = 0 select(7, [3], [3], NULL, NULL) = 1 (out [3]) write(3, "\222\265\316\340q\310\35\244\233T\33\203\5\247~v<\246\5"..., 32) = 32 select(7, [3], [], NULL, NULL) = 1 (in [3]) read(3, "4\217\321\351`\230\t\32\nx\2150\246\2\352Z\255\33?\314"..., 8192) = 96 close(6) = 0 select(7, [3], [3], NULL, NULL) = 1 (out [3]) write(3, "\361RK\276\257\23u\2265JmI\272(|4\346b.\2760@k\237-_x\252"..., 32) = 32 ioctl(0, TCGETS, 0xbffffa08) = -1 EINVAL (Invalid argument) fcntl64(0, F_GETFL) = 0x802 (flags O_RDWR|O_NONBLOCK) fcntl64(0, F_SETFL, O_RDWR) = 0 ioctl(1, TCGETS, 0xbffffa08) = -1 EINVAL (Invalid argument) fcntl64(1, F_GETFL) = 0x802 (flags O_RDWR|O_NONBLOCK) fcntl64(1, F_SETFL, O_RDWR) = 0 ioctl(2, TCGETS, 0xbffffa08) = -1 ENOTTY (Inappropriate ioctl for device) fcntl64(2, F_GETFL) = 0x8801 (flags O_WRONLY|O_NONBLOCK|O_LARGEFILE) fcntl64(2, F_SETFL, O_WRONLY|O_LARGEFILE) = 0 gettimeofday({1028901480, 966810}, NULL) = 0 shutdown(3, 2 /* send and receive */) = 0 close(3) = 0 _exit(0) = ? rsync version 2.5.5 protocol version 26 Copyright (C) 1996-2002 by Andrew Tridgell and others <http://rsync.samba.org/> Capabilities: 64-bit files, socketpairs, hard links, symlinks, batchfiles, IPv6, 64-bit system inums, 64-bit internal inums