restic/internal
Jakob Unterwurzacher dd3b9910ee sftp: persist "ssh command exited" error
If our ssh process has died, not only the next, but all subsequent
calls to clientError() should indicate the error.

restic output when the ssh process is killed with "kill -9":

  Save(<data/afb68adbf9>) returned error, retrying after 253.661803ms: Write: failed to send packet header: write |1: file already closed
  Save(<data/afb68adbf9>) returned error, retrying after 580.752212ms: ssh command exited: signal: killed
  Save(<data/afb68adbf9>) returned error, retrying after 790.150468ms: ssh command exited: signal: killed
  Save(<data/afb68adbf9>) returned error, retrying after 1.769595051s: ssh command exited: signal: killed
  [...]
  error in cleanup handler: ssh command exited: signal: killed

Before this patch:

  Save(<data/de698d934f>) returned error, retrying after 252.84163ms: Write: failed to send packet header: write |1: file already closed
  Save(<data/de698d934f>) returned error, retrying after 660.236963ms: OpenFile: failed to send packet header: write |1: file already closed
  Save(<data/de698d934f>) returned error, retrying after 568.049909ms: OpenFile: failed to send packet header: write |1: file already closed
  Save(<data/de698d934f>) returned error, retrying after 2.428813824s: OpenFile: failed to send packet header: write |1: file already closed
  [...]
  error in cleanup handler: failed to send packet header: write |1: file already closed
2018-05-30 19:28:14 +02:00
..
archiver archiver: Don't open files with O_NONBLOCK 2018-05-20 16:11:51 +02:00
backend sftp: persist "ssh command exited" error 2018-05-30 19:28:14 +02:00
cache Ran gofmt on backend.go 2018-05-11 11:07:16 -04:00
checker Use new archiver code in tests 2018-04-25 14:42:45 +02:00
crypto crypto: Rework Seal/Open to use sliceForAppend 2017-11-01 10:30:40 +01:00
debug debug: Auto-shorten IDs passed as parameters 2018-01-25 20:49:26 +01:00
errors errors: Make Cause() unwrap *url.Error 2018-01-23 23:14:05 +01:00
filter filter: document recursive wildcards 2017-09-04 14:38:48 -07:00
fs fs: Add TestTempFile 2018-05-01 14:38:41 +02:00
fuse Add support for illumos/Solaris 2018-03-04 20:11:29 +00:00
hashing Moves files 2017-07-23 14:19:13 +02:00
index Merge pull request #1582 from restic/optimize-debug-log 2018-01-26 21:57:18 +01:00
limiter rclone: Respect bandwith limits 2018-05-22 20:48:17 +02:00
list Optimize Repository.ListPack() 2018-01-23 22:39:51 -05:00
migrations Fix calls to repo/backend.List() everywhere 2018-01-21 21:15:09 +01:00
mock check: Allow filling the cache during check 2018-04-01 13:59:27 +02:00
options errors: Add "Fatal" prefix for Fatalf() 2018-01-06 23:27:47 +01:00
pack backend: Improve Save() 2018-03-03 15:49:44 +01:00
repository repository: Improve buffer pooling 2018-04-22 11:37:05 +02:00
restic Restructure TestApplyPolicy 2018-05-13 12:48:42 +02:00
test Add test.Helper, also works with Go 1.8 2018-04-22 11:37:05 +02:00
textfile Add textfile 2018-05-01 14:38:59 +02:00
ui termstatus: Fix panic for non-terminal runs 2018-05-27 12:52:01 +02:00
worker Run goimports 2017-07-23 14:21:03 +02:00