Copilot commented on code in PR #947:
URL: 
https://github.com/apache/skywalking-banyandb/pull/947#discussion_r2750585568


##########
banyand/metadata/client.go:
##########
@@ -543,6 +555,30 @@ func (s *clientService) Subjects(ctx context.Context, 
indexRule *databasev1.Inde
        return foundSubjects, subjectErr
 }
 
+func (s *clientService) CollectDataInfo(ctx context.Context, group string) 
([]*databasev1.DataInfo, error) {
+       return s.infoCollectorRegistry.CollectDataInfo(ctx, group)
+}
+
+func (s *clientService) CollectLiaisonInfo(ctx context.Context, group string) 
([]*databasev1.LiaisonInfo, error) {
+       return s.infoCollectorRegistry.CollectLiaisonInfo(ctx, group)
+}
+
+func (s *clientService) RegisterDataCollector(catalog commonv1.Catalog, 
collector schema.DataInfoCollector) {
+       s.infoCollectorRegistry.RegisterDataCollector(catalog, collector)
+}
+
+func (s *clientService) RegisterLiaisonCollector(catalog commonv1.Catalog, 
collector schema.LiaisonInfoCollector) {

Review Comment:
   These methods do not check if `infoCollectorRegistry` is nil before calling 
methods on it. If `RegisterDataCollector` or `RegisterLiaisonCollector` is 
called before `PreRun` completes (where `infoCollectorRegistry` is 
initialized), this will cause a nil pointer dereference. Consider adding nil 
checks or documenting that these methods must only be called after `PreRun`.
   ```suggestion
   func (s *clientService) CollectDataInfo(ctx context.Context, group string) 
([]*databasev1.DataInfo, error) {
        if s.infoCollectorRegistry == nil {
                return nil, errors.New("infoCollectorRegistry is not 
initialized")
        }
        return s.infoCollectorRegistry.CollectDataInfo(ctx, group)
   }
   
   func (s *clientService) CollectLiaisonInfo(ctx context.Context, group 
string) ([]*databasev1.LiaisonInfo, error) {
        if s.infoCollectorRegistry == nil {
                return nil, errors.New("infoCollectorRegistry is not 
initialized")
        }
        return s.infoCollectorRegistry.CollectLiaisonInfo(ctx, group)
   }
   
   func (s *clientService) RegisterDataCollector(catalog commonv1.Catalog, 
collector schema.DataInfoCollector) {
        if s.infoCollectorRegistry == nil {
                return
        }
        s.infoCollectorRegistry.RegisterDataCollector(catalog, collector)
   }
   
   func (s *clientService) RegisterLiaisonCollector(catalog commonv1.Catalog, 
collector schema.LiaisonInfoCollector) {
        if s.infoCollectorRegistry == nil {
                return
        }
   ```



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to