summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/bugs/ssh_connection_caching_broken_on_NTFS.mdwn63
1 files changed, 63 insertions, 0 deletions
diff --git a/doc/bugs/ssh_connection_caching_broken_on_NTFS.mdwn b/doc/bugs/ssh_connection_caching_broken_on_NTFS.mdwn
new file mode 100644
index 000000000..bfb221163
--- /dev/null
+++ b/doc/bugs/ssh_connection_caching_broken_on_NTFS.mdwn
@@ -0,0 +1,63 @@
+TL;DNR ssh connection caching seems to cause git-annex to not work on NTFS volumes. Setting `annex.sshcaching` to `false` seems to solve the problem.
+
+## What version of git-annex are you using? On what operating system? Please provide any additional information below.
+
+* git-annex version: 3.20120629 on Debian Testing.
+* `the-repo` is located on an NTFS volume on a USB HDD.
+* `the-remote` is on the server `example.com`.
+* `example.com` is running gitolite3 v3.2-19-gb9bbb78, git 1.7.2.5, and git-annex 3.20120629~bpo60+2
+
+
+## What steps will reproduce the problem? What is the expected output? What do you see instead?
+
+Create or clone a repo onto an NTFS volume.
+Make sure `git annex` is initialized.
+Run some regular git operations. These always seem to work.
+Try git-annex operations.
+
+Some operations work despite the error messages:
+
+ $ git annex sync
+ Control socket connect(/media/NTFSVOL/the-repo/.git/annex/ssh/git@example.com): Connection refused
+ Failed to connect to new control master
+ Command ssh ["-S","/media/NTFSVOL/the-repo/.git/annex/ssh/git@example.com","-o","ControlMaster=auto","-o","ControlPersist=yes","git@example.com","git-annex-shell 'configlist' '/~/the-repo.git'"] failed; exit code 255
+ Control socket connect(/media/NTFSVOL/the-repo/.git/annex/ssh/git@example.com): Connection refused
+ Failed to connect to new control master
+ Command ssh ["-S","/media/NTFSVOL/the-repo/.git/annex/ssh/git@example.com","-o","ControlMaster=auto","-o","ControlPersist=yes","git@example.com","git-annex-shell 'configlist' '/~/the-repo'"] failed; exit code 255
+ commit
+ # On branch master
+ nothing to commit (working directory clean)
+ ok
+ pull the-remote
+ ok
+ pull origin
+ ok
+
+Other operations fail:
+
+ $ git annex copy -t the-remote the-file.jpg
+ Control socket connect(/media/NTFSVOL/the-repo/.git/annex/ssh/git@example.com): Connection refused
+ Failed to connect to new control master
+ Command ssh ["-S","/media/NTFSVOL/the-repo/.git/annex/ssh/git@example.com","-o","ControlMaster=auto","-o","ControlPersist=yes","git@example.com","git-annex-shell 'configlist' '/~/the-repo.git'"] failed; exit code 255
+ Control socket connect(/media/NTFSVOL/the-repo/.git/annex/ssh/git@example.com): Connection refused
+ Failed to connect to new control master
+ Command ssh ["-S","/media/NTFSVOL/the-repo/.git/annex/ssh/git@example.com","-o","ControlMaster=auto","-o","ControlPersist=yes","git@example.com","git-annex-shell 'configlist' '/~/the-repo'"] failed; exit code 255
+ copy the-file.jpg (checking the-remote...) Control socket connect(/media/NTFSVOL/the-repo/.git/annex/ssh/git@example.com): Connection refused
+ Failed to connect to new control master
+ (unable to check the-remote) failed
+ git-annex: copy: 1 failed
+
+Some googling revealed the errors to be stale socket files.
+- [Three SSH Tips](http://shallowsky.com/blog/tags/ssh/)
+- [Improving SSH (OpenSSH) connection speed with shared connections](http://protempore.net/~calvins/howto/ssh-connection-sharing/#section-03)
+
+It appears that SSH connection caching was implemented in response to this wishlist item:
+[wishlist: Prevent repeated password prompts for one command](http://git-annex.branchable.com/todo/wishlist:_Prevent_repeated_password_prompts_for_one_command/)
+
+However ssh connection caching breaks things on NTFS volumes. If I turn off connection caching, it seems to work fine
+
+ $ git config annex.sshcaching false
+
+but it would be nifty if git-annex could detect the filesystem type and do The Right Thing.
+
+Thanks for all the work on git-annex -- it's an awesome project!