249
return nil
250
252
>
metrics.ClientRequests.With(e.metricsHandler).Record(
253
>
1,
254
>
metrics.OperationTag(metrics.HistoryRereplicationByHistoryReplicationScope),
255
>
metrics.NamespaceTag(namespaceName.String()),
256
>
metrics.ServiceRoleTag(metrics.HistoryRoleTagValue),
257
>
)
258
>
startTime := time.Now().UTC()
259
>
defer func() {
260
>
metrics.ClientLatency.With(e.metricsHandler).Record(
261
>
time.Since(startTime),
262
>
metrics.OperationTag(metrics.HistoryRereplicationByHistoryReplicationScope),
263
>
metrics.NamespaceTag(namespaceName.String()),
264
>
metrics.ServiceRoleTag(metrics.HistoryRoleTagValue),
265
>
)
266
>
}()
267
>
resendErr := e.resend(
268
>
ctx,
269
>
e.remoteCluster,
270
>
namespace.ID(retryErr.NamespaceId),
271
>
retryErr.WorkflowId,
272
>
retryErr.RunId,
273
>
retryErr.StartEventId,
274
>
retryErr.StartEventVersion,
275
>
retryErr.EndEventId,
276
>
retryErr.EndEventVersion,
277
>
)
278
>
switch resendErr.(type) {
279
case *serviceerror.NotFound:
280
// workflow is not found in source cluster, cleanup workflow in target cluster
281
return e.cleanupWorkflowExecution(ctx, retryErr.NamespaceId, retryErr.WorkflowId, retryErr.RunId)
283
// no-op
284
default: