rsync frequently hangs on me in some socket call - this is after i
have used it before in
the current session usually. it is not repeatable on demand - it just
sometimes gets into
this state.
here is the strace output:
85 679411 [select_socket] rsync 3588 thread_socket: write_ready
14494 680328 [sig] rsync 1844 wait_sig: signalling pack.wakeup 0x654
502 680830 [main] rsync 1844 sig_send: returning 0x0 from sending signal -34
65 680895 [main] rsync 1844 writev: writev (4, 0x22B610, 1)
2464 683359 [main] rsync 1844 writev: 4 = write (4, 0x22B610, 1), errno 0
82 683441 [main] rsync 1844 cygwin_select: 6, 0x22A3E0, 0x22A3D8,
0x0, 0x22A3D0
66 683507 [main] rsync 1844 dtable::select_read: fd 5
32 683539 [main] rsync 1844 cygwin_select: to->tv_sec 60,
to->tv_usec 0, ms 60000
32 683571 [main] rsync 1844 cygwin_select: sel.always_ready 0
4230 683641 [main] rsync 3588 select_stuff::wait: m 2, ms 60000
40 683681 [main] rsync 3588 select_stuff::wait: woke up. wait_ret
1. verifying
33 683714 [main] rsync 3588 select_stuff::wait: gotone 1
31 683745 [main] rsync 3588 select_stuff::wait: returning 0
31 683776 [main] rsync 3588 select_stuff::cleanup: calling cleanup routines
444 684015 [main] rsync 1844 start_thread_socket: Handle 0x688
35 684050 [main] rsync 1844 start_thread_socket: Added to readfds
32 684082 [main] rsync 1844 start_thread_socket: exitsock 0x6B8
32 684114 [main] rsync 1844 start_thread_socket: stuff_start 0x22A344
1226 685002 [main] rsync 3588 socket_cleanup: si 0x10012A98
si->thread 0x61106F30
119 685121 [main] rsync 3588 socket_cleanup: sent a byte to
exitsock 0x7F0, res -1
64 685185 [main] rsync 3588 socket_cleanup: reading a byte from
exitsock 0x7F0
1201 685315 [main] rsync 1844 select_stuff::wait: m 2, ms 60000
407 685722 [select_socket] rsync 1844 thread_socket: stuff_start 0x10015B04
can't recall if it hangs with just simple flags -avx (note, no ssh
involved, just local copy),
but it for sure does when i use these:
RSYNC_MAX_DELETE=${RSYNC_MAX_DELETE:-500}
RSYNC_MODIFY_WINDOW=${RSYNC_MODIFY_WINDOW:-10}
set -x
rsync \
--archive \
--verbose \
--one-file-system \
--delete-before \
--max-delete=$RSYNC_MAX_DELETE \
--itemize-changes \
--human-readable \
--progress \
--modify-window=$RSYNC_MODIFY_WINDOW \
--exclude="System Volume Information" \
--exclude=Recycled \
--exclude="lost+found" \
--exclude=RECYCLER \
--exclude='*DONOTDELETE*' \
$source $target