Merge branch 'master' into v7-default

This commit is contained in:
Joey Hess 2019-09-10 16:06:43 -04:00
commit 061231621e
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
43 changed files with 788 additions and 17 deletions

View file

@ -155,7 +155,7 @@ isInitialized = maybe Annex.Branch.hasSibling (const $ return True) =<< getVersi
{- A crippled filesystem is one that does not allow making symlinks,
- or removing write access from files. -}
probeCrippledFileSystem :: Annex Bool
probeCrippledFileSystem = withOtherTmp $ \tmp -> do
probeCrippledFileSystem = withEventuallyCleanedOtherTmp $ \tmp -> do
(r, warnings) <- liftIO $ probeCrippledFileSystem' tmp
mapM_ warning warnings
return r
@ -212,7 +212,7 @@ probeLockSupport = do
#ifdef mingw32_HOST_OS
return True
#else
withOtherTmp $ \tmp -> do
withEventuallyCleanedOtherTmp $ \tmp -> do
let f = tmp </> "lockprobe"
mode <- annexFileMode
liftIO $ do
@ -230,7 +230,7 @@ probeFifoSupport = do
#ifdef mingw32_HOST_OS
return False
#else
withOtherTmp $ \tmp -> do
withEventuallyCleanedOtherTmp $ \tmp -> do
let f = tmp </> "gaprobe"
let f2 = tmp </> "gaprobe2"
liftIO $ do

View file

@ -266,7 +266,8 @@ gitAnnexTmpOtherDir r = addTrailingPathSeparator $ gitAnnexDir r </> "othertmp"
gitAnnexTmpOtherLock :: Git.Repo -> FilePath
gitAnnexTmpOtherLock r = gitAnnexDir r </> "othertmp.lck"
{- Tmp directory used by old versions of git-annex. -}
{- .git/annex/misctmp/ was used by old versions of git-annex and is still
- used during initialization -}
gitAnnexTmpOtherDirOld :: Git.Repo -> FilePath
gitAnnexTmpOtherDirOld r = addTrailingPathSeparator $ gitAnnexDir r </> "misctmp"

View file

@ -7,9 +7,8 @@
module Annex.Tmp where
import Common
import Annex
import Annex.Locations
import Annex.Common
import qualified Annex
import Annex.LockFile
import Annex.Perms
import Types.CleanupActions
@ -24,13 +23,30 @@ import Data.Time.Clock.POSIX
-- any time.
withOtherTmp :: (FilePath -> Annex a) -> Annex a
withOtherTmp a = do
addCleanup OtherTmpCleanup cleanupOtherTmp
Annex.addCleanup OtherTmpCleanup cleanupOtherTmp
tmpdir <- fromRepo gitAnnexTmpOtherDir
tmplck <- fromRepo gitAnnexTmpOtherLock
withSharedLock (const tmplck) $ do
void $ createAnnexDirectory tmpdir
a tmpdir
-- | This uses an alternate temp directory. The action should normally
-- clean up whatever files it writes there, but if it leaves files
-- there (perhaps due to being interrupted), the files will be eventually
-- cleaned up by another git-annex process (after they're a week old).
--
-- Unlike withOtherTmp, this does not rely on locking working.
-- Its main use is in situations where the state of lockfile is not
-- determined yet, eg during initialization.
withEventuallyCleanedOtherTmp :: (FilePath -> Annex a) -> Annex a
withEventuallyCleanedOtherTmp = bracket setup cleanup
where
setup = do
tmpdir <- fromRepo gitAnnexTmpOtherDirOld
void $ createAnnexDirectory tmpdir
return tmpdir
cleanup = liftIO . void . tryIO . removeDirectory
-- | Cleans up any tmp files that were left by a previous
-- git-annex process that got interrupted or failed to clean up after
-- itself for some other reason.
@ -42,8 +58,6 @@ cleanupOtherTmp = do
void $ tryIO $ tryExclusiveLock (const tmplck) $ do
tmpdir <- fromRepo gitAnnexTmpOtherDir
void $ liftIO $ tryIO $ removeDirectoryRecursive tmpdir
-- This is only to clean up cruft left by old versions of
-- git-annex; it can be removed eventually.
oldtmp <- fromRepo gitAnnexTmpOtherDirOld
liftIO $ mapM_ cleanold =<< dirContentsRecursive oldtmp
liftIO $ void $ tryIO $ removeDirectory oldtmp -- when empty

View file

@ -23,11 +23,14 @@ git-annex (7.20190826) UNRELEASED; urgency=medium
* info: When file matching options are specified when getting
info of something other than a directory, they won't have any effect,
so error out to avoid confusion.
* info: Display trust level when getting info on a uuid, same as on a remote.
* When upgrading a direct mode repo to v7 with adjusted unlocked branches,
fix a bug that prevented annex.thin from taking effect for the files
in working tree.
* Avoid making a commit when upgrading from direct mode to v7.
* init: Catch more exceptions when testing locking.
* init: Fix a reversion that broke initialization on systems that
need to use pid locking.
-- Joey Hess <id@joeyh.name> Sat, 24 Aug 2019 12:54:35 -0400

View file

@ -271,7 +271,6 @@ file_stats f k =
remote_fast_stats :: Remote -> [Stat]
remote_fast_stats r = map (\s -> s r)
[ remote_name
, remote_trust
, remote_cost
, remote_type
]
@ -280,6 +279,7 @@ uuid_fast_stats :: UUID -> [Stat]
uuid_fast_stats u = map (\s -> s u)
[ repo_uuid
, repo_description
, repo_trust
]
uuid_slow_stats :: UUID -> [Stat]
@ -347,9 +347,8 @@ repo_description = simpleStat "description" . lift . Remote.prettyUUID
repo_uuid :: UUID -> Stat
repo_uuid = simpleStat "uuid" . pure . fromUUID
remote_trust :: Remote -> Stat
remote_trust r = simpleStat "trust" $ lift $
showTrustLevel <$> lookupTrust (Remote.uuid r)
repo_trust :: UUID -> Stat
repo_trust u = simpleStat "trust" $ lift $ showTrustLevel <$> lookupTrust u
remote_cost :: Remote -> Stat
remote_cost r = simpleStat "cost" $ pure $

View file

@ -0,0 +1,42 @@
I'm running three repositories (laptop, usb connected to laptop, local server) that are connected via ssh access.
Running the webapp on both laptop and server, I'm quite frequently seeing in both webapps:
warning
Pusher crashed: fd:56: hPutStr: illegal operation (handle is closed)
Pushing the "Restart thread" button sometimes dismisses the warning, sometimes it immediatly comes back even when trying several times.
A similar warning sometimes shows up for a Netwatcher thread.
Not sure but when that crash occurs tranfers between the repos seem to get stalled.
Server: git-annex 7.20190129-2~bpo9+1 on debian stretch
Laptop: git-annex 7.20190129-3 on debian testing
Log snippet:
[[!format sh """
[2019-09-07 14:10:30.330041206] Committer: Adding jmg_0578.jpg5895 jmg_0578.jpg
add incoming/5d/jmg_0578.jpg [2019-09-07 14:10:30.358484399] Committer: Committing changes to git
(recording state in git...)
[2019-09-07 14:13:01.986780732] Pusher: Syncing with usbimg, cube_media_srv_img
Pusher crashed: fd:56: hPutStr: illegal operation (handle is closed)
[2019-09-07 14:13:02.009823288] Pusher: warning Pusher crashed: fd:56: hPutStr: illegal operation (handle is closed)
[2019-09-07 14:13:49.112731437] RemoteControl: Syncing with cube_media_srv_img
(merging synced/git-annex into git-annex...)
fd:56: hPutStr: illegal operation (handle is closed)
fd:56: hPutStr: illegal operation (handle is closed)
From ssh://git-annex-cube-flixh_22_.2Fmedia.2Fsrv.2Fimg/media/srv/img
3c9104b770..cea5c2f058 annex/direct/master -> cube_media_srv_img/annex/direct/master
71006e08a7..536584bdfa git-annex -> cube_media_srv_img/git-annex
fd:56: hPutStr: illegal operation (handle is closed)
[2019-09-07 14:15:58.002820518] Committer: Adding jmg_0592...ftool_tmp
[2019-09-07 14:15:59.526375687] Committer: Adding jmg_0592...ftool_tmp jmg_0592.cr2
add incoming/5d/jmg_0592.cr2 [2019-09-07 14:15:59.599057025] Committer: Committing changes to git
(recording state in git...)
[2019-09-07 14:15:59.670107852] Pusher: Syncing with usbimg, cube_media_srv_img
Pusher crashed: fd:56: hPutStr: illegal operation (handle is closed)
[2019-09-07 14:15:59.683904185] Pusher: warning Pusher crashed: fd:56: hPutStr: illegal operation (handle is closed)
[2019-09-07 14:18:09.282924907] Committer: Adding CI1026+1375.JPG5895
"""]]

View file

@ -0,0 +1 @@
I can't addurl a file because there is a special remote which is not available. I can see that git annex is asking it if it wants to claim the url which it doesn't. I don't feel addurl should depend on the remote after CLAIMURL-FAILURE. Or do I miss something?

View file

@ -0,0 +1,8 @@
[[!comment format=mdwn
username="Ilya_Shlyakhter"
avatar="http://cdn.libravatar.org/avatar/1647044369aa7747829c38b9dcc84df0"
subject="comment 1"
date="2019-09-02T15:49:57Z"
content="""
Post the trace (with `git annex --debug --verbose`) and your config files (`git config --list`)? (Redact any sensitive info). Maybe, `annex.security.allowed-ip-addresses` excludes the IP address of the URL, so the built-in web remote never gets a chance to claim the URL? I recall running into something like you describe, and the issue was with some config setting I had.
"""]]

View file

@ -0,0 +1,50 @@
[[!comment format=mdwn
username="Ilya_Shlyakhter"
avatar="http://cdn.libravatar.org/avatar/1647044369aa7747829c38b9dcc84df0"
subject="another trace of concurrent copy failure"
date="2019-09-05T06:09:13Z"
content="""
Some more concurrent copy failures when non-concurrent works:
[[!format sh \"\"\"
(master_env_v156_py36) 23:35 [viral-ngs-benchmarks] $ git annex copy -J16 --to viral-ngs-benchmarks-s3 --not --in=viral-ngs-benchmark\
s-s3 --and --not --in=mygs --and --not --in=dnanexus
copy benchmarks/intermed/analysis-FBGGXX00YJ80114YGQ0yKzFG/benchmark_variants/v1.23.0_spades-3.13.0/files/calls/assemble_denovo/assemb\
le/0/outputs/subsampBam/LASV_NGA_2016_0014.ll2.subsamp.bam (checking viral-ngs-benchmarks-s3...) (to viral-ngs-benchmarks-s3...) ok
copy benchmarks/intermed/analysis-FBGGXX00YJ80114YGQ0yKzFG/benchmark_variants/v1.23.0_spades-3.13.0/files/calls/assemble_denovo/refine\
_2x_and_plot/0/outputs/aligned_bam_idx/LASV_NGA_2016_0014.ll2.all.bai (checking viral-ngs-benchmarks-s3...) (to viral-ngs-benchmarks-s\
3...) ok
copy benchmarks/intermed/analysis-FBGGXX00YJ80114YGQ0yKzFG/benchmark_variants/v1.23.0_spades-3.13.0/files/calls/assemble_denovo/refine\
_2x_and_plot/0/outputs/aligned_only_reads_bam/LASV_NGA_2016_0014.ll2.mapped.bam (checking viral-ngs-benchmarks-s3...) (to viral-ngs-be\
nchmarks-s3...) ok
...
copy benchmarks/intermed/analysis-FBGGXX00YJ80114YGQ0yKzFG/benchmark_variants/v1.23.0_spades-3.13.0/cromwell_submit_output.txt (checki\
ng viral-ngs-benchmarks-s3...) (to viral-ngs-benchmarks-s3...)
S3Error {s3StatusCode = Status {statusCode = 403, statusMessage = \"Forbidden\"}, s3ErrorCode = \"SignatureDoesNotMatch\", s3ErrorMessag\
e = \"The request signature we calculated does not match the signature you provided. Check your key and signing method.\", s3ErrorResour\
ce = Nothing, s3ErrorHostId = Just \"7uk2qBwWawhwYhROH7SzY+i3Y/49OQ9OiIT81eRkoEvZowo56xVkATE9qPU4Zs78x4C7gPsu744=\", s3ErrorAccessKeyId \
= Just \"AKIAXXXXXXXXXXXXXXX\", s3ErrorStringToSign = Just \"PUT\n\nin\nThu, 05 Sep 2019 03:35:47 GMT\nx-amz-storage-class:STANDARD\n/vi\
ral-ngs-benchmarks/MD5E-s628-S16777216-C1--065d8c01e5f7bd3b997c6d24109005c7.txt\", s3ErrorBucket = Nothing, s3ErrorEndpointRaw = Nothin\
g, s3ErrorEndpoint = Nothing}
ok
...
copy benchmarks/intermed/analysis-FBGGXX00YJ80114YGQ0yKzFG/benchmark_variants/v1.23.0_spades/files/calls/assemble_denovo/refine_2x_and\
_plot/0/outputs/aligned_only_reads_bam/LASV_NGA_2016_0014.ll2.mapped.bam (checking viral-ngs-benchmarks-s3...) (to viral-ngs-benchmark\
s-s3...) ok
copy benchmarks/intermed/analysis-FBGGXX00YJ80114YGQ0yKzFG/benchmark_variants/v1.23.0_spades/files/calls/assemble_denovo/assemble/0/st\
dout/stdout (checking viral-ngs-benchmarks-s3...) (to viral-ngs-benchmarks-s3...) ok
double free or corruption (out)
error: git-annex died of signal 6
(master_env_v156_py36) 23:35 [viral-ngs-benchmarks] $ git annex copy --to viral-ngs-benchmarks-s3 --not --in=viral-ngs-benchmarks-s3\
--and --not --in=mygs --and --not --in=dnanexus
...
(recording state in git...)
(master_env_v156_py36) 01:17 [viral-ngs-benchmarks] $ echo $?
0
\"\"\"]]
"""]]

View file

@ -0,0 +1,67 @@
### Please describe the problem.
It is probably not a regression (since happens with now elderly git-annex in debian sid), it could be something either changed on debian sid or on datalad side (originally ran into it while trying to build 0.11.7 package for debian sid) to make test directory name even more "tricky" than before.
Summary: `git annex init` fails even though `git init` (and other commands, not shown here) works just fine:
[[!format sh """
root@smaug:/tmp/datalad_temp_test_create_with_obscure_name18qdmqwg/ "';a&b&cΔЙקم๗あ `| 1# pwd
/tmp/datalad_temp_test_create_with_obscure_name18qdmqwg/ "';a&b&cΔЙקم๗あ `| 1
# git init was ran before already
root@smaug:/tmp/datalad_temp_test_create_with_obscure_name18qdmqwg/ "';a&b&cΔЙקم๗あ `| 1# git init
Reinitialized existing Git repository in /tmp/datalad_temp_test_create_with_obscure_name18qdmqwg/ "';a&b&cΔЙקم๗あ `| 1/.git/
root@smaug:/tmp/datalad_temp_test_create_with_obscure_name18qdmqwg/ "';a&b&cΔЙקم๗あ `| 1# git annex init
init fatal: Unable to create '/tmp/datalad_temp_test_create_with_obscure_name18qdmqwg/ "';a&b&c `| 1/.git/annex/index.lock': No such file or directory
fatal: Unable to create '/tmp/datalad_temp_test_create_with_obscure_name18qdmqwg/ "';a&b&c `| 1/.git/annex/index.lock': No such file or directory
git-annex: failed to read sha from git write-tree
CallStack (from HasCallStack):
error, called at ./Git/Sha.hs:18:15 in main:Git.Sha
failed
git-annex: init: 1 failed
root@smaug:/tmp/datalad_temp_test_create_with_obscure_name18qdmqwg/ "';a&b&cΔЙקم๗あ `| 1# git annex version
git-annex version: 7.20190129
build flags: Assistant Webapp Pairing S3(multipartupload)(storageclasses) WebDAV Inotify DBus DesktopNotify TorrentParser MagicMime Feeds Testsuite
dependency versions: aws-0.20 bloomfilter-2.0.1.0 cryptonite-0.25 DAV-1.3.3 feed-1.0.0.0 ghc-8.4.4 http-client-0.5.13.1 persistent-sqlite-2.8.2 torrent-10000.1.1 uuid-1.3.13 yesod-1.6.0
key/value backends: SHA256E SHA256 SHA512E SHA512 SHA224E SHA224 SHA384E SHA384 SHA3_256E SHA3_256 SHA3_512E SHA3_512 SHA3_224E SHA3_224 SHA3_384E SHA3_384 SKEIN256E SKEIN256 SKEIN512E SKEIN512 BLAKE2B256E BLAKE2B256 BLAKE2B512E BLAKE2B512 BLAKE2B160E BLAKE2B160 BLAKE2B224E BLAKE2B224 BLAKE2B384E BLAKE2B384 BLAKE2S256E BLAKE2S256 BLAKE2S160E BLAKE2S160 BLAKE2S224E BLAKE2S224 BLAKE2SP256E BLAKE2SP256 BLAKE2SP224E BLAKE2SP224 SHA1E SHA1 MD5E MD5 WORM URL
remote types: git gcrypt p2p S3 bup directory rsync web bittorrent webdav adb tahoe glacier ddar hook external
operating system: linux x86_64
supported repository versions: 5 7
upgrade supported from repository versions: 0 1 2 3 4 5 6
"""]]
so above version is the one in Debian proper (apparently quite dated!). I have tried with 7.20190819+git2-g908476a9b-1~ndall+1 and 7.20190819+git60-gcdb679818-1~ndall+1
You can see that `git-annex` got unicode portion of the directory name stripped (reports ``` "';a&b&c `| 1``` instead of ``` "';a&b&cΔЙקم๗あ `| 1```).
My wild guess is that full path (instead of a relative path) is used somewhere, encoded/decoded with losses, and then kaboom comes.
<details>
<summary>locale is just C</summary>
[[!format sh """
root@smaug:/tmp/datalad_temp_test_create_with_obscure_name18qdmqwg/ "';a&b&cΔЙקم๗あ `| 1# locale
LANG=C
LANGUAGE=
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_PAPER="C"
LC_NAME="C"
LC_ADDRESS="C"
LC_TELEPHONE="C"
LC_MEASUREMENT="C"
LC_IDENTIFICATION="C"
LC_ALL=C
"""]]
</details>
[[!meta author=yoh]]

View file

@ -0,0 +1,10 @@
[[!comment format=mdwn
username="yarikoptic"
avatar="http://cdn.libravatar.org/avatar/f11e9c84cb18d26a1748c33b48c924b4"
subject="archaeological expedition summary"
date="2019-09-09T12:53:16Z"
content="""
just notes on the mystery on why didn't trigger before:
- example shown above was triggered by a `test_create_with_obscure_name` which was added only recently in 0.11.7~13^2~2
- (here I was going to provide analysis for other tests, but ran out of time... ;))
"""]]

View file

@ -0,0 +1,46 @@
[[!comment format=mdwn
username="joey"
subject="""comment 2"""
date="2019-09-09T13:04:29Z"
content="""
To reproduce this, set LANG=C. In a unicode locale, it does not have the
problem.
"קم๗あ" is a sufficient amount of unicode to cause the failure (so is "¡").
The ascii punctuation is not involved, eg it works in a directory named
"';a&b&c `| 1
joey@darkstar:/tmp/datalad_temp_test_create_with_obscure_name18qdmqwg/קم๗あ>LANG=C git-annex init
init fatal: Unable to create '/tmp/datalad_temp_test_create_with_obscure_name18qdmqwg//.git/annex/index.lock': No such file or directory
Notice that all the unicode has been stripped out of the directory name
somehow.
This is not happening to git-annex generally; .git/annex/ get created and
populated with several files; it's the call to git update-index to create the
annex index file that is failing.
Dumping the env that git-annex sets when running that command, it includes eg
`("GIT_INDEX_FILE","/tmp/\56514\56481/.git/annex/index")`; the "¡"
has been decomposed into what I think are two unicode surrigates; that's
produced when getting the working directory.
joey@darkstar:/tmp/¡>LANG=C ghci
GHCi, version 8.6.5: http://www.haskell.org/ghc/ :? for help
Loaded GHCi configuration from /home/joey/.etc/.ghci
ghci> import System.Posix.Directory
ghci> getWorkingDirectory
"/tmp/\56514\56481"
This shell command does not exhibit the problem:
printf '100644 8a1218a1024a212bb3db30becd860315f9f3ac52 1\tfrotz' | GIT_INDEX_FILE=`pwd`/.git/annex/index LANG=C git update-index --index-info
So, the problem is probably in the process library's passing
of unicode environment variables to exec. I've verified the problem in ghci,
running createProcess with this:
CreateProcess {cmdspec = RawCommand "git" ["update-index","--index-info"], cwd = Nothing, env = Just [("GIT_INDEX_FILE","/tmp/\56514\56481/.git/annex/index")], std_in = Inherit, std_out = Inherit, std_err = Inherit, close_fds = False, create_group = False, delegate_ctlc = False, detach_console = False, create_new_console = False, new_session = False, child_group = Nothing, child_user = Nothing, use_process_jobs = False}
This bug needs to be forwarded to process.
"""]]

View file

@ -0,0 +1,18 @@
[[!comment format=mdwn
username="joey"
subject="""comment 3"""
date="2019-09-09T18:41:05Z"
content="""
<https://github.com/haskell/process/issues/152> forwarded with a
prospective patch.
----
Normally git-annex tries to use relative paths, and if it used a relative
path to .git/annex/index, it would avoid this problem. Except perhaps
if `GIT_DIR` pointed to a different directory with unicode in its path.
A relative `GIT_INDEX_FILE` would not suffice to close this bug, but would
fix your test suite. But, git has some very strange behavior with a relative
`GIT_INDEX_FILE`, it's not necessarily treated as relative to pwd.
So I'd rather not open that can of worms.
"""]]

View file

@ -0,0 +1,9 @@
### Please describe the problem.
`git-annex-copy --json --json-error-messages` writes errors messages to stdout, but not to stderr. This can be confusing in that the stderr output is empty, even though there were errors. It would be more intuitive to (also) output error messages as json records to stderr.
Also, the error messages that *are* written to stderr are not always in json format, e.g. the `git-annex: thread blocked indefinitely in an STM transaction` messages in [[bugs/git-annex-copy_fails_with___34__thread_blocked_indefinitely_in_an_STM_transaction__34__]]. Adding `--debug --verbose` also causes some non-json output.
### Have you had any luck using git-annex before? (Sometimes we get tired of reading bug reports all day and a lil' positive end note does wonders)
git-annex has been an extremely flexible and versatile tool. So far I've been able to adapt to most usage scenarios I've encountered.

View file

@ -0,0 +1,56 @@
### Please describe the problem.
`git-annex-copy` fails after a short time with the message "thread blocked indefinitely in an STM transaction". Re-running it brings the same problem.
### What steps will reproduce the problem?
See below
### What version of git-annex are you using? On what operating system?
[[!format sh """
(master_env_v156_py36) 14:22 [viral-ngs-benchmarks] $ git annex version
git-annex version: 7.20190819-ge4cecf8
build flags: Assistant Webapp Pairing S3 WebDAV Inotify DBus DesktopNotify TorrentParser MagicMime Feeds Testsuite
dependency versions: aws-0.21.1 bloomfilter-2.0.1.0 cryptonite-0.25 DAV-1.3.3 feed-1.0.1.0 ghc-8.6.5 http-client-0.5.14 persistent-sql\
ite-2.9.3 torrent-10000.1.1 uuid-1.3.13 yesod-1.6.0
key/value backends: SHA256E SHA256 SHA512E SHA512 SHA224E SHA224 SHA384E SHA384 SHA3_256E SHA3_256 SHA3_512E SHA3_512 SHA3_224E SHA3_2\
24 SHA3_384E SHA3_384 SKEIN256E SKEIN256 SKEIN512E SKEIN512 BLAKE2B256E BLAKE2B256 BLAKE2B512E BLAKE2B512 BLAKE2B160E BLAKE2B160 BLAKE\
2B224E BLAKE2B224 BLAKE2B384E BLAKE2B384 BLAKE2BP512E BLAKE2BP512 BLAKE2S256E BLAKE2S256 BLAKE2S160E BLAKE2S160 BLAKE2S224E BLAKE2S224\
BLAKE2SP256E BLAKE2SP256 BLAKE2SP224E BLAKE2SP224 SHA1E SHA1 MD5E MD5 WORM URL
remote types: git gcrypt p2p S3 bup directory rsync web bittorrent webdav adb tahoe glacier ddar git-lfs hook external
operating system: linux x86_64
supported repository versions: 5 7
upgrade supported from repository versions: 0 1 2 3 4 5 6
local repository version: 5
(master_env_v156_py36) 14:24 [viral-ngs-benchmarks] $ uname -a
Linux ip-172-31-81-103.ec2.internal 4.14.138-114.102.amzn2.x86_64 #1 SMP Thu Aug 15 15:29:58 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
(master_env_v156_py36) 14:24 [viral-ngs-benchmarks] $
"""]]
### Please provide any additional information below.
[[!format sh """
# If you can, paste a complete transcript of the problem occurring here.
# If the problem is with the git-annex assistant, paste in .git/annex/daemon.log
(master_env_v156_py36) 14:18 [viral-ngs-benchmarks] $ git annex --debug --verbose copy -J1 --not --in dnanexus --and --not --in mygs \
--to viral-ngs-benchmarks-s3 --json --json-error-messages > tmp/copy.out.txt 2> tmp/copy.err.txt
C-c C-c
(master_env_v156_py36) 14:22 [viral-ngs-benchmarks] $ git annex copy -J1 --not --in dnanexus --and --not --in mygs --to viral-ngs-ben\
chmarks-s3 --json --json-error-messages > tmp/copy.out.txt 2> tmp/copy.err.txt
(master_env_v156_py36) 14:22 [viral-ngs-benchmarks] $ echo $?
1
(master_env_v156_py36) 14:22 [viral-ngs-benchmarks] $ cat tmp/copy.err.txt
git-annex: thread blocked indefinitely in an STM transaction
git-annex: thread blocked indefinitely in an STM transaction
(
# End of transcript or log.
"""]]
### Have you had any luck using git-annex before? (Sometimes we get tired of reading bug reports all day and a lil' positive end note does wonders)

View file

@ -0,0 +1,22 @@
[[!comment format=mdwn
username="joey"
subject="""comment 4"""
date="2019-09-06T16:08:19Z"
content="""
The second transcript seems to show that the first sync never
tries to push to origin. Then the second sync does push to origin. Then the
third sync doesn't push to origin. Since sync always pushes to origin
unless remote.name.annex-push or remote.name.annex-readonly are set,
I remain confused why successive runs would sometimes push and other times
not push.
(It also appears as if stderr output is sometimes appearing before
stdout output that actually comes first. Which makes me not trust this
transcript's paste accuracy either, or maybe something to do with the
terminal is resulting in this unusual output ordering.)
Also, the second sync found one modified file to commit, so something must
have modified that file in between the two sync runs. If a file gets
modified in between two sync runs, they will of course not do the same
thing.
"""]]

View file

@ -0,0 +1,63 @@
[[!comment format=mdwn
username="Ilya_Shlyakhter"
avatar="http://cdn.libravatar.org/avatar/1647044369aa7747829c38b9dcc84df0"
subject="git and submodule configs"
date="2019-09-09T18:47:41Z"
content="""
Here is the git config:
[[!format sh \"\"\"
(master_env_v156_py36) 14:35 [viral-ngs-benchmarks] $ git config -l | grep annex- | grep -v uuid
remote.origin.annex-ignore=true
remote.ilya-work.annex-speculate-present=true
remote.ilya-work.annex-readonly=true
remote.ilya-work.annex-sync=false
remote.dnanexus.annex-externaltype=dnanexus
remote.dnanexus.annex-cost=100.0
remote.dnanexus.annex-availability=GloballyAvailable
remote.dnanexus.annex-security-allow-unverified-downloads=ACKTHPPT
remote.dnanexus.annex-sync=false
remote.dnanexus.annex-ignore=false
remote.viral-ngs-benchmarks-s3.annex-s3=true
remote.my-ldir.annex-externaltype=ldir
remote.my-ldir.annex-cost=200.0
remote.my-ldir.annex-availability=LocallyAvailable
remote.from-ilya-work.annex-externaltype=canget
remote.from-ilya-work.annex-readonly=true
remote.from-ilya-work.annex-sync=false
remote.from-ilya-work.annex-ignore=true
remote.from-ilya-work-01.annex-externaltype=canget
remote.from-ilya-work-01.annex-ignore=true
remote.from-ilya-work-01.annex-cost=200.0
remote.from-ilya-work-01.annex-availability=LocallyAvailable
remote.from-ilya-work-01.annex-readonly=true
remote.from-ilya-work-01.annex-sync=false
remote.from-ilya-work-02.annex-externaltype=canget
remote.from-ilya-work-02.annex-readonly=true
remote.from-ilya-work-02.annex-sync=false
remote.from-ilya-work-02.annex-ignore=true
remote.from-ilya-work-03.annex-externaltype=canget
remote.from-ilya-work-03.annex-cost=200.0
remote.from-ilya-work-03.annex-availability=GloballyAvailable
remote.from-ilya-work-03.annex-speculate-present=true
remote.mygs.annex-externaltype=gs_uri
remote.mygs.annex-cost=400.0
remote.mygs.annex-availability=GloballyAvailable
remote.s3-viral-ngs-benchmarks-web.annex-s3=true
\"\"\"]]
\"stderr output is sometimes appearing before stdout output that actually comes first\" -- probably from running in an Emacs shell terminal. But the `git-annex-sync` commands were entered by hand, not in a script, so earlier commands' output is earlier.
\"the second sync found one modified file to commit, so something must have modified that file in between the two sync runs\" -- could the first sync run have somehow modified it?
If relevant, this git-annex repo has one submodule, configured as
[[!format sh \"\"\"
[submodule \"viral-ngs\"]
path = viral-ngs
url = git@github.com:broadinstitute/viral-ngs.git
branch = is-dx-benchmarks
\"\"\"]]
Maybe, add test cases for `git-annex-sync` on repos with submodules?
"""]]

View file

@ -0,0 +1,41 @@
[[!comment format=mdwn
username="https://tribut.de/"
nickname="Felix"
avatar="http://cdn.libravatar.org/avatar/d7508a030fd9902a76b02f7feff1327e80400a1317ee98e463c68ef4c9c40bb8"
subject="comment 2"
date="2019-09-09T09:01:26Z"
content="""
Just encountered the same error. I can reproduce like this:
$ git init foobar
$ cd foobar/
$ git annex init
$ git annex upgrade
$ touch baz
$ git add baz
$ git commit -m \"baz\"
$ git annex adjust --unlock
$ git submodule add https://github.com/tribut/homeassistant-docker-venv.git qux
$ git add qux
$ git commit -m \"qux\"
$ git annex sync
commit
On branch adjusted/master(unlocked)
nothing to commit, working tree clean
ok
fatal: entry 'qux' object type (blob) doesn't match mode type (commit)
git-annex: user error (git [\"--git-dir=.git\",\"--work-tree=.\",\"--literal-pathspecs\",\"mktree\",\"--batch\",\"-z\"] exited 128)
May it is related to gpg signatures? When I ran the exact same thing on my main machine, where `commit.gpgSign` is `true` I got instead:
$ git annex sync
commit
On branch adjusted/master(unlocked)
nothing to commit, working tree clean
ok
git-annex: bad srcsha
CallStack (from HasCallStack):
error, called at ./Git/DiffTree.hs:113:39 in main:Git.DiffTree
I'm running git-annex 7.20190731-gbb16a2610 using the standalone version.
"""]]

View file

@ -0,0 +1,14 @@
[[!comment format=mdwn
username="flixh"
avatar="http://cdn.libravatar.org/avatar/1f7e89860de517a494f35ebfb385288e"
subject="comment 4"
date="2019-09-07T11:44:47Z"
content="""
You are right, git is at version 2.11.0-3+deb9u4 on this machine.
OOM killer might be, the machine has 2GB RAM. During the upgrade I observed the memory usage increasing steadily but at some point decreasing again.
Unfortunately I've nuked the repo in the meantime, so I cannot try your suggestion of retrying after upgrading git. Also it looks like I need to go from stretch to testing to get a git >= 2.22. Which will probably not happen too soon.
Thanks,
Felix
"""]]

View file

@ -62,3 +62,5 @@ type nfs (rw,relatime,vers=3,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp
```
[[!meta author=yoh]]
> [[fixed|done]] --[[Joey]]

View file

@ -0,0 +1,49 @@
[[!comment format=mdwn
username="yarikoptic"
avatar="http://cdn.libravatar.org/avatar/f11e9c84cb18d26a1748c33b48c924b4"
subject="comment 2"
date="2019-08-31T13:00:57Z"
content="""
I have ran git bisect, didn't double check but it points to
[[!format sh \"\"\"
...
running /home/bids/git-annexes/datalad/tools/bisect-git-annex /home/bids/datalad-datalad-master-git-annex-dev.simg /home/bids/git-annexes/datalad/tools/bisect-git-annex.scripts/bisect-nfs-lock.sh
I: cleaning /home/bids/git-annexes/git-annex
I: building 7.20181211-248-gd5f246370
I: running the script
Initialized empty Git repository in /inbox/BIDS/.git/tmp/repo/.git/
init
git-annex: waitToSetLock: resource exhausted (No locks available)
failed
git-annex: init: 1 failed
d5f2463702a7cd8e56ea000e21bfe5d4ba9cd386 is the first bad commit
commit d5f2463702a7cd8e56ea000e21bfe5d4ba9cd386
Author: Joey Hess <joeyh@joeyh.name>
Date: Thu Jan 17 15:40:44 2019 -0400
misctmp cleanup
* Switch to using .git/annex/othertmp for tmp files other than partial
downloads, and make stale files left in that directory when git-annex
is interrupted be cleaned up promptly by subsequent git-annex processes.
* The .git/annex/misctmp directory is no longer used and git-annex will
delete anything lingering in there after it's 1 week old.
Also, in Annex.Ingest, made the filename it uses in the tmp dir be
prefixed with \"ingest-\" to avoid potentially using a filename used by
some other code.
:040000 040000 3a3f3af1c5222bb96684c79b9bccc20b3ff266a2 24efba74a2b6e4a361e300f32325fafba76b8243 M Annex
:040000 040000 193fa3b2bc663031a0e387e921c720e022daabbc 6a0081f3e1df14a182416e734eedb0a2d8bdd46d M Assistant
:100644 100644 d313f9ee315a095e992b729f0d7001e14f413aee f5c5f511d85ffb52c303d1b718fc62e5179b66f9 M CHANGELOG
:040000 040000 432613892dd51d2ebb804f11c96d1d2c7956dab7 9bcbedc855d35faeeaf9b6d74cc2f48c48d8d764 M Command
:040000 040000 0d4841d00ee7ec5b59037ac2c37ab10482359671 0b12fe02a9028e3a7a083fd3dfdc01bf38a8626e M Remote
:100644 100644 555166e29905dca5984403500528d4594b4b7bb6 8f9c460306db4c9f3abed23d9181a10f20b42b77 M Test.hs
:040000 040000 2eb286c09f87da53c2377cc60b75c2c49fcd049a 33adb5b5e5b8a33b2012345b73f00eb094afd42c M Types
:040000 040000 0406fc6fff2205a48d6a215cf18dba2c682de99e a688ce72ede0bbb71b7e2f1f6a811602ee333a16 M doc
:100644 100644 839b469b5cea11a65f20652963fea316be367c93 ff2db6e39cee114d8bd386873b0dba6f89e4d4d1 M git-annex.cabal
bisect run success
\"\"\"]]
may be that gives ideas? (build env was the same, freshly regenerated buster singularity image available via `singularity pull shub://datalad/datalad:git-annex-dev`
"""]]

View file

@ -0,0 +1,29 @@
[[!comment format=mdwn
username="yarikoptic"
avatar="http://cdn.libravatar.org/avatar/f11e9c84cb18d26a1748c33b48c924b4"
subject="the issue persists in master"
date="2019-09-02T14:17:14Z"
content="""
FWIW, the issue persists with current version in master (which comes after comment from 3 days ago where wider exception catching was told to be implemented):
[[!format sh \"\"\"
[bids@rolando git-annex] > ~/git-annexes/datalad/tools/bisect-git-annex.scripts/bisect-nfs-lock.sh
Initialized empty Git repository in /inbox/BIDS/.git/tmp/repo/.git/
init
git-annex: waitToSetLock: resource exhausted (No locks available)
failed
git-annex: init: 1 failed
[bids@rolando git-annex] > echo $?
1
[bids@rolando git-annex] > git annex version
git-annex version: 7.20190826-gf951a6221
build flags: Assistant Webapp Pairing S3 WebDAV Inotify DBus DesktopNotify TorrentParser MagicMime Feeds Testsuite
dependency versions: aws-0.20 bloomfilter-2.0.1.0 cryptonite-0.25 DAV-1.3.3 feed-1.0.0.0 ghc-8.4.4 http-client-0.5.13.1 persistent-sqlite-2.8.2 torrent-10000.1.1 uuid-1.3.13 yesod-1.6.0
key/value backends: SHA256E SHA256 SHA512E SHA512 SHA224E SHA224 SHA384E SHA384 SHA3_256E SHA3_256 SHA3_512E SHA3_512 SHA3_224E SHA3_224 SHA3_384E SHA3_384 SKEIN256E SKEIN256 SKEIN512E SKEIN512 BLAKE2B256E BLAKE2B256 BLAKE2B512E BLAKE2B512 BLAKE2B160E BLAKE2B160 BLAKE2B224E BLAKE2B224 BLAKE2B384E BLAKE2B384 BLAKE2BP512E BLAKE2BP512 BLAKE2S256E BLAKE2S256 BLAKE2S160E BLAKE2S160 BLAKE2S224E BLAKE2S224 BLAKE2SP256E BLAKE2SP256 BLAKE2SP224E BLAKE2SP224 SHA1E SHA1 MD5E MD5 WORM URL
remote types: git gcrypt p2p S3 bup directory rsync web bittorrent webdav adb tahoe glacier ddar git-lfs hook external
operating system: linux x86_64
supported repository versions: 5 7
upgrade supported from repository versions: 0 1 2 3 4 5 6
\"\"\"]]
"""]]

View file

@ -0,0 +1,12 @@
[[!comment format=mdwn
username="joey"
subject="""comment 4"""
date="2019-09-10T16:28:12Z"
content="""
Thanks for the bisection. It's not the init code that's
trying and failing to set a lock, but the misctmp cleanup code. Which is
ironically now used in setting up the temp directory that init uses to
probe for locking problems. Chicken and egg problem.
Committed a fix.
"""]]

View file

@ -0,0 +1,8 @@
[[!comment format=mdwn
username="Ilya_Shlyakhter"
avatar="http://cdn.libravatar.org/avatar/1647044369aa7747829c38b9dcc84df0"
subject="buffering chunks in memory when uploading to remote"
date="2019-09-04T19:50:42Z"
content="""
\"git-annex has to buffer chunks in memory before they are sent to a remote\" -- would it be hard to remove this restriction? I want to have a non-chunked S3 remote, so that files in it can be accessed through a URL. But if some files are 50GB, then git-annex running on a 16GB machine would fail when talking to this repo?
"""]]

View file

@ -0,0 +1,23 @@
[[!comment format=mdwn
username="joey"
subject="""comment 4"""
date="2019-09-10T18:36:06Z"
content="""
It seems that the file stored in the remote must have either been deleted
by something, or possibly gotten corrupted. But probably deleted I think,
because a corrupted file would have a different error message.
Lot of possible ways a file could get deleted. Perhaps StorageBox is
storing the files as file on the filesystem, and had a disk problem that
caused fsck to move the file to lost+found. Could happen, disks fail.
Another way would be, if you had made a clone of your git-annex repository,
and enabled StorageBox in there, and done a `git annex move --from
StorageBox`. Then the clone would know it had the copy and StorageBox no
longer did, but until that clone's git-annex branch is pushed out to other
repositories, they will think StorageBox still has the copy, and fail like
you showed.
git-annex fsck exists because of these kinds of situations, and gets things
back to a correct state. But it makes sense to investigate what happened.
"""]]

View file

@ -0,0 +1,15 @@
[[!comment format=mdwn
username="joey"
subject="""comment 1"""
date="2019-09-10T18:23:24Z"
content="""
I guess you moved the files using something other than `git mv`. So the
files in `_archive` are not being tracked by git, the same as if you'd
added new files to the repo.
If so, need to `git annex add _archive`
(or `git add _archive` since you're using v7.)
The lack of output from git-annex indicates it's not found any files to
work on.
"""]]

View file

@ -0,0 +1,8 @@
[[!comment format=mdwn
username="SophiaKelly"
avatar="http://cdn.libravatar.org/avatar/6a04ff0f05dce6f672799f84d794f3fa"
subject="Change AOL Password"
date="2019-09-10T09:59:03Z"
content="""
The pre-built git-annex bundle for OS X includes a bunch of git and related tools within the bundle, it seemed like it should be possible -- but actually doing so, for \"server\" usage (eg, git annex sync and git annex copy . initiated from another system) proved more subtle than I expected. Users can Read:- Users can Read: <a href=\"http://www.aolhelp247.com/aol-change-password/\">Change AOL Password</a>
"""]]

View file

@ -0,0 +1,44 @@
Hi,
I am trying to recover files from Hubic that were at some point uploaded with a leading slash in the filename. This made it impossible to get them with the git annex rclone extension because rclone interprets the leading slash as a directory move. So I wrote a script using the swiftclient python lib to download the files anyway. Then I am decrypting them with the ga_decrypt shell script and I am trying to reinject them into my local repo. For some files, the --known flag just works and injects the contents to the symlink that is broken. For some cases, I have to submit the src and dst filename and for some cases even then git-annex will tell me that the content does not match the expected content of the file.
This is the process that I follow:
For the file that is only on hubic I do a git-annex get file. The error message (since hubic integration is not working for that repo) gives me the key that I need to look that file up in hubic (what would be a cleaner way?):
git annex get 2012-06-23\ 15\:17\:23.mp4
get 2012-06-23 15:17:23.mp4 (from hubic...)
mv: cannot stat '/tmp/rclone-annex-tmp.diesZi1ZL/GPGHMACSHA1--b22130c742403960d80c0e9c78314e3d7034ba79': No such file or directory
Unable to access these remotes: hubic
Try making some of these repositories available:
396e481c-5fc9-4933-b6a4-b1398fb7c61b -- [hubic]
failed
git-annex: get: 1 failed
I prepend the leading slash and download that file manually from hubic. I use ga_decrypt and get files that actually are readable (in this case a video).
However, when I do git-annex reinject src dst I get (I removed the colons because I wanted to rule out a bug):
git-annex: 2012-06-23_151723.mp4 does not have expected content of ../Pictures/Marek Handy/2012/2012-06-23_151723.mp4
failed
git-annex: reinject: 1 failed
Ok so apparently, git annex does not like that content for that file. Also if I do git-annex calckey on the downloaded and decrypted file I get a different key than the original key.
git-annex calckey 2012-06-23_151723.mp4
SHA256E-s19520577--116c8b3101916fb1d81bf6816cc1b616a8eb30b5fe7b293053cfdd41fa178b0a.mp4
but ls -l on the file gives me:
ls -larth ../Pictures/Marek\ Handy/2012/2012-06-23\ 15\:17\:23.mp4
lrwxrwxrwx 1 marek marek 201 Aug 6 17:28 '../Pictures/Marek Handy/2012/2012-06-23 15:17:23.mp4' -> ../../../.git/annex/objects/jQ/mk/SHA256E-s19120318--2631ff42deb7419e97dc46e7423937694c40d09b336d9b8e7aa2c5fe94e73cc7 /SHA256E-s19120318--2631ff42deb7419e97dc46e7423937694c40d09b336d9b8e7aa2c5fe94e73cc7
I appreciate any hints to what went wrong or where maybe my thinking is wrong?
Thank you,
Marek

View file

@ -0,0 +1,3 @@
Hi,
Is it possible to use hashdirlower layout with S3 special remote, instead of storing all the files in the root of the bucket?

View file

@ -0,0 +1,8 @@
[[!comment format=mdwn
username="TroisSinges"
avatar="http://cdn.libravatar.org/avatar/f4c62f9ebe09016b8852b04f1dd6612f"
subject="comment 1"
date="2019-09-02T22:19:04Z"
content="""
Hmmm, this is strange, because according to <http://git-annex.branchable.com/special_remotes/S3/#comment-e9d48ba37aa5b01c236ab894057660b7>, files should be \"stored in a hashed directory structure with the names of their key used\". This isn't the case for me, using S3 special remote for Wasabi.
"""]]

View file

@ -0,0 +1,13 @@
[[!comment format=mdwn
username="joey"
subject="""comment 2"""
date="2019-09-05T15:29:57Z"
content="""
That comment was just bad wording or possibly I conflated S3 with how other
remotes that do use hash directories work. I've corrected the comment.
According to Amazon's documentation, S3 does not have a concept of
directories; "foo/bar" and "foo_bar" and "foo\\bar" are all just opaque
strings as far as it's concerned. So I don't see any point in using hash
directories with S3.
"""]]

View file

@ -0,0 +1,8 @@
[[!comment format=mdwn
username="Ilya_Shlyakhter"
avatar="http://cdn.libravatar.org/avatar/1647044369aa7747829c38b9dcc84df0"
subject="directories on S3"
date="2019-09-05T18:40:20Z"
content="""
\"S3 does not have a concept of directories; \"foo/bar\" and \"foo_bar\" and \"foo\bar\" are all just opaque strings as far as it's concerned\" -- just to note: (1) AWS [CLI](https://aws.amazon.com/cli/) commands like `aws s3 ls` and `aws s3 cp` do have the concept of directories; (2) An [S3 tips page](https://www.sumologic.com/insight/10-things-might-not-know-using-s3/) says that \"latency on S3 operations depends on key names since prefix similarities become a bottleneck at more than about 100 requests per second. If you have need for high volumes of operations, it is essential to consider naming schemes with more variability at the beginning of the key names, like alphanumeric or hex hash codes in the first 6 to 8 characters, to avoid internal “hot spots” within S3 infrastructure.\"
"""]]

View file

@ -0,0 +1,10 @@
[[!comment format=mdwn
username="TroisSinges"
avatar="http://cdn.libravatar.org/avatar/f4c62f9ebe09016b8852b04f1dd6612f"
subject="comment 4"
date="2019-09-05T19:12:30Z"
content="""
Thanks Joey for your answer. However, even if directories are indeed totally virtual in S3, file paths are split using \"/\" characters when using S3 web console, for example (it's the same for Wasabi, for example). It's quite convenient!
Moreover, some S3-compatible services do create directories using \"/\" delimiters.
"""]]

View file

@ -0,0 +1,24 @@
[[!comment format=mdwn
username="joey"
subject="""comment 5"""
date="2019-09-06T17:53:00Z"
content="""
The stuff @Ilya found about prefix similaries causing bottlenecks in S3
infra is interesting. git-annex keys have a common prefix, and have
the hash at the end. So it could have a performance impact.
But that info also seems out of date when it talks about 6-8 characters
prefix length. And the rate limit has also been raised significantly, to
3000-5000 ops/sec per prefix. See
<https://stackoverflow.com/questions/52443839/s3-what-exactly-is-a-prefix-and-what-ratelimits-apply>
From that, it seems S3 does actually treat '/' as a prefix delimiter.
(Based on a single not very clear email from Amazon support and not
documented anywhere else..) So a single level of hash "directories"
could increase the rate limit accordingly.
If a git-annex exceeded those rate limits, it would start getting 503
responses from S3, so it wouldn't slow down but would instead fail whatever
operation it was doing. I can't recall anyone complaining of 503's from
S3.
"""]]

View file

@ -0,0 +1 @@
Have others experienced frequent failures of parallel/concurrent git-annex operations, like ones described in [[bugs/concurrent_git-annex-copy_to_s3_special_remote_fails/]] and [[bugs/parallel_copy_fails/]]? I'm trying to understand if there is something specific to my system that makes these failures more likely. Thanks!

View file

@ -0,0 +1,16 @@
[[!comment format=mdwn
username="johnmario.itec19@69a7b742534851b36216e0f951f1a00dbb9067cd"
nickname="johnmario.itec19"
avatar="http://cdn.libravatar.org/avatar/2f07ffce1656bdcd6aa19aaab7517975"
subject="commenting on git-annex-add"
date="2019-09-02T06:21:27Z"
content="""
Yes you can do that. Simplest way is to git add the files you want to directly be in the git repo (e.g. the source code) and git annex add the large files.
You can then check in any changes to the source code files (or anything else you added with git add) to github as normal.
You can manage the storage and versioning of the large files using git annex commands. Git annex supports using AWS S3 and/or glacier for backing up the files. It can also back them up to a server you control over ssh or to an external drive (or any combination of the above). http://git-annex.branchable.com/special_remotes/
With the latest version of git annex, you can also set up automatically filters that decide which types/sizes of files to check in directly to git vs which ones to store as links in the annex. https://git-annex.branchable.com/tips/largefiles/
For more tech related assistance or support <a href=\"https://uaedatarecovery.com/data-recovery-dubai/\">Data Recovery Dubai</a>
"""]]

View file

@ -4,7 +4,7 @@
subject="comment 8"
date="2013-01-20T20:37:09Z"
content="""
If encryption is not used, the files are stored in S3 as-is, and can be accessed directly. They are stored in a hashed directory structure with the names of their key used, rather than the original filename. To get back to the original filename, a copy of the git repo would also be needed.
If encryption is not used, the files are stored in S3 as-is, and can be accessed directly. The S3 bucket contains object named using the git-annex key, rather than the original filename. To get back to the original filename, a copy of the git repo would also be needed.
With encryption, you need the gpg key used in the encryption, or, for shared encryption, a symmetric key which is stored in the git repo.

View file

@ -0,0 +1,12 @@
[[!comment format=mdwn
username="joey"
subject="""comment 4"""
date="2019-09-06T15:57:45Z"
content="""
annex.security.allowed-url-schemes can be configured to allow using file:
urls.
However, adding a temp file as an url does not seem very useful. Seems
that a much more typical bittorrent way to go would be to find or
generate a magnet: url for the torrent.
"""]]

View file

@ -66,3 +66,4 @@ EVAN HENSHAWPLATH,
James Read,
Luke Shumaker,
Marius Konitzer,
Ryan Rix,

View file

@ -0,0 +1,15 @@
[[!comment format=mdwn
username="ginquistador@86f226616ead98d2733e249429918f241f928064"
nickname="ginquistador"
avatar="http://cdn.libravatar.org/avatar/f0ef7d68c0ff5d4948a9b0d282987195"
subject="Disappointed with `git add`"
date="2019-09-03T07:30:28Z"
content="""
I first have to say, I have been following and using git annex for ages (5+ years at least), and is my trusted source for all my data. However, for the first time in all these years, I'm seeing a decision that I do not agree with or understand.
Specifically, using `git add .` to add a file to git annex as the default pattern just seems a fundamentally wrong design to me (at least for my usage pattern). I want to be able to use git normally, and have git-annex only get involved when I explicitly request it to, and not for all files. AFAIK, git-lfs does do it right. I understand [annex.largefiles: configuring mixed content repositories](http://git-annex.branchable.com/tips/largefiles/) can be configured to get the behavior I want. However, the default behavior should add it to vanilla git, and any other desired behavior can be obtained by the user via annex attributes, or extra command line flags to `git annex add`
Knowing Joey, I assume there's a strong rationale as always, and would love to hear it, but I would still like to STRONGLY REQUEST changing the default behavior.
"""]]

View file

@ -0,0 +1,3 @@
S3 lets you [redirect](https://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html) requests for an object to another object, or to a URL. This could be used to export a git branch, in the manner of [[`git-annex-export`|git-annex-export]], but with annexed objects redirecting to a key-value S3 remote in the same bucket.
Related: [[todo/simpler__44___trusted_export_remotes]] ; [[forum/Using_hashdirlower_layout_for_S3_special_remote]].

View file

@ -18,8 +18,9 @@ a new empty directory in its place and start putting files in there.
* Odd behavior has been reported if the repository is deleted while
git-annex is running it it. Including a git-annex seeming to hang or
spin. I have not reproduced that, but I did see git-annex re-create the
directories and get fairly confused. The sooner git-annex gives up in
spin. <https://github.com/datalad/datalad/issues/3613>
The sooner git-annex gives up in
such a situation, the less likely it is do get into an unusual state.
What's needed is an action that creates directories only up to a given

View file

@ -42,6 +42,8 @@ avoids the problems discussed in step 5.
## step 5: automatic v5 to v7 upgrades
`v7-default` branch in git has this.
Since v5 repos and v7 repos not using unlocked files are functionally
almost identical, this is unlikely to break much. Unlocking files will of
course change behavior though.