A recent change to openrsync added the --timeout opt. There's code to handle the (default) case of --timeout=0, which sets the poll_timeout to -1 (INFTIM). Unfortunately that code doesn't run in the server process, meaning all of the relevant calls to poll(2) return immediately and the process fails.
The following patch addresses the issue by moving the code that handles --timeout=0 up to run before the rsync_server call. Index: main.c =================================================================== RCS file: /cvs/src/usr.bin/rsync/main.c,v retrieving revision 1.50 diff -r1.50 main.c 411a412,417 > /* by default and for --timeout=0 disable poll_timeout */ > if (poll_timeout == 0) > poll_timeout = -1; > else > poll_timeout *= 1000; > 420,425d425 < < /* by default and for --timeout=0 disable poll_timeout */ < if (poll_timeout == 0) < poll_timeout = -1; < else < poll_timeout *= 1000;