From d08ed7d1e93e2b40d2de03ee73081a61b26031bd Mon Sep 17 00:00:00 2001 From: Nick Craig-Wood Date: Thu, 11 Aug 2022 16:45:21 +0100 Subject: [PATCH] ftp: add notes on how to avoid deadlocks with concurrency - fixes #6370 --- backend/ftp/ftp.go | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/backend/ftp/ftp.go b/backend/ftp/ftp.go index 24916d161..c5c885e00 100644 --- a/backend/ftp/ftp.go +++ b/backend/ftp/ftp.go @@ -81,8 +81,22 @@ security from the server in order to upgrade a plain text connection to an encrypted one. Cannot be used in combination with implicit FTP.`, Default: false, }, { - Name: "concurrency", - Help: "Maximum number of FTP simultaneous connections, 0 for unlimited.", + Name: "concurrency", + Help: strings.Replace(`Maximum number of FTP simultaneous connections, 0 for unlimited. + +Note that setting this is very likely to cause deadlocks so it should +be used with care. + +If you are doing a sync or copy then make sure concurrency is one more +than the sum of |--transfers| and |--checkers|. + +If you use |--check-first| then it just needs to be one more than the +maximum of |--checkers| and |--transfers|. + +So for |concurrency 3| you'd use |--checkers 2 --transfers 2 +--check-first| or |--checkers 1 --transfers 1|. + +`, "|", "`", -1), Default: 0, Advanced: true, }, {