You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by ha...@apache.org on 2026/07/03 01:12:19 UTC
(skywalking-banyandb) branch main updated: Lifecycle only handle stream/measure/trace snapshots (#1202)
This is an automated email from the ASF dual-hosted git repository.
hanahmily pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/skywalking-banyandb.git
The following commit(s) were added to refs/heads/main by this push:
new 2c9946197 Lifecycle only handle stream/measure/trace snapshots (#1202)
2c9946197 is described below
commit 2c9946197a9df91dd02cffdeb880aa00a12f837d
Author: mrproliu <74...@qq.com>
AuthorDate: Fri Jul 3 09:12:15 2026 +0800
Lifecycle only handle stream/measure/trace snapshots (#1202)
---
CHANGES.md | 1 +
banyand/backup/lifecycle/steps.go | 9 +++++++++
2 files changed, 10 insertions(+)
diff --git a/CHANGES.md b/CHANGES.md
index 60bb76767..bcaee768d 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -126,6 +126,7 @@ Release Notes.
- Consolidate lifecycle migration report errors into a single flat list of structured, stage-aware entries.
- Fix backup container OOM from overlapping scheduled runs; serialize runs and upload small snapshot files concurrently.
- Fix block metadata reset before unmarshal for stream and trace.
+- Lifecycle only handles stream/measure/trace snapshots, skipping other catalogs.
### Document
diff --git a/banyand/backup/lifecycle/steps.go b/banyand/backup/lifecycle/steps.go
index 72d4d5b30..0c3f1d9a3 100644
--- a/banyand/backup/lifecycle/steps.go
+++ b/banyand/backup/lifecycle/steps.go
@@ -60,6 +60,15 @@ func (l *lifecycleService) getSnapshots(ctx context.Context, groups []*commonv1.
return "", "", "", err
}
for _, snp := range snn {
+ // A data node broadcasts the snapshot request to every catalog listener it runs, so the
+ // response also carries property and schema-property snapshots. The lifecycle only migrates
+ // stream/measure/trace and has no property/schema root configured, so skip the rest to avoid
+ // resolving them against an empty root (which fails os.Stat and logs a spurious error).
+ switch snp.Catalog {
+ case commonv1.Catalog_CATALOG_STREAM, commonv1.Catalog_CATALOG_MEASURE, commonv1.Catalog_CATALOG_TRACE:
+ default:
+ continue
+ }
snapshotDir, errDir := snapshot.Dir(snp, l.streamRoot, l.measureRoot, "", l.traceRoot, "")
if errDir != nil {
l.l.Error().Err(errDir).Msgf("Failed to get snapshot directory for %s", snp.Name)