Created attachment 9850 [details] Strace output of infinite loop Hello. Given a test module: [test-module] path = /tmp auth users = * secrets file = /tmp/rsyncd.secrets and secrets file: gooduser:goodpass and running a daemon, good user / good password and good user / bad password work as expected: $ RSYNC_PASSWORD=goodpass rsync rsync://gooduser@host/test-module/ drwxrwxrwt 12,288 2014/04/13 03:31:34 . $ RSYNC_PASSWORD=badpass rsync rsync://gooduser@host/test-module/ @ERROR: auth failed on module test-module rsync error: error starting client-server protocol (code 5) at main.c(1653) [Receiver=3.1.0] But specifying a nonexistent username puts the daemon into an infinite loop. $ RSYNC_PASSWORD=badpass rsync rsync://baduser@host/test-module/ A partial strace is attached, but basically it reads to the end of rsync.d.secrets, then loops: 27953 select(5, [4], NULL, [4], {60, 0}) = 1 (in [4], left {59, 999999}) 27953 read(4, "", 1) = 0 The parent process remains open for other connections, but the child process goes into a CPU spin. I've done a git bisect, and the problem appears to have been introduced with commit 5ebe9a46d7f3c846a6d665cb8c6ab8b79508a6df (Add @group auth and overrides to "auth user" daemon config.).
I've committed a fix for this into git for release in 3.1.1. Thanks for the report!