Recent comments posted to this site:

$ GIT_TRACE=1 strace -ff -e execve git update-index --refresh SERIES/bigfile.avi
execve("/usr/bin/git", ["git", "update-index", "--refresh", "SERIES/bigfile.avi"...], 0x7ffea5449570 /* 131 vars */) = 0
22:19:30.019621 git.c:418               trace: built-in: git update-index --refresh 'SERIES/bigfile.avi'
strace: Process 21256 attached
strace: Process 21258 attached
strace: Process 21260 attached
strace: Process 21252 attached
strace: Process 21253 attached
strace: Process 21255 attached
strace: Process 21257 attached
strace: Process 21254 attached
strace: Process 21259 attached
[pid 21255] +++ exited with 0 +++
[pid 21256] +++ exited with 0 +++
[pid 21259] +++ exited with 0 +++
[pid 21260] +++ exited with 0 +++
[pid 21254] +++ exited with 0 +++
[pid 21257] +++ exited with 0 +++
[pid 21252] +++ exited with 0 +++
[pid 21253] +++ exited with 0 +++
[pid 21258] +++ exited with 0 +++
strace: Process 21279 attached
22:19:32.576855 run-command.c:643       trace: run_command: 'git-annex smudge --clean '\''CLIPS/otherfile.txt'\'''
strace: Process 21280 attached
[pid 21280] execve("/bin/sh", ["/bin/sh", "-c", "git-annex smudge --clean 'CLIPS/"..., "git-annex smudge --clean 'CLIPS/"...], 0x7f47b4001f90 /* 133 vars */) = 0
strace: Process 21281 attached
[pid 21281] execve("/usr/bin/git-annex", ["git-annex", "smudge", "--clean", "CLIPS/otherfile.txt"...], 0x5557f2cfdef8 /* 133 vars */) = 0
strace: Process 21282 attached
strace: Process 21283 attached
strace: Process 21284 attached
strace: Process 21285 attached
[pid 21285] execve("/usr/lib/git-core/git", ["git", "config", "--null", "--list"], 0x7ffc19e1be20 /* 133 vars */) = 0
strace: Process 21286 attached
22:19:32.761868 git.c:418               trace: built-in: git config --null --list
[pid 21285] +++ exited with 0 +++
[pid 21281] --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=21285, si_uid=1000, si_status=0, si_utime=0, si_stime=0} ---
strace: Process 21287 attached
[pid 21287] execve("/usr/lib/git-core/git", ["git", "--git-dir=.git", "--work-tree=.", "--literal-pathspecs", "cat-file", "--batch"], 0x7ffc19e1be20 /* 132 vars */) = 0
22:19:32.842280 git.c:418               trace: built-in: git cat-file --batch
strace: Process 21288 attached
[pid 21288] execve("/usr/lib/git-core/git", ["git", "--git-dir=.git", "--work-tree=.", "--literal-pathspecs", "cat-file", "--batch-check=%(objectname) %(ob"...], 0x7ffc19e1be20 /* 132 vars */) = 0
22:19:32.854004 git.c:418               trace: built-in: git cat-file '--batch-check=%(objectname) %(objecttype) %(objectsize)'
strace: Process 21289 attached
[pid 21289] execve("/usr/lib/git-core/git", ["git", "--git-dir=.git", "--work-tree=.", "--literal-pathspecs", "check-attr", "-z", "--stdin", "annex.backend", "annex.numcopies", "annex.largefiles", "--"], 0x7ffc19e1be20 /* 132 vars */) = 0
strace: Process 21290 attached
[pid 21290] execve("/usr/lib/git-core/git", ["git", "--version"], 0x7ffc19e1be20 /* 132 vars */) = 0
22:19:32.934952 git.c:418               trace: built-in: git version
22:19:32.935300 git.c:418               trace: built-in: git check-attr -z --stdin annex.backend annex.numcopies annex.largefiles --
[pid 21290] +++ exited with 0 +++
[pid 21281] --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=21290, si_uid=1000, si_status=0, si_utime=0, si_stime=0} ---
strace: Process 21291 attached
[pid 21287] +++ exited with 0 +++
[pid 21281] --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=21287, si_uid=1000, si_status=0, si_utime=0, si_stime=0} ---
[pid 21288] +++ exited with 0 +++
[pid 21281] --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=21288, si_uid=1000, si_status=0, si_utime=0, si_stime=0} ---
[pid 21289] +++ exited with 0 +++
[pid 21281] --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=21289, si_uid=1000, si_status=0, si_utime=0, si_stime=0} ---
[pid 21283] +++ exited with 0 +++
[pid 21284] +++ exited with 0 +++
[pid 21286] +++ exited with 0 +++
[pid 21291] +++ exited with 0 +++
[pid 21282] +++ exited with 0 +++
[pid 21281] +++ exited with 0 +++
[pid 21280] --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=21281, si_uid=1000, si_status=0, si_utime=2, si_stime=1} ---
[pid 21280] +++ exited with 0 +++
[pid 21251] --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=21280, si_uid=1000, si_status=0, si_utime=0, si_stime=0} ---
[pid 21279] +++ exited with 0 +++
fatal: Out of memory, realloc failed
strace: Process 21292 attached
[pid 21292] +++ exited with 128 +++
+++ exited with 128 +++
Comment by gueux Tue Dec 11 21:23:38 2018

It's strange that git runs the clean filter on CLIPS/otherfile.txt and not on the file it was asked to. But that is probably a red herring. Git gets past that extraneouss file and on to bigfile.avi before it crashes.

The strace has a clone() and doesn't follow what happens in the child process. I'm not clear what that child process is doing, although it seems to involve the bigfile.avi that git is trying to mmap all into memory. It would be good to strace -f and check what gets exec()ed.

Comment by joey Tue Dec 11 20:40:36 2018

Does that sequence match what you were doing? I didn't reproduce the problem when just upgrading the v5 and then getting the unlocked files into it.

I don't exactly remember, unfortunately, but that seems likely. It matches my previous comment, which indicates I upgraded to the backport after filing the bug report anyways.

Seems that the upgrade to v7 process, after scanning for and populating unlocked files, needs to update git's index. I thought it did, but perhaps I forgot or that is not working.

Makes sense! :)

Comment by anarcat Tue Dec 11 17:06:19 2018
Fixed the problem I described.
Comment by joey Tue Dec 11 17:03:38 2018

I reproduced as follows:

  • Have a v7 repository, and unlock a couple of files.
  • Clone to a v5 repository.
  • Get the files into the v5 repository. (git annex get won't work on the unlocked files, but you can get --all or copy from the v7 to the v5 or whatever)
  • Upgrade the v5 repository to v7.

Does that sequence match what you were doing? I didn't reproduce the problem when just upgrading the v5 and then getting the unlocked files into it.

Seems that the upgrade to v7 process, after scanning for and populating unlocked files, needs to update git's index. I thought it did, but perhaps I forgot or that is not working.

Comment by joey Tue Dec 11 16:27:27 2018

Hi Joey,

thanks for helping. Unfortunately, installation with arm64 fails with something that 64bit executables are not supported. using "armel" installation seems ok, ("git-annex is sucessfully installed; installation complete")

but then "git annex webapp" gives git: 'annex' is not a git command

using "arm" (without the "el") gives Error 404 on downloading, so I guess you really meant "armel" (32 bits)

Til

Comment by tritigr Mon Dec 10 21:28:59 2018
this is brilliant. thank you. i gave up and thought its something about my setup or something :)
Comment by xsteadfastx Mon Dec 10 10:41:05 2018

Relatedly, commands that support --branch and file matching options silently fail to match the file matching options. Eg, this does not copy anything:

git annex copy --branch master --to origin --include='*'
Comment by joey Sun Dec 9 16:27:14 2018

I doubt it?

The two way filesnames are used with git-annex commands are

  1. The name of a file already checked in to the git repository, here git-annex needs to stat the file so I doubt a named pipe would work.
  2. A file not yet checked into git which is going to be added. git-annex has to adjust permissions, move the file etc, as well as reading its content so again a named pipe wouldn't work.
Comment by joey Sun Dec 9 15:38:21 2018

The installer is running the command uname -m to find out what kind of processor your Android device has. It doesn't recognize "armv81"

What you can try is to open the git-annex-install script in a text editor, and add a case under uname -m for "armv81". My guess is that this would work:

armv81) arch=arm64 ;;

Or maybe this:

armv81) arch=arm ;;
Comment by joey Sun Dec 9 15:25:24 2018