Closed dlucredativ closed 6 months ago
Looks like a valid bug, but the world of IPv6 literals is messy. I suspect you are just about the only person using v6 literals and external rsync, vs real DNS or mdns names. Do you know that rsync is ok with [] addrs? Are you up for creating a PR?
We are considering removing external sync support as not useful in #871. While you've shown there is a bug, I wonder if you can explain (in #871) why it is useful to use it, vs just letting the defaults happen, in more than an unusual or edge case.
Assuming rsync is ok with [] addrs (I am not going to test) then I can provide a quick PR with a workaround. There will not be a real fix for the reason of #871.
I strongly believe that "copyprog" is itself a hack and only used to work around historic limitations in Unison. As such, this hack should eventually be removed.
I would like to hear from the OP in #871 before we do anything. Before it even makes sense to think about patching, someone(tm) needs to test rsync as the entire IPv6 literal situation is messy. Leaving external rsync was ok while it didn't take up time, but this is pushing me to just disable it.
I suspect you are just about the only person using v6 literals and external rsync, vs real DNS or mdns names.
You are right, I stumbled upon it during some synthetic tests where DNS records were not important enough.
Do you know that rsync is ok with [] addrs?
I don't know if there are gotchas or edge-cases with [], if that is your question.
Are you up for creating a PR?
No.
I'm adding wontfix for now (but leaving it open as apparently valid) since you aren't even confirming that rsync, when passed IPv6 literals with [], will work correctly. There are very few people and a very small fraction of an FTE in general working on Unison, and we rely on users being willing to dig in and help.
since you aren't even confirming that rsync, when passed IPv6 literals with [], will work correctly.
Doesn't this twist the burden of proof? A user who were invested in getting this fixed wouldn't ask "please add brackets" but "please don't remove brackets". Unison thinks to know better what rsync needs and fails with it.
The following happens with Unison 2.53.3 (Debian trixie).
Internal copy mechanism works:
External copy mechanism fails:
This is because
rsync
should have been invoked with[2a05:d014:ac8:7e00::ffeb]:/mnt/bar
instead of2a05:d014:ac8:7e00::ffeb:/mnt/bar
.