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/08/19 01:51:38 UTC
(skywalking-banyandb) branch main updated: Fix flaky schema-merge tests near midnight (#1288)
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 dcc10d4fc Fix flaky schema-merge tests near midnight (#1288)
dcc10d4fc is described below
commit dcc10d4fc2c783d099512af0b81fd1e8dc01f4d2
Author: Gao Hongtao <ha...@gmail.com>
AuthorDate: Wed Aug 19 09:51:34 2026 +0800
Fix flaky schema-merge tests near midnight (#1288)
---
banyand/measure/metadata_test.go | 6 ++++--
banyand/stream/metadata_test.go | 13 +++++++++++--
2 files changed, 15 insertions(+), 4 deletions(-)
diff --git a/banyand/measure/metadata_test.go b/banyand/measure/metadata_test.go
index 2eddc691b..e2d97ce1e 100644
--- a/banyand/measure/metadata_test.go
+++ b/banyand/measure/metadata_test.go
@@ -521,14 +521,16 @@ var _ = Describe("Schema Change", func() {
if elapsed := now.Sub(midnight); elapsed <= firstOffset {
firstOffset, secondOffset = elapsed/2, elapsed/4
}
+ firstBatchTime := now.Add(-firstOffset).Truncate(time.Millisecond)
+ secondBatchTime := now.Add(-secondOffset).Truncate(time.Millisecond)
env := setupSchemaChangeMeasure(svcs, measureName, measureSetupOptions{withExtraTag: true})
- writeSchemaChangeMeasureData(svcs, measureName, now.Add(-firstOffset), 5,
+ writeSchemaChangeMeasureData(svcs, measureName, firstBatchTime, 5,
measureWriteDataOptions{withExtraTag: true})
filePartCountAfterFirstBatch, filePartCountErr := getMeasureFilePartCount(svcs, groupName)
Expect(filePartCountErr).ShouldNot(HaveOccurred())
changeExtraMeasureTagType(svcs, measureName)
- writeSchemaChangeMeasureData(svcs, measureName, now.Add(-secondOffset), 3,
+ writeSchemaChangeMeasureData(svcs, measureName, secondBatchTime, 3,
measureWriteDataOptions{withExtraTagString: true, entityIDPrefix: "entity_new_"})
// Wait for the second batch to flush to disk, creating additional
// file parts that the merge loop can pick up. Without this gate the
diff --git a/banyand/stream/metadata_test.go b/banyand/stream/metadata_test.go
index 619636105..9c028fa07 100644
--- a/banyand/stream/metadata_test.go
+++ b/banyand/stream/metadata_test.go
@@ -509,12 +509,21 @@ var _ = Describe("Schema Change", func() {
It("querying data should return correct values after parts with different types are merged", func() {
streamName := "schema_change_tag_type_merge"
now := timestamp.NowMilli()
+ // Keep both batches in today's segment when the test runs near midnight;
+ // parts from different day segments cannot be merged.
+ firstOffset, secondOffset := 2*time.Hour, time.Hour
+ midnight := time.Date(now.Year(), now.Month(), now.Day(), 0, 0, 0, 0, now.Location())
+ if elapsed := now.Sub(midnight); elapsed <= firstOffset {
+ firstOffset, secondOffset = elapsed/2, elapsed/4
+ }
+ firstBatchTime := now.Add(-firstOffset).Truncate(time.Millisecond)
+ secondBatchTime := now.Add(-secondOffset).Truncate(time.Millisecond)
env := setupSchemaChangeStream(svcs, streamName, groupName, streamSetupOptions{withExtraTag: true})
- writeSchemaChangeData(svcs, streamName, groupName, now.Add(-2*time.Hour), 5,
+ writeSchemaChangeData(svcs, streamName, groupName, firstBatchTime, 5,
writeDataOptions{extraTag: extraTagInt})
changeExtraTagType(svcs, streamName, groupName)
- writeSchemaChangeData(svcs, streamName, groupName, now.Add(-1*time.Hour), 3,
+ writeSchemaChangeData(svcs, streamName, groupName, secondBatchTime, 3,
writeDataOptions{extraTag: extraTagString, traceIDPrefix: "trace_new_", elementIDOffset: 5})
partCountBeforeMerge, partCountErr := getTotalStreamPartCount(svcs, groupName)
Expect(partCountErr).ShouldNot(HaveOccurred())