@@ -1143,7 +1143,7 @@ func (rc *LogClient) restoreMetaKvEntries(
1143
1143
failpoint .Inject ("failed-to-restore-metakv" , func (_ failpoint.Value ) {
1144
1144
failpoint .Return (0 , 0 , errors .Errorf ("failpoint: failed to restore metakv" ))
1145
1145
})
1146
- if err := rc .rawKVClient . Put ( ctx , newEntry .Key , newEntry .Value , entry .Ts ); err != nil {
1146
+ if err := PutRawKvWithRetry ( ctx , rc .rawKVClient , newEntry .Key , newEntry .Value , entry .Ts ); err != nil {
1147
1147
return 0 , 0 , errors .Trace (err )
1148
1148
}
1149
1149
// for failpoint, we need to flush the cache in rawKVClient every time
@@ -1717,6 +1717,7 @@ func (rc *LogClient) FailpointDoChecksumForLogRestore(
1717
1717
return eg .Wait ()
1718
1718
}
1719
1719
1720
+ << << << < HEAD
1720
1721
type LogFilesIterWithSplitHelper struct {
1721
1722
iter LogIter
1722
1723
helper * logsplit.LogSplitHelper
@@ -1764,4 +1765,14 @@ func (splitIter *LogFilesIterWithSplitHelper) TryNext(ctx context.Context) iter.
1764
1765
res := iter .Emit (splitIter .buffer [splitIter .next ])
1765
1766
splitIter .next += 1
1766
1767
return res
1768
+ == == == =
1769
+ func PutRawKvWithRetry (ctx context .Context , client * rawkv .RawKVBatchClient , key , value []byte , originTs uint64 ) error {
1770
+ err := utils.WithRetry (ctx , func () error {
1771
+ return client .Put (ctx , key , value , originTs )
1772
+ }, utils .NewRawClientBackoffStrategy ())
1773
+ if err != nil {
1774
+ return errors .Errorf ("failed to put raw kv after retry" )
1775
+ }
1776
+ return nil
1777
+ >> >> >> > 3 a378c8e384 (br : add retry for raw kv client put (#58963 ))
1767
1778
}
0 commit comments