This is an automated email from the ASF dual-hosted git repository. hanahmily pushed a commit to branch ci in repository https://gitbox.apache.org/repos/asf/skywalking-banyandb.git
commit 8e6d56346e9d210b346b362222c49811d2ea409f Author: Gao Hongtao <[email protected]> AuthorDate: Thu May 8 07:01:35 2025 +0800 Fix issues in CI Signed-off-by: Gao Hongtao <[email protected]> --- .github/workflows/test.yml | 9 +++++++++ api/proto/banyandb/measure/v1/write.proto | 10 ---------- banyand/internal/storage/rotation_test.go | 3 ++- banyand/metadata/embeddedserver/server.go | 17 ++++++++--------- docs/api-reference.md | 16 ---------------- .../distributed/lifecycle/lifecycle_suite_test.go | 12 ++++++++---- test/integration/distributed/query/query_suite_test.go | 14 ++++++++++---- .../standalone/cold_query/query_suite_test.go | 14 +++++++++----- test/integration/standalone/query/query_suite_test.go | 14 +++++++++----- .../standalone/query_ondisk/query_ondisk_suite_test.go | 14 ++++++++++---- 10 files changed, 65 insertions(+), 58 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 0bd0b829..ecf44de5 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -78,5 +78,14 @@ jobs: run: make build - name: Test integration and banyand run: TEST_CI_OPTS="--cover --covermode atomic --coverprofile=coverage.out ${{ inputs.options }}" make test-ci + - if: ${{ failure() }} + run: | + ls /tmp + - uses: actions/upload-artifact@v4 + if: ${{ failure() }} + name: Upload BanyanDB Data Folder + with: + name: test-data-${{ matrix.test.name }} + path: "/tmp/banyandb-test-*" - name: Upload coverage to Codecov uses: codecov/codecov-action@v3 diff --git a/api/proto/banyandb/measure/v1/write.proto b/api/proto/banyandb/measure/v1/write.proto index 344ef06d..27612f2b 100644 --- a/api/proto/banyandb/measure/v1/write.proto +++ b/api/proto/banyandb/measure/v1/write.proto @@ -37,16 +37,6 @@ message DataPointValue { repeated model.v1.FieldValue fields = 3; // the version of the data point int64 version = 4; - // the type of the data point cumulative or delta - enum Type { - // TYPE_UNSPECIFIED is the default value. - TYPE_UNSPECIFIED = 0; - // TYPE_CUMULATIVE is the cumulative data - TYPE_CUMULATIVE = 1; - // TYPE_DELTA is the delta data - TYPE_DELTA = 2; - } - Type type = 5; } // WriteRequest is the request contract for write diff --git a/banyand/internal/storage/rotation_test.go b/banyand/internal/storage/rotation_test.go index ccc9e271..20094639 100644 --- a/banyand/internal/storage/rotation_test.go +++ b/banyand/internal/storage/rotation_test.go @@ -76,8 +76,9 @@ func TestRetention(t *testing.T) { segments, _ := segCtrl.segments(false) if len(segments) != expected { ct.Errorf("expect %d segments, got %d", expected, len(segments)) + tsdb.Tick(ts.UnixNano()) } - }, flags.EventuallyTimeout, time.Millisecond, "wait for %d segment to be created", expected) + }, flags.EventuallyTimeout, 500*time.Millisecond, "wait for %d segment to be created", expected) // amend the time to the next day ts = ts.Add(time.Hour) } diff --git a/banyand/metadata/embeddedserver/server.go b/banyand/metadata/embeddedserver/server.go index f1bbbb5d..f4094e5e 100644 --- a/banyand/metadata/embeddedserver/server.go +++ b/banyand/metadata/embeddedserver/server.go @@ -152,14 +152,7 @@ func (s *server) registerDefrag() { var ( err error etcdLogger = logger.GetLogger().Named("etcd-server") - defrag = func(_ time.Time, _ *logger.Logger) bool { - if err = performDefrag(s.listenClientURL, s.ecli); err != nil { - etcdLogger.Error().Err(err).Msg("failed to execute defragmentation") - return false - } - return true - } - parser = cron.Minute | cron.Hour | cron.Dom | cron.Month | cron.Dow | cron.Descriptor + parser = cron.Minute | cron.Hour | cron.Dom | cron.Month | cron.Dow | cron.Descriptor ) s.ecli, err = clientv3.New(clientv3.Config{ @@ -171,7 +164,13 @@ func (s *server) registerDefrag() { } s.scheduler = timestamp.NewScheduler(etcdLogger, timestamp.NewClock()) - err = s.scheduler.Register("defrag", parser, s.defragCron, defrag) + err = s.scheduler.Register("defrag", parser, s.defragCron, func(_ time.Time, l *logger.Logger) bool { + if errInner := performDefrag(s.listenClientURL, s.ecli); errInner != nil { + l.Error().Err(errInner).Msg("failed to execute defragmentation") + return false + } + return true + }) if err != nil { etcdLogger.Error().Err(err).Msg("failed to register defragmentation") } diff --git a/docs/api-reference.md b/docs/api-reference.md index c755c559..760ce0a0 100644 --- a/docs/api-reference.md +++ b/docs/api-reference.md @@ -213,8 +213,6 @@ - [WriteRequest](#banyandb-measure-v1-WriteRequest) - [WriteResponse](#banyandb-measure-v1-WriteResponse) - - [DataPointValue.Type](#banyandb-measure-v1-DataPointValue-Type) - - [banyandb/measure/v1/rpc.proto](#banyandb_measure_v1_rpc-proto) - [DeleteExpiredSegmentsRequest](#banyandb-measure-v1-DeleteExpiredSegmentsRequest) - [DeleteExpiredSegmentsResponse](#banyandb-measure-v1-DeleteExpiredSegmentsResponse) @@ -3145,7 +3143,6 @@ DataPointValue is the data point for writing. It only contains values. | tag_families | [banyandb.model.v1.TagFamilyForWrite](#banyandb-model-v1-TagFamilyForWrite) | repeated | the order of tag_families' items match the measure schema | | fields | [banyandb.model.v1.FieldValue](#banyandb-model-v1-FieldValue) | repeated | the order of fields match the measure schema | | version | [int64](#int64) | | the version of the data point | -| type | [DataPointValue.Type](#banyandb-measure-v1-DataPointValue-Type) | | | @@ -3205,19 +3202,6 @@ WriteResponse is the response contract for write - -<a name="banyandb-measure-v1-DataPointValue-Type"></a> - -### DataPointValue.Type -the type of the data point cumulative or delta - -| Name | Number | Description | -| ---- | ------ | ----------- | -| TYPE_UNSPECIFIED | 0 | TYPE_UNSPECIFIED is the default value. | -| TYPE_CUMULATIVE | 1 | TYPE_CUMULATIVE is the cumulative data | -| TYPE_DELTA | 2 | TYPE_DELTA is the delta data | - - diff --git a/test/integration/distributed/lifecycle/lifecycle_suite_test.go b/test/integration/distributed/lifecycle/lifecycle_suite_test.go index c5d1f1a6..f0b8069c 100644 --- a/test/integration/distributed/lifecycle/lifecycle_suite_test.go +++ b/test/integration/distributed/lifecycle/lifecycle_suite_test.go @@ -137,9 +137,13 @@ var _ = SynchronizedAfterSuite(func() { if connection != nil { Expect(connection.Close()).To(Succeed()) } -}, func() { - if deferFunc != nil { - deferFunc() +}, func() {}) + +var _ = ReportAfterSuite("Distributed Lifecycle Suite", func(report Report) { + if report.SuiteSucceeded { + if deferFunc != nil { + deferFunc() + } + Eventually(gleak.Goroutines, flags.EventuallyTimeout).ShouldNot(gleak.HaveLeaked(goods)) } - Eventually(gleak.Goroutines, flags.EventuallyTimeout).ShouldNot(gleak.HaveLeaked(goods)) }) diff --git a/test/integration/distributed/query/query_suite_test.go b/test/integration/distributed/query/query_suite_test.go index ce6a3c5d..276f9390 100644 --- a/test/integration/distributed/query/query_suite_test.go +++ b/test/integration/distributed/query/query_suite_test.go @@ -135,8 +135,14 @@ var _ = SynchronizedAfterSuite(func() { if connection != nil { Expect(connection.Close()).To(Succeed()) } -}, func() { - deferFunc() - Eventually(gleak.Goroutines, flags.EventuallyTimeout).ShouldNot(gleak.HaveLeaked(goods)) - Eventually(pool.AllRefsCount, flags.EventuallyTimeout).Should(gmatcher.HaveZeroRef()) +}, func() {}) + +var _ = ReportAfterSuite("Distributed Query Suite", func(report Report) { + if report.SuiteSucceeded { + if deferFunc != nil { + deferFunc() + } + Eventually(gleak.Goroutines, flags.EventuallyTimeout).ShouldNot(gleak.HaveLeaked(goods)) + Eventually(pool.AllRefsCount, flags.EventuallyTimeout).Should(gmatcher.HaveZeroRef()) + } }) diff --git a/test/integration/standalone/cold_query/query_suite_test.go b/test/integration/standalone/cold_query/query_suite_test.go index 36f03901..fb127bf0 100644 --- a/test/integration/standalone/cold_query/query_suite_test.go +++ b/test/integration/standalone/cold_query/query_suite_test.go @@ -88,10 +88,14 @@ var _ = SynchronizedAfterSuite(func() { if connection != nil { Expect(connection.Close()).To(Succeed()) } -}, func() { - if deferFunc != nil { - deferFunc() +}, func() {}) + +var _ = ReportAfterSuite("Integration Query Cold Data Suite", func(report Report) { + if report.SuiteSucceeded { + if deferFunc != nil { + deferFunc() + } + Eventually(gleak.Goroutines, flags.EventuallyTimeout).ShouldNot(gleak.HaveLeaked(goods)) + Eventually(pool.AllRefsCount, flags.EventuallyTimeout).Should(gmatcher.HaveZeroRef()) } - Eventually(gleak.Goroutines, flags.EventuallyTimeout).ShouldNot(gleak.HaveLeaked(goods)) - Eventually(pool.AllRefsCount, flags.EventuallyTimeout).Should(gmatcher.HaveZeroRef()) }) diff --git a/test/integration/standalone/query/query_suite_test.go b/test/integration/standalone/query/query_suite_test.go index 664f4071..7c576550 100644 --- a/test/integration/standalone/query/query_suite_test.go +++ b/test/integration/standalone/query/query_suite_test.go @@ -89,10 +89,14 @@ var _ = SynchronizedAfterSuite(func() { if connection != nil { Expect(connection.Close()).To(Succeed()) } -}, func() { - if deferFunc != nil { - deferFunc() +}, func() {}) + +var _ = ReportAfterSuite("Integration Query Suite", func(report Report) { + if report.SuiteSucceeded { + if deferFunc != nil { + deferFunc() + } + Eventually(gleak.Goroutines, flags.EventuallyTimeout).ShouldNot(gleak.HaveLeaked(goods)) + Eventually(pool.AllRefsCount, flags.EventuallyTimeout).Should(gmatcher.HaveZeroRef()) } - Eventually(gleak.Goroutines, flags.EventuallyTimeout).ShouldNot(gleak.HaveLeaked(goods)) - Eventually(pool.AllRefsCount, flags.EventuallyTimeout).Should(gmatcher.HaveZeroRef()) }) diff --git a/test/integration/standalone/query_ondisk/query_ondisk_suite_test.go b/test/integration/standalone/query_ondisk/query_ondisk_suite_test.go index 346b8918..99c0ec7e 100644 --- a/test/integration/standalone/query_ondisk/query_ondisk_suite_test.go +++ b/test/integration/standalone/query_ondisk/query_ondisk_suite_test.go @@ -102,8 +102,14 @@ var _ = SynchronizedAfterSuite(func() { if connection != nil { Expect(connection.Close()).To(Succeed()) } -}, func() { - deferFunc() - Eventually(gleak.Goroutines, flags.EventuallyTimeout).ShouldNot(gleak.HaveLeaked(goods)) - Eventually(pool.AllRefsCount, flags.EventuallyTimeout).Should(gmatcher.HaveZeroRef()) +}, func() {}) + +var _ = ReportAfterSuite("Integration Query OnDisk Suite", func(report Report) { + if report.SuiteSucceeded { + if deferFunc != nil { + deferFunc() + } + Eventually(gleak.Goroutines, flags.EventuallyTimeout).ShouldNot(gleak.HaveLeaked(goods)) + Eventually(pool.AllRefsCount, flags.EventuallyTimeout).Should(gmatcher.HaveZeroRef()) + } })
