mirror of https://github.com/milvus-io/milvus.git
				
				
				
			enhance: Graceful stop flowgraph manager when stopping datanode (#36229)
Flowgraph manager is not stopped durong datanode stopping procedure which may lead to unexpect flowgraph behavior during/after datanode stop progress. --------- Signed-off-by: Congqi Xia <congqi.xia@zilliz.com>pull/36291/head
							parent
							
								
									b8b4aea4f5
								
							
						
					
					
						commit
						3352030a84
					
				| 
						 | 
				
			
			@ -362,6 +362,11 @@ func (node *DataNode) Stop() error {
 | 
			
		|||
			node.channelManager.Close()
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if node.flowgraphManager != nil {
 | 
			
		||||
			node.flowgraphManager.ClearFlowgraphs()
 | 
			
		||||
			node.flowgraphManager.Close()
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if node.writeBufferManager != nil {
 | 
			
		||||
			node.writeBufferManager.Stop()
 | 
			
		||||
		}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -685,6 +685,8 @@ func (s *DataNodeServicesSuite) TestSyncSegments() {
 | 
			
		|||
		mockFlowgraphManager := pipeline.NewMockFlowgraphManager(s.T())
 | 
			
		||||
		mockFlowgraphManager.EXPECT().GetFlowgraphService(mock.Anything).
 | 
			
		||||
			Return(pipeline.NewDataSyncServiceWithMetaCache(cache), true)
 | 
			
		||||
		mockFlowgraphManager.EXPECT().ClearFlowgraphs().Return().Maybe()
 | 
			
		||||
		mockFlowgraphManager.EXPECT().Close().Return().Maybe()
 | 
			
		||||
		s.node.flowgraphManager = mockFlowgraphManager
 | 
			
		||||
		ctx := context.Background()
 | 
			
		||||
		req := &datapb.SyncSegmentsRequest{
 | 
			
		||||
| 
						 | 
				
			
			@ -783,6 +785,8 @@ func (s *DataNodeServicesSuite) TestSyncSegments() {
 | 
			
		|||
		mockFlowgraphManager := pipeline.NewMockFlowgraphManager(s.T())
 | 
			
		||||
		mockFlowgraphManager.EXPECT().GetFlowgraphService(mock.Anything).
 | 
			
		||||
			Return(pipeline.NewDataSyncServiceWithMetaCache(cache), true)
 | 
			
		||||
		mockFlowgraphManager.EXPECT().ClearFlowgraphs().Return().Maybe()
 | 
			
		||||
		mockFlowgraphManager.EXPECT().Close().Return().Maybe()
 | 
			
		||||
		s.node.flowgraphManager = mockFlowgraphManager
 | 
			
		||||
		ctx := context.Background()
 | 
			
		||||
		req := &datapb.SyncSegmentsRequest{
 | 
			
		||||
| 
						 | 
				
			
			@ -869,6 +873,8 @@ func (s *DataNodeServicesSuite) TestSyncSegments() {
 | 
			
		|||
		mockFlowgraphManager := pipeline.NewMockFlowgraphManager(s.T())
 | 
			
		||||
		mockFlowgraphManager.EXPECT().GetFlowgraphService(mock.Anything).
 | 
			
		||||
			Return(pipeline.NewDataSyncServiceWithMetaCache(cache), true)
 | 
			
		||||
		mockFlowgraphManager.EXPECT().ClearFlowgraphs().Return().Maybe()
 | 
			
		||||
		mockFlowgraphManager.EXPECT().Close().Return().Maybe()
 | 
			
		||||
		s.node.flowgraphManager = mockFlowgraphManager
 | 
			
		||||
		ctx := context.Background()
 | 
			
		||||
		req := &datapb.SyncSegmentsRequest{
 | 
			
		||||
| 
						 | 
				
			
			@ -966,6 +972,8 @@ func (s *DataNodeServicesSuite) TestSyncSegments() {
 | 
			
		|||
		mockFlowgraphManager := pipeline.NewMockFlowgraphManager(s.T())
 | 
			
		||||
		mockFlowgraphManager.EXPECT().GetFlowgraphService(mock.Anything).
 | 
			
		||||
			Return(pipeline.NewDataSyncServiceWithMetaCache(cache), true)
 | 
			
		||||
		mockFlowgraphManager.EXPECT().ClearFlowgraphs().Return().Maybe()
 | 
			
		||||
		mockFlowgraphManager.EXPECT().Close().Return().Maybe()
 | 
			
		||||
		s.node.flowgraphManager = mockFlowgraphManager
 | 
			
		||||
		ctx := context.Background()
 | 
			
		||||
		req := &datapb.SyncSegmentsRequest{
 | 
			
		||||
| 
						 | 
				
			
			@ -1046,6 +1054,8 @@ func (s *DataNodeServicesSuite) TestSyncSegments() {
 | 
			
		|||
		mockFlowgraphManager := pipeline.NewMockFlowgraphManager(s.T())
 | 
			
		||||
		mockFlowgraphManager.EXPECT().GetFlowgraphService(mock.Anything).
 | 
			
		||||
			Return(pipeline.NewDataSyncServiceWithMetaCache(cache), true)
 | 
			
		||||
		mockFlowgraphManager.EXPECT().ClearFlowgraphs().Return().Maybe()
 | 
			
		||||
		mockFlowgraphManager.EXPECT().Close().Return().Maybe()
 | 
			
		||||
		s.node.flowgraphManager = mockFlowgraphManager
 | 
			
		||||
		ctx := context.Background()
 | 
			
		||||
		req := &datapb.SyncSegmentsRequest{
 | 
			
		||||
| 
						 | 
				
			
			@ -1104,6 +1114,8 @@ func (s *DataNodeServicesSuite) TestSyncSegments() {
 | 
			
		|||
		mockFlowgraphManager := pipeline.NewMockFlowgraphManager(s.T())
 | 
			
		||||
		mockFlowgraphManager.EXPECT().GetFlowgraphService(mock.Anything).
 | 
			
		||||
			Return(pipeline.NewDataSyncServiceWithMetaCache(cache), true)
 | 
			
		||||
		mockFlowgraphManager.EXPECT().ClearFlowgraphs().Return().Maybe()
 | 
			
		||||
		mockFlowgraphManager.EXPECT().Close().Return().Maybe()
 | 
			
		||||
		s.node.flowgraphManager = mockFlowgraphManager
 | 
			
		||||
		ctx := context.Background()
 | 
			
		||||
		req := &datapb.SyncSegmentsRequest{
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue