Commit graph

11110 commits

Author SHA1 Message Date
amerlyq
46abc97d32 Added a comment 2022-01-08 14:32:12 +00:00
amerlyq
af64183932 Added a comment 2022-01-08 14:15:55 +00:00
Joey Hess
e95747a149
fix handling of corrupted data received from git remote
Recover from corrupted content being received from a git remote due eg to a
wire error, by deleting the temporary file when it fails to verify. This
prevents a retry from failing again.

Reversion introduced in version 8.20210903, when incremental verification
was added.

Only the git remote seems to be affected, although it is certianly
possible that other remotes could later have the same issue. This only
affects things passed to getViaTmp that return (False, UnVerified) due to
verification failing. As far as getViaTmp can tell, that could just as well
mean that the transfer failed in a way that would resume, so it cannot
delete the temp file itself. Remote.Git and P2P.Annex use getViaTmp internally,
while other remotes do not, which is why only it seems affected.

A better fix perhaps would be to improve the types of the callback
passed to getViaTmp, so that some other value could be used to indicate
the state where the transfer succeeded but verification failed.

Sponsored-by: Boyd Stephen Smith Jr.
2022-01-07 13:25:33 -04:00
Joey Hess
21c0d5be6e
comment 2022-01-07 12:27:19 -04:00
Joey Hess
022e63cdde
comment 2022-01-07 12:08:19 -04:00
amerlyq
39daac8e99 Added a comment 2022-01-07 12:52:35 +00:00
Joey Hess
0f1490c953
comment 2022-01-06 12:25:00 -04:00
Joey Hess
218a3c0f09
improve description
Sponsored-by: Jack Hill on Patreon
2022-01-06 12:24:27 -04:00
Joey Hess
0c604e29a4
Merge branch 'master' of ssh://git-annex.branchable.com 2022-01-05 13:10:03 -04:00
Joey Hess
ff33189548
comment 2022-01-05 12:58:19 -04:00
Joey Hess
46d793c8df
comment 2022-01-05 12:18:18 -04:00
amerlyq
aa6534caa7 Added a comment 2022-01-05 15:46:07 +00:00
Joey Hess
9f38c72f8b
comment 2022-01-04 11:38:01 -04:00
Joey Hess
d2344278fc
close 2022-01-04 11:32:29 -04:00
Joey Hess
e1e8afc477
comment 2022-01-04 11:28:33 -04:00
Joey Hess
2d4fb490bd
comment 2022-01-04 11:23:25 -04:00
amerlyq+annex@12121d70a602f094228689a0a24d348d478a8af1
982ad19002 Added a comment 2022-01-04 13:41:03 +00:00
amerlyq+annex@12121d70a602f094228689a0a24d348d478a8af1
5a9eed6a41 Added a comment 2022-01-04 13:10:13 +00:00
amerlyq+annex@12121d70a602f094228689a0a24d348d478a8af1
9c487d7a36 Added a comment 2022-01-04 12:55:14 +00:00
tim@5431dd39464df207b7d46d3cf1bc74c82123ac68
dc67e1cb60 Added a comment: well, yes 2022-01-04 11:28:33 +00:00
falsifian
b0b596ee62 Added a comment 2022-01-03 19:06:11 +00:00
Joey Hess
7e2f5edd68
avoid exporting non-annexed symlinks
So that importing does not replace them with plain files.

This works similarly to how the previous handling of submodules and
matchers did, except that annexed symlinks still get exported as plain
files of course, it's only non-annexed symlinks that it does not make sense
to export.

When symlinks have previously been exported, updating the export will
unexport them after upgrading to this commit.

Sponsored-by: Kevin Mueller on Patreon
2022-01-03 14:21:50 -04:00
Joey Hess
0584e096d1
comment 2022-01-03 13:53:34 -04:00
Joey Hess
9e18cd28ad
comment and retitle 2022-01-03 13:48:19 -04:00
Joey Hess
953d2029df
comment and retitle 2022-01-03 13:31:09 -04:00
Joey Hess
63b986d6d5
comment 2022-01-03 13:26:33 -04:00
Joey Hess
07191d7ba0
Merge branch 'master' of ssh://git-annex.branchable.com 2022-01-03 12:58:23 -04:00
Joey Hess
c07ed77e21
comment 2022-01-03 12:58:12 -04:00
tim@5431dd39464df207b7d46d3cf1bc74c82123ac68
4c9bc9e942 Added a comment: Found the issue 2022-01-03 08:25:05 +00:00
amerlyq+annex@12121d70a602f094228689a0a24d348d478a8af1
e77ef584cc 2022-01-01 20:59:29 +00:00
amerlyq+annex@12121d70a602f094228689a0a24d348d478a8af1
9c4712262b 2022-01-01 20:39:32 +00:00
amerlyq+annex@12121d70a602f094228689a0a24d348d478a8af1
71f8cc684e 2022-01-01 20:06:22 +00:00
Joey Hess
f1e55865a2
comment 2021-12-31 15:01:12 -04:00
falsifian
eacc3dc1f2 Added a comment 2021-12-31 16:03:33 +00:00
Joey Hess
0292c5a0d8
comment 2021-12-31 11:57:52 -04:00
Joey Hess
b60a041e9e
comment 2021-12-31 11:17:26 -04:00
falsifian
e7c78d2910 2021-12-30 19:01:54 +00:00
Joey Hess
ff4486b91c
comments 2021-12-30 12:45:00 -04:00
jkniiv
465bf26000 Added a comment: very much appreciated 2021-12-29 17:20:30 +00:00
yarikoptic
34e2e37ffd Added a comment: thank you! 2021-12-29 02:00:48 +00:00
Joey Hess
5abd4cf275
close 2021-12-28 13:40:35 -04:00
Joey Hess
b1d719f9d2
handle transitions with read-only unmerged git-annex branches
Capstone to this feature. Any transitions that have been performed on an
unmerged remote ref but not on the local git-annex branch, or vice-versa
have to be applied on the fly when reading files.

Sponsored-by: Dartmouth College's Datalad project
2021-12-28 13:23:32 -04:00
Joey Hess
4257c23370
update on status 2021-12-27 15:45:22 -04:00
Joey Hess
0c208e2cdb
comment 2021-12-27 13:44:49 -04:00
Joey Hess
ba3d89935b
status 2021-12-27 13:21:09 -04:00
Joey Hess
da6aa6e944
retitle 2021-12-26 12:33:34 -04:00
Joey Hess
575cd71ce4
comment 2021-12-26 12:31:17 -04:00
tim@5431dd39464df207b7d46d3cf1bc74c82123ac68
139683a56d 2021-12-19 16:30:18 +00:00
manishofyore@b68d21cd485417e84ea87876a9064f82714a08a1
5098f970e2 Added a comment 2021-12-16 19:35:03 +00:00
Joey Hess
f566658b31
comment 2021-12-16 15:24:59 -04:00
manishofyore@b68d21cd485417e84ea87876a9064f82714a08a1
3ab86307bb Added a comment 2021-12-16 18:53:15 +00:00
Joey Hess
1d4e1c2f6d
comment 2021-12-16 10:54:49 -04:00
Joey Hess
8b3238cf42
Merge branch 'master' of ssh://git-annex.branchable.com 2021-12-14 13:27:11 -04:00
manishofyore@b68d21cd485417e84ea87876a9064f82714a08a1
0ba973463f Added a comment 2021-12-13 23:12:53 +00:00
Joey Hess
fe31951e5e
close 2021-12-13 13:13:54 -04:00
Joey Hess
50cfc4e71f
comment 2021-12-13 12:46:47 -04:00
tomdhunt
bed2c784ae 2021-12-10 19:26:28 +00:00
tomdhunt
d64feaae26 2021-12-10 19:07:46 +00:00
yarikoptic
74f8ba7813 Added a comment 2021-12-09 21:45:29 +00:00
Joey Hess
b1ad888a9f
moreinfo, sigh 2021-12-09 15:43:14 -04:00
yarikoptic
3899ff3cf1 Added a comment 2021-12-09 19:10:57 +00:00
Joey Hess
262400fe04
comment 2021-12-09 15:07:34 -04:00
Joey Hess
3d7b5f442a
comment 2021-12-09 14:59:36 -04:00
Joey Hess
b69f354a87
comment 2021-12-09 14:43:10 -04:00
Joey Hess
dbba231e06
Improve error message display when autoinit fails
Due to eg, a permissions problem.
2021-12-09 14:38:12 -04:00
Joey Hess
61b48b69ba
fix build on windows 2021-12-09 13:39:16 -04:00
yarikoptic
68e8ed5acb add more lines for more informative extract 2021-12-09 16:32:03 +00:00
yarikoptic
918b28b6dc Initial report details from Manish on Windows 2021-12-09 16:30:44 +00:00
jwodder
4b0af2f27b 2021-12-09 14:13:54 +00:00
Joey Hess
4a1758fccf
Merge branch 'master' of ssh://git-annex.branchable.com 2021-12-08 15:38:23 -04:00
Joey Hess
b865ae6b38
comment 2021-12-08 15:20:36 -04:00
Joey Hess
4b19626a36
Fix build with ghc 9.0.1
Continuing along the same lines as commit
2739adc258, it seems that
while Remote -> Retriever expands to the same data type this changes
it to, ghc 9.0.1 refuses to consider them equiviant. I guess it has
something to do with the forall?

The rest of the build all succeeds, although the stack build then crashes:
Linking .stack-work/dist/x86_64-linux-tinfo6/Cabal-3.4.0.0/build/git-annex/git-annex ...
Completed 233 action(s).
Prelude.chr: bad argument: 2214592520
This issue seems likely to be about it:
https://github.com/commercialhaskell/stack/pull/5508
I'm building with stack from debian, version 2.3.3, so a newer stack
probably avoids that. Anyway, despite that stack problem,
the git-annex binary is built, and works.

The stack.yaml I used for this build was patched as follows:

diff --git a/stack.yaml b/stack.yaml
index 8dac87c15..62c4b5b9d 100644
--- a/stack.yaml
+++ b/stack.yaml
@@ -1,6 +1,6 @@
 flags:
   git-annex:
-    production: true
+    production: false
     assistant: true
     pairing: true
     torrentparser: true
@@ -14,7 +14,7 @@ flags:
     httpclientrestricted: true
 packages:
 - '.'
-resolver: lts-18.13
+resolver: nightly-2021-09-07
 extra-deps:
 - IfElse-0.85
 - aws-0.22

Sponsored-by: Graham Spencer on Patreon
2021-12-08 15:08:02 -04:00
yarikoptic
d56267f0cc Added a comment 2021-12-08 18:56:51 +00:00
yarikoptic
c5a415191d initial report on crash on readonly non-inited annex 2021-12-08 18:56:14 +00:00
Joey Hess
0139b4fa82
comment 2021-12-08 13:42:36 -04:00
Joey Hess
756768a6a4
fixed 2021-12-06 15:44:14 -04:00
Joey Hess
d4665731d9
remove last trailing unresolved bit
I think the lock file probing stuff is ok as it is for pid locks.
If not, let's wait until we have a test case, it would be easy to subtly
break it.
2021-12-06 15:34:56 -04:00
Joey Hess
a91c4d945e
comment 2021-12-06 15:13:54 -04:00
Joey Hess
ae4c56b28a
Revert "fix too early close of shared lock file"
This reverts commit 66b2536ea0.

I misunderstood commit ac56a5c2a0
and caused a FD leak when pid locking is not used.

A LockHandle contains an action that will close the underlying lock
file, and that action is run when it is closed. In the case of a shared
lock, the lock file is opened once for each LockHandle, and only
the one for the LockHandle that is being closed will be closed.
2021-12-06 12:51:28 -04:00
Joey Hess
490689f122
Merge branch 'master' of ssh://git-annex.branchable.com 2021-12-03 18:42:05 -04:00
Joey Hess
9d3dce94f0
comment 2021-12-03 18:41:34 -04:00
yarikoptic
8a3b6f46c8 Added a comment 2021-12-03 21:41:53 +00:00
Joey Hess
a5fcc03595
comment 2021-12-03 16:40:58 -04:00
Joey Hess
6988c2e740
fix build on windows
broken by ed0afbc36b

Sponsored-by: Dartmouth College's Datalad project
2021-12-03 14:08:12 -04:00
yarikoptic
3205686faf Added a comment 2021-12-02 20:42:37 +00:00
yarikoptic
d88a52886d removed 2021-12-02 20:41:37 +00:00
yarikoptic
33c36ef5cb initial follow up on the read-only mode issue 2021-12-02 20:39:39 +00:00
yarikoptic
937b9de516 Added a comment: automate + extend 2021-12-02 20:34:55 +00:00
yarikoptic
9c0f3d1de8 Added a comment 2021-12-02 13:05:55 +00:00
Joey Hess
ed0afbc36b
avoid concurrent threads trying to take pid lock at same time
Seem there are several races that happen when 2 threads run PidLock.tryLock
at the same time. One involves checkSaneLock of the side lock file, which may
be deleted by another process that is dropping the lock, causing checkSaneLock
to fail. And even with the deletion disabled, it can still fail, Probably due
to linkToLock failing when a second thread overwrites the lock file.

The same can happen when 2 processes do, but then one process just fails
to take the lock, which is fine. But with 2 threads, some actions where failing
even though the process as a whole had the pid lock held.

Utility.LockPool.PidLock already maintains a STM lock, and since it uses
LockShared, 2 threads can hold the pidlock at the same time, and when
the first thread drops the lock, it will remain held by the second
thread, and so the pid lock file should not get deleted until the last
thread to hold it drops the lock. Which is the right behavior, and why a
LockShared STM lock is used in the first place.

The problem is that each time it takes the STM lock, it then also calls
PidLock.tryLock. So that was getting called repeatedly and concurrently.

Fixed by noticing when the shared lock is already held, and stop calling
PidLock.tryLock again, just use the pid lock that already exists then.

Also, LockFile.PidLock.tryLock was deleting the pid lock when it failed
to take the lock, which was entirely wrong. It should only drop the side
lock.

Sponsored-by: Dartmouth College's Datalad project
2021-12-01 17:14:39 -04:00
Joey Hess
f50de2455f
retitle 2021-12-01 14:35:31 -04:00
Joey Hess
54a4ca9e3c
comment 2021-12-01 14:10:39 -04:00
Joey Hess
d4e99d902b
analysis 2021-12-01 13:38:47 -04:00
Joey Hess
e11ca04e28
comment 2021-12-01 12:46:07 -04:00
yarikoptic
7ca799efed initial report on needing more thorough retries when downloading from S3 2021-12-01 15:41:13 +00:00
account@dc612ad075297e574ebc3eb9a5b8ab6e753510dc
30c55f8940 Added a comment: Further fix attempts 2021-12-01 03:25:35 +00:00
Joey Hess
a6699be79d
catch error statting pid lock file if it somehow does not exist
It ought to exist, since linkToLock has just created it. However,
Lustre seems to have a rather probabilisitic view of the contents of a
directory, so catching the error if it somehow does not exist and
running the same code path that would be ran if linkToLock failed
might avoid this fun Lustre failure.

Sponsored-by: Dartmouth College's Datalad project
2021-11-29 14:53:07 -04:00
Joey Hess
567f63ba47
export: Avoid unncessarily re-exporting non-annexed files that were already exported
Commit b6e4ed9aa7 made non-annexed files
be re-uploaded every time, since they're not tracked in the location log,
and it made it check the location log. Don't do that for non-annexed files.

Sponsored-by: Brock Spratlen on Patreon
2021-11-29 14:02:38 -04:00
Joey Hess
28cca9b9ff
comment 2021-11-29 13:32:12 -04:00
Joey Hess
357760cacf
comment 2021-11-29 13:16:52 -04:00