diff --git a/br/pkg/utils/backoff.go b/br/pkg/utils/backoff.go index 368c11b7f0b6a..8c7712ecb1b1d 100644 --- a/br/pkg/utils/backoff.go +++ b/br/pkg/utils/backoff.go @@ -140,6 +140,7 @@ func NewDownloadSSTBackoffer() Backoffer { } func (bo *importerBackoffer) NextBackoff(err error) time.Duration { + log.Warn("retry to import ssts", zap.Int("attempt", bo.attempt), zap.Error(err)) if MessageIsRetryableStorageError(err.Error()) { bo.delayTime = 2 * bo.delayTime bo.attempt-- diff --git a/br/pkg/utils/retry.go b/br/pkg/utils/retry.go index b4ab0437cf651..20482d7c423a2 100644 --- a/br/pkg/utils/retry.go +++ b/br/pkg/utils/retry.go @@ -29,6 +29,8 @@ var retryableServerError = []string{ "internalerror", "not read from or written to within the timeout period", "requesttimeout", + "invalidpart", + "end of file before message length reached", } // RetryableFunc presents a retryable operation. diff --git a/br/tests/br_full/run.sh b/br/tests/br_full/run.sh index dc785a75423f8..fabc7154302d0 100755 --- a/br/tests/br_full/run.sh +++ b/br/tests/br_full/run.sh @@ -52,7 +52,7 @@ test_log="${TEST_DIR}/${DB}_test.log" error_str="not read from or written to within the timeout period" unset BR_LOG_TO_TERM -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\")->1*return(\"end of file before message length reached\")" 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}')