This is an automated email from the ASF dual-hosted git repository.

wusheng pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/skywalking.git


The following commit(s) were added to refs/heads/master by this push:
     new 4495f3ce5e fix(banyandb): prevent time range overflow in profile 
thread snapshot query (#13660)
4495f3ce5e is described below

commit 4495f3ce5e531400de218772f7a381314e17077d
Author: hr342425 <[email protected]>
AuthorDate: Tue Jan 13 19:04:08 2026 +0800

    fix(banyandb): prevent time range overflow in profile thread snapshot query 
(#13660)
---
 docs/en/changes/changes.md                                       | 1 +
 .../banyandb/stream/BanyanDBProfileThreadSnapshotQueryDAO.java   | 9 ++++++---
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/docs/en/changes/changes.md b/docs/en/changes/changes.md
index 9a496b0c61..e4b027e898 100644
--- a/docs/en/changes/changes.md
+++ b/docs/en/changes/changes.md
@@ -19,6 +19,7 @@
 * Replace BanyanDB Java client with native implementation.
 * Remove `bydb.dependencies.properties` and set the compatible BanyanDB API 
version number in `${SW_STORAGE_BANYANDB_COMPATIBLE_SERVER_API_VERSIONS}`
 * Fix trace profiling query time range condition.
+* Fix BanyanDB time range overflow in profile thread snapshot query.
 
 #### UI
 * Fix the missing icon in new native trace view.
diff --git 
a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/BanyanDBProfileThreadSnapshotQueryDAO.java
 
b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/BanyanDBProfileThreadSnapshotQueryDAO.java
index 491bf2b615..9cb6ed049e 100644
--- 
a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/BanyanDBProfileThreadSnapshotQueryDAO.java
+++ 
b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/BanyanDBProfileThreadSnapshotQueryDAO.java
@@ -77,7 +77,7 @@ public class BanyanDBProfileThreadSnapshotQueryDAO extends 
AbstractBanyanDBDAO i
     }
 
     @Override
-    public List<ProfileThreadSnapshotRecord> queryRecords(String taskId)  
throws IOException {
+    public List<ProfileThreadSnapshotRecord> queryRecords(String taskId) 
throws IOException {
         StreamQueryResponse resp = query(false, 
ProfileThreadSnapshotRecord.INDEX_NAME,
                 TAGS_BASIC,
                 new QueryBuilder<StreamQuery>() {
@@ -97,7 +97,7 @@ public class BanyanDBProfileThreadSnapshotQueryDAO extends 
AbstractBanyanDBDAO i
         List<ProfileThreadSnapshotRecord> result = new ArrayList<>();
         for (final RowEntity rowEntity : resp.getElements()) {
             ProfileThreadSnapshotRecord record = this.builder.storage2Entity(
-                new 
BanyanDBConverter.StorageToStream(ProfileThreadSnapshotRecord.INDEX_NAME, 
rowEntity));
+                    new 
BanyanDBConverter.StorageToStream(ProfileThreadSnapshotRecord.INDEX_NAME, 
rowEntity));
             result.add(record);
         }
         return result;
@@ -136,8 +136,11 @@ public class BanyanDBProfileThreadSnapshotQueryDAO extends 
AbstractBanyanDBDAO i
     }
 
     private int querySequenceWithAgg(AggType aggType, String segmentId, long 
start, long end) throws IOException {
+        // Clamp the time range to safe bounds for BanyanDB
+        long safeStart = Math.max(start, LOWER_BOUND_TIME);
+        long safeEnd = Math.min(end, UPPER_BOUND_TIME);
         StreamQueryResponse resp = query(false, 
ProfileThreadSnapshotRecord.INDEX_NAME,
-                TAGS_ALL, new TimestampRange(start, end),
+                TAGS_ALL, new TimestampRange(safeStart, safeEnd),
                 new QueryBuilder<StreamQuery>() {
                     @Override
                     public void apply(StreamQuery query) {

Reply via email to