func (top_detect_svc *TopologyChangeDetectorSvc) validateTargetTopology() ([]uint16, map[uint16]string, error) {
|
defer top_detect_svc.logger.Infof("TopologyChangeDetectorSvc for pipeline %v validateTargetTopology completed", top_detect_svc.pipeline.Topic())
|
|
targetClusterCompatibility, targetServerVBMap, err := top_detect_svc.getTargetBucketInfo()
|
|
if err != nil {
|
top_detect_svc.logger.Warnf("Skipping target check since received error retrieving target bucket info for %v. err=%v", top_detect_svc.pipeline.Topic(), err)
|
return nil, nil, err
|
}
|
If an error occurs, the word "completed" should not be printed.
In the latest master as of 7.1, the code is along the lines of:
func (top_detect_svc *TopologyChangeDetectorSvc) handleTargetTopologyChange(diff_vb_list []uint16, target_vb_server_map map[uint16]string, err_in error) error {
|
defer top_detect_svc.logger.Infof("TopologyChangeDetectorSvc for pipeline %v handleTargetTopologyChange completed", top_detect_svc.mainPipelineTopic)
|
|
var err error
|
// first check if relevant problematic vbs in pipeline are due to target topology changes.
|
// the if conditions are to ensure that diff_vb_list is valid
|
if err_in == nil || err_in == target_topology_changedErr {
|
err = top_detect_svc.validateVbErrors(diff_vb_list, false /*source*/)
|
if err != nil {
|
return err
|
}
|
}
|