From f88cbdc8ed952ba1aa70f86233d0209af981634c Mon Sep 17 00:00:00 2001 From: Jianjun Liao <36503113+Leavrth@users.noreply.github.com> Date: Thu, 19 Oct 2023 17:00:29 +0800 Subject: [PATCH] This is an automated cherry-pick of #47651 Signed-off-by: ti-chi-bot --- br/pkg/storage/s3.go | 9 +++++++++ br/tests/br_full/run.sh | 4 ++++ 2 files changed, 13 insertions(+) diff --git a/br/pkg/storage/s3.go b/br/pkg/storage/s3.go index b3708d2159909..3151ef36a08dd 100644 --- a/br/pkg/storage/s3.go +++ b/br/pkg/storage/s3.go @@ -965,12 +965,21 @@ func (rl retryerWithLog) ShouldRetry(r *request.Request) bool { r.Error = errors.New("read tcp *.*.*.*:*->*.*.*.*:*: read: connection reset by peer") } }) + if r.HTTPRequest.URL.Host == ec2MetaAddress && (isDeadlineExceedError(r.Error) || isConnectionResetError(r.Error)) { + // fast fail for unreachable linklocal address in EC2 containers. + log.Warn("failed to get EC2 metadata. skipping.", logutil.ShortError(r.Error)) + return false + } if isConnectionResetError(r.Error) { return true } +<<<<<<< HEAD if isDeadlineExceedError(r.Error) && r.HTTPRequest.URL.Host == ec2MetaAddress { // fast fail for unreachable linklocal address in EC2 containers. log.Warn("failed to get EC2 metadata. skipping.", logutil.ShortError(r.Error)) +======= + if isConnectionRefusedError(r.Error) { +>>>>>>> f4a139ffe34 (br: avoid retry if it's ec2metadata (#47651)) return false } return rl.DefaultRetryer.ShouldRetry(r) diff --git a/br/tests/br_full/run.sh b/br/tests/br_full/run.sh index dc785a75423f8..58451c7726674 100755 --- a/br/tests/br_full/run.sh +++ b/br/tests/br_full/run.sh @@ -52,7 +52,11 @@ test_log="${TEST_DIR}/${DB}_test.log" error_str="not read from or written to within the timeout period" unset BR_LOG_TO_TERM +<<<<<<< HEAD export GO_FAILPOINTS="github.com/pingcap/tidb/br/pkg/backup/backup-storage-error=1*return(\"connection refused\")->1*return(\"InternalError\");github.com/pingcap/tidb/br/pkg/backup/backup-timeout-error=1*return(\"RequestTimeout\")->1*return(\"not read from or written to within the timeout period\")" +======= +export GO_FAILPOINTS="github.com/pingcap/tidb/br/pkg/backup/backup-storage-error=1*return(\"connection refused\")->1*return(\"InternalError\");github.com/pingcap/tidb/br/pkg/backup/backup-timeout-error=1*return(\"RequestTimeout\")->1*return(\"not read from or written to within the timeout period\")->1*return(\"InvalidPart\")" +>>>>>>> f4a139ffe34 (br: avoid retry if it's ec2metadata (#47651)) run_br --pd $PD_ADDR backup full -s "local://$TEST_DIR/$DB-lz4" --concurrency 4 --compression lz4 --log-file $test_log export GO_FAILPOINTS="" size_lz4=$(du -d 0 $TEST_DIR/$DB-lz4 | awk '{print $1}')