I’ve noticed a repo in which I’m running the assistant wouldn’t push updates to its remote anymore. Inspecting the assistant log revealed that there was a problem with the index used for the git-annex branch. After deleting the index file, the assistant could sync to the remote again. (Could deleting the annex index have introduced any inconsistencies into the git-annex branch?)
### What steps will reproduce the problem?
Uncertain. However, I made a copy of .git/annex/index and can reproduce the error by cloning my original repo, checking out the git-annex branch, copying in the backed-up index file and doing git write-tree, which then yields an invalid object error.
It looks like the respective object isn’t present in the git object store. The error is for b5f693aa67b6d185e6d967e0a45c3c57a4f4b4a8, but no directory .git/objects/b5 exists (even after unpacking packed objects).
I could supply you with the index file; do you need anything else? If I don’t clone from my repo, I obviously get an invalid object for everything; should I supply you with a git-bundle of the git-annex ref?
### What version of git-annex are you using? On what operating system?
git-annex 5.20150508-1
Linux 4.0.5
### Please provide any additional information below.
Below is the daemon.log* concatenated, starting with the earliest one. Grep for “invalid object” or “write tree”.
[[!format sh """
[2015-06-05 16:59:45 CEST] main: starting assistant version 5.20150508-g883d57f
[2015-06-05 16:59:45 CEST] Cronner: You should enable consistency checking to protect your data.
[2015-06-05 16:59:57 CEST] TransferScanner: Syncing with origin
No known network monitor available through dbus; falling back to polling
error: failed to push some refs to 'ssh://redacted.net/srv/git/seb/annex/annex.git'
hint: Updates were rejected because a pushed branch tip is behind its remote
hint: counterpart. Check out this branch and integrate the remote changes
hint: (e.g. 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
[2015-06-05 17:00:00 CEST] Committer: Committing changes to git
To ssh://redacted.net/srv/git/seb/annex/annex.git
33446d6..973fbda git-annex -> synced/git-annex
Everything up-to-date
[2015-06-05 17:00:05 CEST] Pusher: Syncing with origin
Everything up-to-date
Connection to redacted.net closed by remote host.
ssh: connect to host redacted.nessh: connect to host redactedssh: connect to host redacted.n[2015-06-05 17:59:57 CEST] NetWatcherFallback: Syncing with origin
Everything up-to-date
[2015-06-05 18:51:33 CEST] Committer: Committing changes to git
[2015-06-05 18:51:33 CEST] Pusher: Syncing with origin
[2015-06-05 18:51:34 CEST] Committer: Committing changes to git
To ssh://redacted.net/srv/git/seb/annex/annex.git
1f265ec..1cee9eb master -> synced/master
[2015-06-05 18:51:37 CEST] Pusher: Syncing with origin
Everything up-to-date
[2015-06-05 19:00:01 CEST] NetWatcherFallback: Syncing with origin
Everything up-to-date
packet_write_wait: Connection to 37.221.198.119: Broken pipe
[2015-06-05 20:00:03 CEST] NetWatcherFallback: Syncing with origin
Everything up-to-date
[2015-06-05 20:13:01 CEST] main: starting assistant version 5.20150508-g883d57f
[2015-06-05 20:13:01 CEST] Cronner: You should enable consistency checking to protect your data.
[2015-06-05 20:13:12 CEST] TransferScanner: Syncing with origin
No known network monitor available through dbus; falling back to polling
[2015-06-05 20:13:13 CEST] Upgrader: An upgrade of git-annex is available. (version 5.20150528)
Everything up-to-date
[2015-06-05 20:13:14 CEST] Committer: Committing changes to git
[2015-06-05 20:13:14 CEST] Pusher: Syncing with origin
Everything up-to-date
[2015-06-05 21:13:12 CEST] NetWatcherFallback: Syncing with origin
Everything up-to-date
[2015-06-05 22:13:14 CEST] NetWatcherFallback: Syncing with origin
Everything up-to-date
[2015-06-05 22:33:04 CEST] Committer: Committing changes to git
[2015-06-05 22:33:04 CEST] Pusher: Syncing with origin
Everything up-to-date
[2015-06-05 22:33:08 CEST] Committer: Committing changes to git
[2015-06-05 22:33:08 CEST] Pusher: Syncing with origin
Everything up-to-date
[2015-06-05 22:33:11 CEST] Committer: Committing changes to git
[2015-06-05 22:33:11 CEST] Pusher: Syncing with origin
Everything up-to-date
[2015-06-05 22:33:14 CEST] Committer: Committing changes to git
[2015-06-05 22:33:14 CEST] Pusher: Syncing with origin
Everything up-to-date
[2015-06-05 22:33:16 CEST] Committer: Committing changes to git
[2015-06-05 22:33:18 CEST] Pusher: Syncing with origin
Everything up-to-date
[2015-06-05 22:33:20 CEST] Committer: Committing changes to git
[2015-06-05 22:33:21 CEST] Pusher: Syncing with origin
Everything up-to-date
[2015-06-05 22:33:27 CEST] Committer: Committing changes to git
[2015-06-05 22:33:27 CEST] Pusher: Syncing with origin
Everything up-to-date
[2015-06-05 22:33:28 CEST] Committer: Committing changes to git
[2015-06-05 22:33:30 CEST] Pusher: Syncing with origin
Everything up-to-date
[2015-06-05 22:33:37 CEST] Committer: Committing changes to git
[2015-06-05 22:33:37 CEST] Pusher: Syncing with origin
Everything up-to-date
[2015-06-05 22:33:43 CEST] Committer: Committing changes to git
[2015-06-05 22:33:43 CEST] Pusher: Syncing with origin
Everything up-to-date
[2015-06-05 22:34:12 CEST] Committer: Committing changes to git
[2015-06-05 22:34:12 CEST] Pusher: Syncing with origin
[2015-06-05 22:34:13 CEST] Committer: Committing changes to git
To ssh://redacted.net/srv/git/seb/annex/annex.git
1cee9eb..46828df master -> synced/master
[2015-06-05 22:34:15 CEST] Pusher: Syncing with origin
To ssh://redacted.net/srv/git/seb/annex/annex.git
46828df..8e93c98 master -> synced/master
[2015-06-05 22:34:23 CEST] Committer: Committing changes to git
[2015-06-05 22:34:23 CEST] Pusher: Syncing with origin
To ssh://redacted.net/srv/git/seb/annex/annex.git
8e93c98..9bed0e6 master -> synced/master
[2015-06-05 22:34:24 CEST] Committer: Committing changes to git
[2015-06-05 22:34:27 CEST] Pusher: Syncing with origin
Everything up-to-date
[2015-06-05 23:04:49 CEST] Committer: Committing changes to git
[2015-06-05 23:04:49 CEST] Pusher: Syncing with origin
To ssh://redacted.net/srv/git/seb/annex/annex.git
9bed0e6..ec8f2c4 master -> synced/master
[2015-06-05 23:04:50 CEST] Committer: Committing changes to git
[2015-06-05 23:04:52 CEST] Pusher: Syncing with origin
Everything up-to-date
[2015-06-05 23:11:39 CEST] Committer: Committing changes to git
[2015-06-05 23:11:39 CEST] Pusher: Syncing with origin
To ssh://redacted.net/srv/git/seb/annex/annex.git
ec8f2c4..14bc26a master -> synced/master
[2015-06-05 23:11:40 CEST] Committer: Committing changes to git
[2015-06-05 23:11:43 CEST] Pusher: Syncing with origin
Everything up-to-date
[2015-06-05 23:13:16 CEST] NetWatcherFallback: Syncing with origin
Everything up-to-date
[2015-06-05 23:33:28 CEST] Committer: Committing changes to git
[2015-06-05 23:33:28 CEST] Pusher: Syncing with origin
To ssh://redacted.net/srv/git/seb/annex/annex.git
14bc26a..bd150f5 master -> synced/master
[2015-06-05 23:33:29 CEST] Committer: Committing changes to git
[2015-06-05 23:33:32 CEST] Pusher: Syncing with origin
Everything up-to-date
[2015-06-05 23:34:09 CEST] Committer: Committing changes to git
[2015-06-05 23:34:09 CEST] Pusher: Syncing with origin
To ssh://redacted.net/srv/git/seb/annex/annex.git
bd150f5..290c21c master -> synced/master
[2015-06-05 23:34:10 CEST] Committer: Committing changes to git
[2015-06-05 23:34:12 CEST] Pusher: Syncing with origin
Everything up-to-date
[2015-06-05 23:34:15 CEST] Committer: Committing changes to git
[2015-06-05 23:34:15 CEST] Pusher: Syncing with origin
[2015-06-05 23:34:16 CEST] Committer: Committing changes to git
To ssh://redacted.net/srv/git/seb/annex/annex.git
290c21c..a56091f master -> synced/master
[2015-06-05 23:34:19 CEST] Pusher: Syncing with origin
Everything up-to-date
[2015-06-05 23:35:17 CEST] Committer: Committing changes to git
[2015-06-05 23:35:17 CEST] Pusher: Syncing with origin
[2015-06-05 23:35:18 CEST] Committer: Committing changes to git
To ssh://redacted.net/srv/git/seb/annex/annex.git
a56091f..2fb635b master -> synced/master
[2015-06-05 23:35:21 CEST] Pusher: Syncing with origin
Everything up-to-date
(recording state in git...)
(recording state in git...)
(recording state in git...)
(recording state in git...)
(recording state in git...)
(recording state in git...)
(recording state in git...)
(recording state in git...)
(recording state in git...)
(recording state in git...)
(recording state in git...)
(recording state in git...)
(recording state in git...)
(recording state in git...)
(recording state in git...)
(recording state in git...)
(recording state in git...)
(recording state in git...)
(recording state in git...)
(recording state in git...)
lost dbus connection; falling back to polling (ClientError {clientErrorMessage = "Error reading message from socket: UnmarshalError \"Unexpected end of input while parsing message header.\"", clientErrorFatal = True})
dbus failed; falling back to mtab polling (ClientError {clientErrorMessage = "Error reading message from socket: UnmarshalError \"Unexpected end of input while parsing message header.\"", clientErrorFatal = True})
[2015-06-06 07:17:17 CEST] main: starting assistant version 5.20150508-g883d57f
[2015-06-06 07:17:17 CEST] Cronner: You should enable consistency checking to protect your data.
[2015-06-06 07:17:25 CEST] TransferScanner: Syncing with origin
No known network monitor available through dbus; falling back to polling
(started...) /usr/lib/rsync/rrsync: SSH_ORIGINAL_COMMAND='git-annex-shell 'notifychanges' '/srv/git/seb/annex/annex.git' --uuid a2131774-31b2-47d2-9185-b2e344c16134' is not rsync
gpg: assuming signed data in '/tmp/git-annex.tmp.0/info'
gpg: Signature made Thu May 28 19:01:58 2015 CEST using DSA key ID 89C809CB
gpg: /tmp/git-annex-gpg.tmp.0/trustdb.gpg: trustdb created
gpg: Good signature from "git-annex distribution signing key (for Joey Hess) <id@joeyh.name>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
[2015-06-06 07:45:12 CEST] Upgrader: An upgrade of git-annex is available. (version 5.20150528)
[2015-06-06 07:45:12 CEST] Committer: Committing changes to git
[2015-06-06 07:45:12 CEST] Pusher: Syncing with origin
/usr/lib/rsync/rrsync: SSH_ORIGINAL_COMMAND='git-annex-shell 'notifychanges' '/srv/git/seb/annex/annex.git' --uuid a2131774-31b2-47d2-9185-b2e344c16134' is not rsync
Everything up-to-date
Everything up-to-date
/usr/lib/rsync/rrsync: SSH_ORIGINAL_COMMAND='git-annex-shell 'notifychanges' '/srv/git/seb/annex/annex.git' --uuid a2131774-31b2-47d2-9185-b2e344c16134' is not rsync
/usr/lib/rsync/rrsync: SSH_ORIGINAL_COMMAND='git-annex-shell 'notifychanges' '/srv/git/seb/annex/annex.git' --uuid a2131774-31b2-47d2-9185-b2e344c16134' is not rsync
/usr/lib/rsync/rrsync: SSH_ORIGINAL_COMMAND='git-annex-shell 'notifychanges' '/srv/git/seb/annex/annex.git' --uuid a2131774-31b2-47d2-9185-b2e344c16134' is not rsync
/usr/lib/rsync/rrsync: SSH_ORIGINAL_COMMAND='git-annex-shell 'notifychanges' '/srv/git/seb/annex/annex.git' --uuid a2131774-31b2-47d2-9185-b2e344c16134' is not rsync
/usr/lib/rsync/rrsync: SSH_ORIGINAL_COMMAND='git-annex-shell 'notifychanges' '/srv/git/seb/annex/annex.git' --uuid a2131774-31b2-47d2-9185-b2e344c16134' is not rsync
(recording state in git...)
bugs/nouveau-bug/nouveau.log.8 still has writers, not adding
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(226) [sender=3.1.1]
/usr/lib/rsync/rrsync: SSH_ORIGINAL_COMMAND='git-annex-shell 'notifychanges' '/srv/git/seb/annex/annex.git' --uuid a2131774-31b2-47d2-9185-b2e344c16134' is not rsync
/usr/lib/rsync/rrsync: SSH_ORIGINAL_COMMAND='git-annex-shell 'notifychanges' '/srv/git/seb/annex/annex.git' --uuid/usr/lib/rsync/rrsync: SSH_ORIGINAL_COMMAND='git-annex-shell 'notifychanges' '/srv/git/seb/annex/annex.git' --uuid a2131774-31b2-47d2-9185-b2e344c16134' is not rsync
/usr/lib/rsync/rrsync: SSH_ORIGINAL_COMMAND='git-annex-shell 'notifychanges' '/srv/git/seb/annex/annex.git' --uuid a2131774-31b2-47d2-9185-b2e344c16134' is not rsync
[2015-06-06 08:45:10 CEST] NetWatcherFallback: Syncing with origin
error: invalid object 100644 b5f693aa67b6d185e6d967e0a45c3c57a4f4b4a8 for '88c/df4/SHA256E-s4644--eca6d831c0a94895a81296327bc21bdf417234c7ebfa3e93fd21a71523ac9da9.log.6.log'
fatal: git-write-tree: error building trees
NetWatcherFallback crashed: failed to read sha from git write-tree
[2015-06-06 08:45:12 CEST] NetWatcherFallback: warning NetWatcherFallback crashed: failed to read sha from git write-tree
[2015-06-06 15:58:38 CEST] main: starting assistant version 5.20150508-g883d57f
[2015-06-06 15:58:38 CEST] Cronner: You should enable consistency checking to protect your data.
[2015-06-06 15:58:44 CEST] TransferScanner: Syncing with origin
No known network monitor available through dbus; falling back to polling
[2015-06-06 22:43:49 CEST] Committer: Committing changes to git
ok
(recording state in git...)
lost dbus connection; falling back to polling (ClientError {clientErrorMessage = "Error reading message from socket: UnmarshalError \"Unexpected end of input while parsing message header.\"", clientErrorFatal = True})
[2015-06-07 07:41:35 CEST] main: starting assistant version 5.20150508-g883d57f
[2015-06-07 07:41:35 CEST] Cronner: You should enable consistency checking to protect your data.
[2015-06-07 07:41:42 CEST] TransferScanner: Syncing with origin
No known network monitor available through dbus; falling back to polling
Hm, I wondered why there’s the “rrsync” stuff in the logs, because git-annex doesn’t use rrsync, right? I noticed I still had an old SSH key with a forced-command for rrsync in my authorized_keys on the remote. Could this have played into the problem, or would that have been dealt with gracefully?
I was using the assistant on two machines in parallel and both git repositories got broken. Before that I was just using the command line tools and just one assistant. Today the history got inconsistent when firing up the second assistant.
Repos in use:
- client 1 with active assistant
- client 2 with active assistant
- Synology NAS with git-annex installed (armel-based)
I could recover everything pretty fast by cloning again from the nas device. Copying the .git/config and moving over the .git/annex directory.
Note: [[todo/git-annex_in_debian_sid]] is somewhat outdated, which makes the above Debian and Ubuntu release not quite up to date. The [NeuroDebian team](http://neuro.debian.net/) provides a [standalone build package](http://neuro.debian.net/pkgs/git-annex-standalone.html) that is regularly updated and that should work across all releases of Ubuntu and Debian. See [[todo/git-annex-standalone_Debian_package/]] for more information.
All the download links above use https for security. For added security, see
is there a plan to distribute those packages officially somewhere? as mentionned in [[todo/git-annex_in_debian_sid/]], the official debian packages are seriously lagging behind...
nevermind, i found [the neurodebian archive](http://neuro.debian.net/pkgs/git-annex-standalone.html) and i think it's what i was looking for - although it does pull in way more stuff than just git-annex, which is unfortunate.
i have documented this in the [[install]] page, i hope that's alright.