rclone: Return a permanent error if rclone already exited

rclone can exit early for example when the connection to rclone is
relayed for example via ssh: `-o rclone.program='ssh user@example.org
forced-command'`
This commit is contained in:
Michael Eischer 2022-08-23 22:05:04 +02:00
parent 9cdc8da10f
commit 506d92e87c
1 changed files with 2 additions and 1 deletions

View File

@ -15,6 +15,7 @@ import (
"sync"
"time"
"github.com/cenkalti/backoff/v4"
"github.com/restic/restic/internal/backend"
"github.com/restic/restic/internal/backend/limiter"
"github.com/restic/restic/internal/backend/rest"
@ -174,7 +175,7 @@ func newBackend(cfg Config, lim limiter.Limiter) (*Backend, error) {
debug.Log("new connection requested, %v %v", network, address)
if dialCount > 0 {
// the connection to the child process is already closed
return nil, errors.New("rclone stdio connection already closed")
return nil, backoff.Permanent(errors.New("rclone stdio connection already closed"))
}
dialCount++
return conn, nil