Skip to content

Commit

Permalink
fix(backup): fix DBRetentionAndShardFromPath parsing error between-di…
Browse files Browse the repository at this point in the history
…fferent-os (#25362)

Split paths by both forward and back slashes.

Closes #25361
  • Loading branch information
chengshiwen authored Sep 27, 2024
1 parent 1bc0eb4 commit 860a74f
Showing 1 changed file with 6 additions and 4 deletions.
10 changes: 6 additions & 4 deletions cmd/influxd/backup_util/backup_util.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ import (
"io"
"os"
"path/filepath"
"regexp"
"sort"
"strings"
"sync/atomic"

internal "github.com/influxdata/influxdb/cmd/influxd/backup_util/internal"
Expand Down Expand Up @@ -219,10 +219,12 @@ func (w *CountingWriter) BytesWritten() int64 {
return atomic.LoadInt64(&w.Total)
}

// retentionAndShardFromPath will take the shard relative path and split it into the
// retention policy name and shard ID. The first part of the path should be the database name.
var separatorRegexp = regexp.MustCompile(`[/\\]`)

// DBRetentionAndShardFromPath will take the shard relative path and split it into the
// database name, retention policy name and shard ID. The first part of the path should be the database name.
func DBRetentionAndShardFromPath(path string) (db, retention, shard string, err error) {
a := strings.Split(path, string(filepath.Separator))
a := separatorRegexp.Split(path, -1)
if len(a) != 3 {
return "", "", "", fmt.Errorf("expected database, retention policy, and shard id in path: %s", path)
}
Expand Down

0 comments on commit 860a74f

Please sign in to comment.