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

hanahmily pushed a commit to branch bug/trace-cond
in repository https://gitbox.apache.org/repos/asf/skywalking-banyandb.git

commit 77298ffa8bfe12c852e9d70216308adf0b8c4f91
Author: Hongtao Gao <[email protected]>
AuthorDate: Mon Mar 30 08:21:46 2026 +0000

    fix(trace): always return DummyFilter for entity tags in row-level filters
    
    Entity tags are handled at the series routing level and are not stored in 
tag data.
    They should not be included in row-level filters, regardless of whether we 
have
    explicit trace IDs (hasGlobalIndex). This prevents nil pointer dereferences 
when
    entity tags are referenced in filter conditions.
---
 pkg/query/logical/tag_filter.go | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/pkg/query/logical/tag_filter.go b/pkg/query/logical/tag_filter.go
index 103e3b90d..c09f64c05 100644
--- a/pkg/query/logical/tag_filter.go
+++ b/pkg/query/logical/tag_filter.go
@@ -102,7 +102,9 @@ func BuildTagFilter(criteria *modelv1.Criteria, entityDict 
map[string]int, schem
                if err != nil {
                        return nil, err
                }
-               if _, ok := entityDict[cond.Name]; ok && !hasGlobalIndex {
+               if _, ok := entityDict[cond.Name]; ok {
+                       // Entity tags are handled at the series routing level 
and are not stored in tag data.
+                       // They should not be included in row-level filters.
                        return DummyFilter, nil
                }
                for _, skippedTagName := range skippedTagNames {

Reply via email to