This is a forwarded bug from Novell bugzilla (see URL).
In short, rsync has problems with --dry-run and --hard-links options if the source directory contains 'enough' hardlinked files. I'm not sure what is the minimum number of hardlinks to trigger the bug, though (I will try to investigate).
I can confirm the bug with latest git development version.
I think there's an error in the steps to reproduce: the references to /tmp/data should say /tmp/X1/data. After making that correction, I can reproduce the problem. It goes away if I disable incremental recursion with --no-i-r. Interesting.
Matt, you are correct - I forgot to mention this mistake - sorry for that.
Thanks for looking into this - I can confirm that the --no-i-r fixes the issue.
Created attachment 4648 [details]
A shell script to duplicate the issue
My test script for the issue.
This is fixed in the git repo.