Skip to content

Commit 0ed1d99

Browse files
authored
Don't treat missing PartitionConfig data as an error (#6576)
We intentionally set the isolation group to "" when we leak tasks, which causes forwarded tasks to report an error resolving the isolation group. Additionally update the matching simulation to use the isolation group based load balancer and provide a default for the QpsTrackerInterval. 0s results in a panic on service startup. Additionally specify an Identity on requests in the matching simulation so that poller history is tracked.
1 parent 78cb0a1 commit 0ed1d99

9 files changed

+17
-3
lines changed

common/partition/default-partitioner.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ func (r *defaultPartitioner) GetIsolationGroupByDomainID(ctx context.Context, sc
8484
}
8585
wfPartition := mapPartitionConfigToDefaultPartitionConfig(wfPartitionData)
8686
if wfPartition.WorkflowStartIsolationGroup == "" || wfPartition.WFID == "" {
87-
return "", ErrInvalidPartitionConfig
87+
return "", nil
8888
}
8989

9090
isolationGroups, err := r.isolationGroupState.IsolationGroupsByDomainID(ctx, pollerInfo.DomainID)

common/partition/default-partitioner_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ func TestDefaultPartitioner_GetIsolationGroupByDomainID(t *testing.T) {
112112
stateAffordance: func(state *isolationgroup.MockState) {},
113113
incomingContext: context.Background(),
114114
expectedValue: "",
115-
expectedError: errors.New("invalid partition config"),
115+
expectedError: nil,
116116
},
117117
"Error condition - No isolation-group information passed in 2": {
118118
partitionKeyPassedIn: nil,

host/matching_simulation_test.go

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ func TestMatchingSimulation(t *testing.T) {
128128
dynamicconfig.MatchingPartitionUpscaleSustainedDuration: clusterConfig.MatchingConfig.SimulationConfig.PartitionUpscaleSustainedDuration,
129129
dynamicconfig.MatchingPartitionDownscaleSustainedDuration: clusterConfig.MatchingConfig.SimulationConfig.PartitionDownscaleSustainedDuration,
130130
dynamicconfig.MatchingAdaptiveScalerUpdateInterval: clusterConfig.MatchingConfig.SimulationConfig.AdaptiveScalerUpdateInterval,
131-
dynamicconfig.MatchingQPSTrackerInterval: clusterConfig.MatchingConfig.SimulationConfig.QPSTrackerInterval,
131+
dynamicconfig.MatchingQPSTrackerInterval: getQpsTrackerInterval(clusterConfig.MatchingConfig.SimulationConfig.QPSTrackerInterval),
132132
dynamicconfig.TaskIsolationDuration: clusterConfig.MatchingConfig.SimulationConfig.TaskIsolationDuration,
133133
}
134134

@@ -426,6 +426,7 @@ func (s *MatchingSimulationSuite) poll(
426426
Name: tasklist,
427427
Kind: types.TaskListKindNormal.Ptr(),
428428
},
429+
Identity: pollerID,
429430
},
430431
IsolationGroup: pollerConfig.getIsolationGroup(),
431432
})
@@ -672,6 +673,13 @@ func getPartitionTaskListName(root string, partition int) string {
672673
return fmt.Sprintf("%v%v/%v", common.ReservedTaskListPrefix, root, partition)
673674
}
674675

676+
func getQpsTrackerInterval(duration time.Duration) time.Duration {
677+
if duration == 0 {
678+
return 10 * time.Second
679+
}
680+
return duration
681+
}
682+
675683
func randomlyPickKey(weights map[string]int) string {
676684
// Calculate the total weight
677685
totalWeight := 0

host/testdata/matching_simulation_zonal_isolation_few_pollers.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ matchingconfig:
1717
localpollwaittime: 10ms
1818
localtaskwaittime: 10ms
1919
taskisolationduration: 1s
20+
tasklistloadbalancerstrategy: isolation
2021
tasks:
2122
- numtaskgenerators: 30
2223
taskspersecond: 500

host/testdata/matching_simulation_zonal_isolation_many_pollers.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ matchingconfig:
1717
localpollwaittime: 10ms
1818
localtaskwaittime: 10ms
1919
taskisolationduration: 1s
20+
tasklistloadbalancerstrategy: isolation
2021
tasks:
2122
- numtaskgenerators: 30
2223
taskspersecond: 500

host/testdata/matching_simulation_zonal_isolation_single_partition.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ matchingconfig:
1717
localpollwaittime: 10ms
1818
localtaskwaittime: 10ms
1919
taskisolationduration: 1s
20+
tasklistloadbalancerstrategy: isolation
2021
tasks:
2122
- numtaskgenerators: 30
2223
taskspersecond: 500

host/testdata/matching_simulation_zonal_isolation_skew.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ matchingconfig:
1717
localpollwaittime: 10ms
1818
localtaskwaittime: 10ms
1919
taskisolationduration: 1s
20+
tasklistloadbalancerstrategy: isolation
2021
tasks:
2122
- numtaskgenerators: 10
2223
taskspersecond: 180

host/testdata/matching_simulation_zonal_isolation_skew_extreme.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ matchingconfig:
1717
localpollwaittime: 10ms
1818
localtaskwaittime: 10ms
1919
taskisolationduration: 1s
20+
tasklistloadbalancerstrategy: isolation
2021
tasks:
2122
- numtaskgenerators: 3
2223
taskspersecond: 50

host/testdata/matching_simulation_zonal_isolation_skew_forwarding.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ matchingconfig:
1717
localpollwaittime: 10ms
1818
localtaskwaittime: 10ms
1919
taskisolationduration: 1s
20+
tasklistloadbalancerstrategy: isolation
2021
tasks:
2122
- numtaskgenerators: 10
2223
taskspersecond: 180

0 commit comments

Comments
 (0)