diff --git a/internal/querynode/query_node.go b/internal/querynode/query_node.go index 16abe23b53..8b7dceed96 100644 --- a/internal/querynode/query_node.go +++ b/internal/querynode/query_node.go @@ -240,9 +240,6 @@ func (node *QueryNode) Stop() error { if node.queryService != nil { node.queryService.close() } - if node.queryService != nil { - node.queryService.close() - } return nil } diff --git a/internal/querynode/query_service.go b/internal/querynode/query_service.go index 94491fe944..0d44c55963 100644 --- a/internal/querynode/query_service.go +++ b/internal/querynode/query_service.go @@ -95,10 +95,12 @@ func newQueryService(ctx context.Context, func (q *queryService) close() { log.Debug("search service closed") - for collectionID := range q.queryCollections { - q.stopQueryCollection(collectionID) - } q.queryCollectionMu.Lock() + for collectionID, sc := range q.queryCollections { + sc.close() + sc.cancel() + delete(q.queryCollections, collectionID) + } q.queryCollections = make(map[UniqueID]*queryCollection) q.queryCollectionMu.Unlock() q.cancel() diff --git a/internal/querynode/query_service_test.go b/internal/querynode/query_service_test.go index 059a9098ab..7c240b8157 100644 --- a/internal/querynode/query_service_test.go +++ b/internal/querynode/query_service_test.go @@ -241,4 +241,7 @@ func TestQueryService_addQueryCollection(t *testing.T) { err = qs.addQueryCollection(invalidCollectionID) assert.Error(t, err) assert.Len(t, qs.queryCollections, 1) + + qs.close() + assert.Len(t, qs.queryCollections, 0) }