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}')