summaryrefslogtreecommitdiff
path: root/doc/design
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2014-04-12 16:32:59 -0400
committerGravatar Joey Hess <joey@kitenet.net>2014-04-12 16:32:59 -0400
commit0f1ea37a68535b95c56e1e142ecc8db1ac6b43dc (patch)
tree5527c4de0f0a561afe5e358b7b2e8f491d29146d /doc/design
parent102e182eac9b95e31fb71830fe5ce5a502e93d92 (diff)
remotedaemon: When network connection is lost, close all cached ssh connections.
This commit was sponsored by Cedric Staub.
Diffstat (limited to 'doc/design')
-rw-r--r--doc/design/git-remote-daemon.mdwn29
1 files changed, 22 insertions, 7 deletions
diff --git a/doc/design/git-remote-daemon.mdwn b/doc/design/git-remote-daemon.mdwn
index ca3a59fce..a3d07eaa6 100644
--- a/doc/design/git-remote-daemon.mdwn
+++ b/doc/design/git-remote-daemon.mdwn
@@ -95,18 +95,18 @@ the webapp.
* `PAUSE`
- This indicates that the network connection has gone down,
- or the user has requested a pause.
+ The user has requested a pause.
git-remote-daemon should close connections and idle.
- Affects all remotes.
+* `LOSTNET`
-* `RESUME`
+ The network connection has been lost.
+ git-remote-daemon should close connections and idle.
- This indicates that the network connection has come back up, or the user
- has asked it to run again. Start back up network connections.
+* `RESUME`
- Affects all remotes.
+ Undoes PAUSE or DISCONNECTED.
+ Start back up network connections.
* `CHANGED ref ...`
@@ -170,6 +170,21 @@ TODO:
* Remote system might not be available. Find a smart way to detect it,
ideally w/o generating network traffic. One way might be to check
if the ssh connection caching control socket exists, for example.
+* Now that ssh connection caching is enabled for git push/pull in sync,
+ there's the possibility that a stale ssh connection may linger when
+ changing network connections, and so attempts to use it will stall.
+ (This was already a potential issue with transfers, which already
+ used the caching.)
+
+ One option is ssh's ServerAliveCountMax, which will make a dead
+ ssh connection disconnect after approx 45 seconds, per ssh manual.
+ It would need to be enabled by setting ServerAliveInterval=15.
+ And this would add network traffic..
+
+ Another option is to disable all cached connections when the network
+ connection changes. This would handle *most* cases. The case
+ not handled is eg, my dialup ppp box getting a new public IP address,
+ which my laptop won't notice. **done**
## telehash