Commit graph

11739 commits

Author SHA1 Message Date
Joey Hess
eb5b072e2e
comment 2023-01-17 13:08:49 -04:00
yarikoptic
4890c70a1b Added a comment 2023-01-16 21:27:12 +00:00
Joey Hess
fdd0b4bae0
comment 2023-01-16 16:12:16 -04:00
yarikoptic
35435cd955 initial report on difficulty moving frozen file 2023-01-16 19:36:07 +00:00
Joey Hess
9be56daf07
comment 2023-01-16 15:07:46 -04:00
sb-beryllium@6e2c477eac63b823bd315ef8aaf5f93173c1f15b
31f500bab6 Added a comment 2023-01-07 13:05:24 +00:00
Joey Hess
4d90053e17
remove old closed bugs and todo items to speed up wiki updates and reduce size
Remove closed bugs and todos that were last edited or commented before 2022.

Except for ones tagged projects/* since projects like datalad want to keep
around records of old deleted bugs longer.

Command line used:

	for f in $(grep -l '|done\]\]' -- ./*.mdwn); do if ! grep -q "projects/" "$f"; then d="$(echo "$f" | sed 's/.mdwn$//')"; if [ -z "$(git log --since=01-01-2022 --pretty=oneline -- "$f")" -a -z "$(git log --since=01-01-2022 --pretty=oneline -- "$d")" ]; then git rm -- "./$f" ; git rm -rf "./$d"; fi; fi; done
	for f in $(grep -l '\[\[done\]\]' -- ./*.mdwn); do if ! grep -q "projects/" "$f"; then d="$(echo "$f" | sed 's/.mdwn$//')"; if [ -z "$(git log --since=01-01-2022 --pretty=oneline -- "$f")" -a -z "$(git log --since=01-01-2022 --pretty=oneline -- "$d")" ]; then git rm -- "./$f" ; git rm -rf "./$d"; fi; fi; done
2023-01-05 15:09:30 -04:00
Joey Hess
acdd5fbab6
move old closed bugs to datalad's bugs
These were not tagged datalad, but they did pay to get them fixed, and
it impacted them as seen in the bug reports..
2023-01-05 15:06:56 -04:00
Joey Hess
cba7a2477c
Merge branch 'master' of ssh://git-annex.branchable.com 2023-01-05 13:30:24 -04:00
Joey Hess
bcc69f07e8
move old fixed datalad/dandi/repronim bugs to the project pages
This is to cut down on the number of files in bugs/, which makes it slow
to file new bug reports or update active bug reports. These old bugs
were about 1/3rd of the files in there. These projects want lists of
their old bugs to still be accessible, and have the lists on their
project pages, which will still list the old bugs.

Commands used:

for f in $(git grep -l '\[\[!tag projects/dandi\]\]'); do if grep -q 'done\]\]' "$f"; then git mv "$f" ../projects/dandi/bugs-done; g=$(echo "$f" | sed 's/.mdwn//'); if [ -d "$g" ]; then git mv "$g" ../projects/dandi/bugs-done; fi; fi; done
for f in $(git grep -l '\[\[!tag projects/repronim\]\]'); do if grep -q 'done\]\]' "$f"; then git mv "$f" ../projects/repronim/bugs-done; g=$(echo "$f" | sed 's/.mdwn//'); if [ -d "$g" ]; then git mv "$g" ../projects/repronim/bugs-done; fi; fi; done
for f in $(git grep -l '\[\[!tag projects/datalad\]\]'); do if grep -q 'done\]\]' "$f"; then git mv "$f" ../projects/datalad/bugs-done; g=$(echo "$f" | sed 's/.mdwn//'); if [ -d "$g" ]; then git mv "$g" ../projects/datalad/bugs-done; fi; fi; done

That assumes that bugs are not tagged by multiple projects at the same
time. Of the ones I moved, I've checked and none are.

Could do the same with todo/ but there are only 370 files in there, and
less than 84 of them could be moved this way, which does not seem likely
to produce a sizeable speedup.

Sponsored-by: Dartmouth College's Datalad project
2023-01-05 13:16:15 -04:00
beryllium@5bc3c32eb8156390f96e363e4ba38976567425ec
45740d66cd Added a comment 2023-01-05 07:16:31 +00:00
beryllium@5bc3c32eb8156390f96e363e4ba38976567425ec
2f183e7b7c Added a comment 2023-01-05 06:49:00 +00:00
yarikoptic
cfaa57398d adjust project to be repronim 2023-01-04 15:12:58 +00:00
Ilya_Shlyakhter
f0e25cc412 Added a comment: re: Paths behind relative symlinks in repo 2023-01-03 18:28:23 +00:00
nobodyinperson
6964b193f3 2023-01-02 22:48:19 +00:00
nobodyinperson
f5a536fe3b 2023-01-02 22:43:07 +00:00
Joey Hess
1aaf702d66
comment 2023-01-02 15:27:36 -04:00
yarikoptic
e08d333560 reporting on need to create leading dir 2022-12-28 16:23:51 +00:00
Joey Hess
79031223fd
moreinfo 2022-12-26 16:09:37 -04:00
Joey Hess
baec2ef928
moreinfo 2022-12-26 16:09:08 -04:00
Joey Hess
cf892f4256
use insert_ for speed improvement
persistent-2.14.4.1 makes insert_ faster than insert because it skips
getting the key back.

Sponsored-by: Dartmouth College's DANDI project
2022-12-26 15:59:41 -04:00
Joey Hess
aa041596f5
close 2022-12-26 15:05:48 -04:00
Joey Hess
c1821435ac
fix link 2022-12-26 15:03:14 -04:00
Joey Hess
1b08af821b
close 2022-12-26 13:29:13 -04:00
Joey Hess
53a40ca40f
code review 2022-12-26 13:09:40 -04:00
Joey Hess
e0c4c26d65
analysis 2022-12-22 15:34:36 -04:00
Joey Hess
d475f82c62
Added libgcc_s.so.1 to the linux standalone build so pthread_cancel will work
In Makefile, listed additional deps of Build/Standalone. Without that,
it does not get updated for the change to Utility/LinuxMkLibs.hs when
compiling incrementally.

Sponsored-by: Dartmouth College's DANDI project
2022-12-22 15:15:25 -04:00
yarikoptic
6cb85be1e7 initial report on odd crash 2022-12-21 18:34:06 +00:00
edef
654863027f bugs/blake3_hash_support: reroll patch, add comment 2022-12-16 14:52:25 +00:00
edef
94329160f3 bugs/blake3_hash_support: reroll patch with _256 suffix 2022-12-16 13:49:22 +00:00
yarikoptic
0865e79490 initial report on nfs test keeps failing 2022-12-12 21:23:09 +00:00
Joey Hess
fd5f082fbc
comment 2022-12-12 12:29:32 -04:00
Ilya_Shlyakhter
56f824d219 Added a comment: blake3 enhancement 2022-12-11 19:25:27 +00:00
Joey Hess
5aad1e1f82
fix confirmed finally 2022-12-10 22:26:44 -04:00
Joey Hess
e29bc2b7d7
comment 2022-12-09 12:18:37 -04:00
Joey Hess
65f9e7a3c7
fix deadlock in restagePointerFiles
Fix a hang that occasionally occurred during commands such as move.
(A bug introduced in 10.20220927, in
commit 6a3bd283b8)

The restage.log was kept locked while running a complex index refresh
action. In an unusual situation, that action could need to write to the
restage log, which caused a deadlock.

The solution is a two-stage process. First the restage.log is moved to a
work file, which is done with the lock held. Then the content of the work
file is read and processed, which happens without the lock being held.
This is all done in a crash-safe manner.

Note that streamRestageLog may not be fully safe to run concurrently
with itself. That's ok, because restagePointerFiles uses it with the
index lock held, so only one can be run at a time.

streamRestageLog does delete the restage.old file at the end without
locking. If a calcRestageLog is run concurrently, it will either see the
file content before it was deleted, or will see it's missing. Either is
ok, because at most this will cause calcRestageLog to report more
work remains to be done than there is.

Sponsored-by: Dartmouth College's Datalad project
2022-12-08 14:36:11 -04:00
Joey Hess
a7554f1a6a
analysis 2022-12-07 17:36:01 -04:00
Joey Hess
56699a7747
comment 2022-12-07 14:30:33 -04:00
Joey Hess
ac77aa40e7
speed up --pattern
The splitting of the tests into parts for parallelism made --pattern
do extra work, because init tests have to be run for each part, but
many of the parts are empty.

For example, git-annex test --pattern '/move (ssh remote)/'
took 12 seconds to run before. This improves the runtime to 4 seconds.

Sponsored-by: Dartmouth College's Datalad project
2022-12-07 13:51:22 -04:00
Joey Hess
b7ba6dfe48
comment 2022-12-07 13:00:29 -04:00
Joey Hess
8c89057006
comment 2022-12-07 12:36:58 -04:00
dckc@4f72e5f6436280fd19a91a9805af71b9921a4f9b
afa29c63c8 2022-12-07 14:46:39 +00:00
dckc@4f72e5f6436280fd19a91a9805af71b9921a4f9b
4316de0f7c line breaks 2022-12-07 14:45:36 +00:00
dckc@4f72e5f6436280fd19a91a9805af71b9921a4f9b
815db25181 Added a comment: keep me posted by email please 2022-12-07 14:40:52 +00:00
dckc@4f72e5f6436280fd19a91a9805af71b9921a4f9b
3aeb15c18b 2022-12-07 14:39:29 +00:00
yarikoptic
30d8056c26 Added a comment 2022-12-05 18:08:03 +00:00
Joey Hess
45f9c66b63
comment 2022-12-05 13:54:18 -04:00
Joey Hess
6eb0943d95
Merge branch 'master' of ssh://git-annex.branchable.com 2022-12-05 13:48:40 -04:00
Joey Hess
dddf7c7daa
comment 2022-12-05 13:30:05 -04:00
kanak@3c4f6e7d832d88751c617b25bdbac896417eb93b
31fc11771d Added a comment 2022-12-04 17:40:38 +00:00
kanak@3c4f6e7d832d88751c617b25bdbac896417eb93b
342da53d2d 2022-12-04 17:35:45 +00:00
edef
c732dc9c42 bugs/blake3_hash_support: *not* familiar enough, oops 2022-12-02 12:58:58 +00:00
edef
69dd3dcc89 submit BLAKE3 patch 2022-12-02 12:57:48 +00:00
yarikoptic
4f4234797e Added a comment 2022-11-29 22:25:43 +00:00
Joey Hess
184b8e70d3
comment 2022-11-29 17:58:59 -04:00
cnjr2
c900f3c1b5 Added a comment 2022-11-29 16:53:39 +00:00
cnjr2
a92a07b03e Added a comment: found related bug 2022-11-29 16:51:44 +00:00
Joey Hess
c29e2ed916
comment 2022-11-29 12:49:09 -04:00
Joey Hess
e7e7007e0c
explanss and close 2022-11-29 12:46:59 -04:00
cnjr2
3edc86ffe1 2022-11-29 12:29:42 +00:00
Joey Hess
2b5e6ff20a
test: Add --test-debug option
This work is supported by the NIH-funded NICEMAN (ReproNim TR&D3) project.
2022-11-28 15:12:53 -04:00
Joey Hess
022c14ec02
comment 2022-11-28 14:07:35 -04:00
beryllium@5bc3c32eb8156390f96e363e4ba38976567425ec
85ea582e2b 2022-11-24 07:11:26 +00:00
yarikoptic
e140b36fd5 initial report on stalled test 2022-11-23 03:15:51 +00:00
Joey Hess
63b33d4181
update 2022-11-18 16:23:20 -04:00
Joey Hess
3e20daccdd
more benchmarking work 2022-11-18 15:54:06 -04:00
Joey Hess
2b014f1a8b
don't frontload reconcileStaged in git-annex init
init: Avoid scanning for annexed files, which can be lengthy in a
large repository. Instead that scan is done on demand. This lets git-annex
init be run and some query commands be used in a repository without
waiting.

Note that autoinit already behaved this way, so while this will mean some
commands like git-annex get/unlock/add will do the scan the first time run,
that is not really a significant behavior change.

And, it's really better to have a consistent behavior. The reason for
the inconsistency was a strange bug discussed in
b3c4579c79. Avoiding reconcileStaged in
init will keep avoiding whatever that was.

Sponsored-by: Dartmouth College's DANDI project
2022-11-18 13:58:47 -04:00
Joey Hess
c834d2025a
queue more changes to keys db
Increasing the size of the queue 10x makes git-annex init 7% faster in a
repository with 86000 annexed files.

The memory use goes up, from 70876 kb to 85376 kb.
2022-11-18 13:29:34 -04:00
Joey Hess
8fcee4ac9d
Sped up the initial scanning for annexed files by 15%
Avoids database querying overhead when the database is newly created.

In the large repository where git-annex init took 24 seconds, this sped it
up to 20.47 seconds, a speedup of around 15%.

Sponsored-by: Dartmouth College's DANDI project
2022-11-18 13:16:57 -04:00
Joey Hess
814bb3a270
profiling and performance 2022-11-17 16:47:51 -04:00
Joey Hess
a91bf72684
Merge branch 'master' of ssh://git-annex.branchable.com 2022-11-09 16:29:16 -04:00
Joey Hess
b2cc63d5bf
export: fix multi-file delete bug
export: Fix a bug that left a file on a special remote when two files with
the same content were both deleted in the exported tree.

Case of the wrong data structure leading to the wrong result.
The DiffMap now contains all the old filenames, and all the new filenames.

Note that, when 2 files with the same content are both renamed,
it only renames the first, but deletes and re-exports the second.
Improving that is possible, but it would need to use a different temporary
filename. Anyway, that is an unusual case, and there are known to be other
unusual cases where export does not rename with maximum efficiency, IIRC.
(Or maybe this is the case that I remember?)

Sponsored-by: Dartmouth College's OpenNeuro project
2022-11-09 16:24:37 -04:00
nell@7201fe78ade251118ef3441f4e509b37cd836503
ca0c62f289 Added a comment 2022-11-09 19:51:20 +00:00
Joey Hess
56d563577f
analysis 2022-11-09 15:46:14 -04:00
Joey Hess
cdbee87a05
comment and retitle 2022-11-09 15:18:28 -04:00
Joey Hess
94ee608b2e
comment 2022-11-09 15:14:28 -04:00
Joey Hess
5409b0c5c4
close 2022-11-09 14:32:14 -04:00
nell@7201fe78ade251118ef3441f4e509b37cd836503
a219d24c8c Adding S3 special remote export bug report 2022-11-08 22:37:14 +00:00
jkniiv
9414eb0745 report on troubles with aws-0.23 and stack builds 2022-11-08 11:36:21 +00:00
Joey Hess
4f6c6114fb
avoid splitting repo tests into too small parts around -J16
The initTests have to be run once per part, and a point of diminishing
returns can be reached where more work is being done to set up for 1 or
2 tests than to run them.

This is better than a hard cap of -J8 or so, because it lets other
things than these particular tests still be parallelized at -J16.

Sponsored-by: Dartmouth College's Datalad project
2022-11-07 14:44:51 -04:00
Joey Hess
5e6cb47bd8
coment 2022-11-07 14:28:55 -04:00
Joey Hess
38e67e169d
followup 2022-11-07 12:26:04 -04:00
yarikoptic
7698e25f6f initial report on stalling test 2022-11-07 14:31:55 +00:00
xloem
8b5b078df3 2022-11-07 10:33:22 +00:00
yarikoptic
99b40cd6a2 Added a comment 2022-11-04 12:41:47 +00:00
Joey Hess
14f7a386f0
Make git-annex enable-tor work when using the linux standalone build
Clean the standalone environment before running the su command
to run "sh". Otherwise, PATH leaked through, causing it to run
git-annex.linux/bin/sh, but GIT_ANNEX_DIR was not set,
which caused that script to not work:

[2022-10-26 15:07:02.145466106] (Utility.Process) process [938146] call: pkexec ["sh","-c","cd '/home/joey/tmp/git-annex.linux/r' && '/home/joey/tmp/git-annex.linux/git-annex' 'enable-tor' '1000'"]
/home/joey/tmp/git-annex.linux/bin/sh: 4: exec: /exe/sh: not found

Changed programPath to not use GIT_ANNEX_PROGRAMPATH,
but instead run the scripts at the top of GIT_ANNEX_DIR.
That works both when the standalone environment is set up, and when it's
not.

Sponsored-by: Kevin Mueller on Patreon
2022-10-26 15:45:08 -04:00
Joey Hess
a8ce8ac75d
comment 2022-10-26 14:54:38 -04:00
Joey Hess
731e806c96
use lookupKeyStaged in --batch code paths
Make --batch mode handle unstaged annexed files consistently whether the
file is unlocked or not. Before this, a unstaged locked file
would have the symlink on disk examined and operated on in --batch mode,
while an unstaged unlocked file would be skipped.

Note that, when not in batch mode, unstaged files are skipped over too.
That is actually somewhat new behavior; as late as 7.20191114 a
command like `git-annex whereis .` would operate on unstaged locked
files and skip over unstaged unlocked files. That changed during
optimisation of CmdLine.Seek with apparently little fanfare or notice.

Turns out that rmurl still behaved that way when given an unstaged file
on the command line. It was changed to use lookupKeyStaged to
handle its --batch mode. That also affected its non-batch mode, but
since that's just catching up to the change earlier made to most
other commands, I have not mentioed that in the changelog.

It may be that other uses of lookupKey should also change to
lookupKeyStaged. But it may also be that would slow down some things,
or lead to unwanted behavior changes, so I've kept the changes minimal
for now.

An example of a place where the use of lookupKey is better than
lookupKeyStaged is in Command.AddUrl, where it looks to see if the file
already exists, and adds the url to the file when so. It does not matter
there whether the file is staged or not (when it's locked). The use of
lookupKey in Command.Unused likewise seems good (and faster).

Sponsored-by: Nicholas Golder-Manning on Patreon
2022-10-26 14:43:06 -04:00
Joey Hess
1944549a38
comment 2022-10-26 12:58:10 -04:00
jwodder
0d853cef01 2022-10-25 16:18:09 +00:00
gyurmo.gyuri@8d622eb91a0312fcb7e63e4f47a6e191c417a0c8
5e52325147 2022-10-23 08:30:57 +00:00
Joey Hess
cde2e61105
improve sqlite retrying behavior
Avoid hanging when a suspended git-annex process is keeping a sqlite
database locked.

Sponsored-by: Dartmouth College's Datalad project
2022-10-18 15:47:20 -04:00
Joey Hess
3149a1e2fe
More robust handling of ErrorBusy when writing to sqlite databases
While ErrorBusy and other exceptions were caught and the write retried for
up to 10 seconds, it was still possible for git-annex to eventually
give up and error out without writing to the database. Now it will retry
as long as necessary.

This does mean that, if one git-annex process is suspended just as sqlite
has locked the database for writing, another git-annex that tries to write
it it might get stuck retrying forever. But, that could already happen when
opening the sqlite database, which retries forever on ErrorBusy. This is an
area where git-annex is known to not behave well, there's a todo about the
general case of it.

Sponsored-by: Dartmouth College's Datalad project
2022-10-17 15:56:19 -04:00
Joey Hess
22f9598dfb
Merge branch 'master' of ssh://git-annex.branchable.com 2022-10-12 15:54:12 -04:00
Joey Hess
d5cd1de280
update and open a todo about something I'm pondering 2022-10-12 15:53:56 -04:00
benjamin.poldrack@d09ccff6d42dd20277610b59867cf7462927b8e3
5bd79e717f Added a comment 2022-10-12 06:12:17 +00:00
Joey Hess
b312b2a30b
update 2022-10-11 15:07:52 -04:00
Joey Hess
c2ad84b423
all keys are still present on versioned remote after import of a tree
When importing from versioned remotes, fix tracking of the content of
deleted files.

Only S3 supports versioning so far, so only it was affected.

But, the draft import/export interface for external remotes also seemed to
need a change, so that versionedExport could be set.
2022-10-11 13:05:40 -04:00
benjamin.poldrack@d09ccff6d42dd20277610b59867cf7462927b8e3
e22c3b3d7c 2022-10-11 09:12:00 +00:00
Joey Hess
4a42c69092
take lock in checkLogFile and calcLogFile
move: Fix openFile crash with -J

This does make them a bit slower, although usually the log file is not
very big, so even when it's being rewritten, they will not block for
long taking the lock. Still, little slowdowns may add up when moving a lot
file files.

A less expensive fix would be to use something lower level than openFile
that does not check if the file is already open for write by another
thread. But GHC does not seem to provide anything convenient; even mkFD
checks for a writing thread.

fullLines is no longer necessary since these functions no longer will
read the file while it's being written.

Sponsored-by: Dartmouth College's DANDI project
2022-10-07 13:19:17 -04:00