Conversation
bdc0a6c to
4ca6e8c
Compare
4ca6e8c to
d822f2a
Compare
|
sorry -- we amassed conflicts since then. BTW -- were you done with this PR? |
git-annex has a bug[1] that affects special remotes that support exporttree: Sometimes the EXPORT command is sent to a different process of the external remote than the following TRANSFEREXPORT command and as a result, one process receives two EXPORTs in a row. This commit adds a check of consecutive EXPORTs so that the remote replies with an ERROR in this case. [1] http://git-annex.branchable.com/bugs/external_remote_export_sent_to_wrong_process
Versions of git-annex that contain a fix for the consecutive EXPORT race condition[1] now accept VERSION 2 from external special remotes. Starting with this commit, AnnexRemote will send VERSION 2 if exporttree is supported by the remote and VERSION 1 if not. [1] https://git-annex.branchable.com/bugs/external_remote_export_sent_to_wrong_process/
d822f2a to
3399dc0
Compare
|
FWIW, while still on this repo -- I have rebased this PR and resolved conflicts |
Codecov ReportAttention:
Additional details and impacted files@@ Coverage Diff @@
## master #71 +/- ##
==========================================
+ Coverage 96.10% 96.19% +0.08%
==========================================
Files 2 2
Lines 385 394 +9
==========================================
+ Hits 370 379 +9
Misses 15 15
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
|
Sorry, totally overlooked your comments last year. Yes, I was done with it and thought I leave merging with you guys as by now you're more familiar with the repo than me. |
| @property | ||
| def version(self): | ||
| if self.remote.exportsupported() and not self.remote.force_version1: | ||
| return "VERSION 2" |
There was a problem hiding this comment.
wouldn't sending VERSION 2 depend on git-annex version? since if it is annex older than the one added support for VERSION 2, it would puke (or not)?
There was a problem hiding this comment.
That's true. Now that I'm looking into it again I think we should just scrap the last two commits. VERSION 2 basically only exists so a special remote can ensure that git-annex is new enough to not have the bug. But 78c280d already handles the bug,
git-annex has a bug[1] that affects special remotes that support exporttree: Sometimes the EXPORT command is sent to a different process of the external remote than the following TRANSFEREXPORT command and as a result, one process receives two EXPORTs in a row.
This PR adds a check of consecutive EXPORTs so that the remote replies with an ERROR in this case.
Versions of git-annex that contain a fix now accept VERSION 2 from external special remotes.
Starting with this commit, AnnexRemote will send VERSION 2 if exporttree
is supported by the remote and VERSION 1 if not.
[1] http://git-annex.branchable.com/bugs/external_remote_export_sent_to_wrong_process