-
Notifications
You must be signed in to change notification settings - Fork 235
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Local sync does not resume partial transfer #570
Comments
Please either close this and bring it up on unison-users or edit to be a crisp description of incorrect behavior vs the documentation, preferably with a repro recipe. And, if you can separate into multiple incorrect behaviors, please do. I think you have found a real issue and there is a bug lurking here -- but we're trying to have the tracker be clearly-articulated bugs and feature requests only. (I could guess at one, but I don't want to guess.) |
Ok, no problem. Here's a few commands that should exhibit it. SetupCheck that an SSHD is running locally with the current user's public key in Generate 1GB of fake data (100 × 10MB files) to transfer:
Verify expected "remote" behaviour:
Reproduce aberrant "local" behaviour:
Let me know if this is enough or you want it redone somehow. |
The part of the manual that this seemed to clash with is under "Making Unison faster on large files":
It is in a section about customizing how Unison runs, although the wording seems to suggest that resume from partial transfer happens regardless. (I notice now that this link could also be an old revision of the docs which I just happened to find when googling; do point me in the right direction if it has since changed) |
Thanks, that's clear and agreed the local behavior is contrary to docs (and to what obviously ought to be). Can you add a comment with unison version, ocaml version, OS type and version? (I don't expect this is ok with the most recent, but we only deal with the most recent release.) |
Sure thing:
|
Oops, just missed the part about OS. I'm on Ubuntu 20.04. |
I can confirm both issues that you've observed. And yes, there is a slightly different code path taken when copying files locally vs remotely. As for the SIGINT issue, I propose to handle it separately. There already is #554; perhaps that can serve as the umbrella ticket for this specific issue. This ticket can remain about the resume issue. |
Thanks for looking at this! I can confirm that the linked build appears to recognise files that have already been transferred in a previously aborted "first-time" local sync. The terminal shows the following:
etc. |
@tleedjarv : Yep, seems to work fine still. |
Hey,
I seem to have tripped over some odd opinions that Unison has about behaviour of remote vs local syncing!
To elaborate, I want to sync files to and from a local FUSE mount; the code behind this mount then transparently encrypts them and sends them to a cloud store. However Unison appears to unexpectedly have separate code paths for remote and ostensibly "local" syncs:
ctrl-c
(SIGINT, I think?) on the terminal cancels the whole process when remote syncing, but when local syncing just stops the current file and moves on to the next, leaving partial files.I think I see in the tracker others stumbling into related differences (e.g. #472), though not these two specifically.
If fixing them would be very difficult, I am satisfied it's possible to work around by making Unison SSH to my local machine (thus forcing "remote" behaviour). However the "local" path appears to contradict what's in the manual (which is maybe written from a "remote-only" perspective?), so perhaps it could be handy to have a prominent warning somewhere about it.
The text was updated successfully, but these errors were encountered: