When missing files are to be passed through to the receiver, the sender tries to get the ACL and xattrs even for a missing file. This obviously fails, the file is skipped, and the deletion doesn't happen. The attached patch fixes the problem minimally and protocol-compatibly by lower-level tweaking; ideally, the knowledge that st_mode == 0 means a missing file ought to be restricted to flist.c
Created attachment 9595 [details] Don't try to get ACLs or xattrs for missing files when --delete-missing-args is in effect.
Nice catch. I've made the same fix as yours, just using a new IS_MISSING_FILE(statbuf) define to at least make the st_mode == 0 check a little clearer. Thanks for both the bug-report and the patch!