Skip to content

Commit 9ce926e

Browse files
authored
Merge pull request #87 from ydb-platform/remove-overload
remove-overload
2 parents d64c4a2 + ebab77b commit 9ce926e

File tree

3 files changed

+16
-3
lines changed

3 files changed

+16
-3
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
## 3.7.2
2+
* Retry remove directory in sugar.RemoveRecursive for retriable error
3+
14
## 3.7.1
25
* Fixed panic on `result.Reset(nil)`
36

internal/meta/version.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
package meta
22

33
const (
4-
Version = "ydb-go-sdk/3.7.1"
4+
Version = "ydb-go-sdk/3.7.2"
55
)

sugar/sugar.go

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88

99
ydb "github.com/ydb-platform/ydb-go-sdk/v3"
1010
"github.com/ydb-platform/ydb-go-sdk/v3/internal/errors"
11+
"github.com/ydb-platform/ydb-go-sdk/v3/retry"
1112
"github.com/ydb-platform/ydb-go-sdk/v3/scheme"
1213
"github.com/ydb-platform/ydb-go-sdk/v3/table"
1314
)
@@ -66,14 +67,20 @@ func RemoveRecursive(ctx context.Context, db ydb.Connection, pathToRemove string
6667
fullSysTablePath := path.Join(db.Name(), sysTable)
6768
var list func(int, string) error
6869
list = func(i int, p string) error {
69-
dir, err := db.Scheme().ListDirectory(ctx, p)
70+
var dir scheme.Directory
71+
var err error
72+
err = retry.Retry(ctx, true, func(ctx context.Context) (err error) {
73+
dir, err = db.Scheme().ListDirectory(ctx, p)
74+
return err
75+
})
7076
var opErr *errors.OpError
7177
if errors.As(err, &opErr) && opErr.Reason == errors.StatusSchemeError {
7278
return nil
7379
}
7480
if err != nil {
7581
return err
7682
}
83+
7784
for _, child := range dir.Children {
7885
pt := path.Join(p, child.Name)
7986
if pt == fullSysTablePath {
@@ -84,7 +91,10 @@ func RemoveRecursive(ctx context.Context, db ydb.Connection, pathToRemove string
8491
if err = list(i+1, pt); err != nil {
8592
return err
8693
}
87-
if err = db.Scheme().RemoveDirectory(ctx, pt); err != nil {
94+
err = retry.Retry(ctx, true, func(ctx context.Context) (err error) {
95+
return db.Scheme().RemoveDirectory(ctx, pt)
96+
})
97+
if err != nil {
8898
return err
8999
}
90100

0 commit comments

Comments
 (0)