509
resetRunID string,
510
resetRequestID string,
512
>
513
>
resetBranchToken, err := r.forkAndGenerateBranchToken(
514
>
ctx,
515
>
namespaceID,
516
>
workflowID,
517
>
baseBranchToken,
518
>
baseRebuildLastEventID+1,
519
>
resetRunID,
520
>
)
521
>
if err != nil {
522
return nil, err
523
}
524
526
>
r.shardContext.GetConfig(),
527
>
definition.NewWorkflowKey(
528
>
namespaceID.String(),
529
>
workflowID,
530
>
resetRunID,
531
>
),
532
>
chasm.WorkflowArchetypeID,
533
>
r.logger,
534
>
r.shardContext.GetLogger(),
535
>
r.shardContext.GetMetricsHandler(),
536
>
)
537
>
538
>
resetMutableState, resetStats, err := r.stateRebuilder.Rebuild(
539
>
ctx,
540
>
r.shardContext.GetTimeSource().Now(),
541
>
definition.NewWorkflowKey(
542
>
namespaceID.String(),
543
>
workflowID,
544
>
baseRunID,
545
>
),
546
>
baseBranchToken,
547
>
baseRebuildLastEventID,
548
>
new(baseRebuildLastEventVersion),
549
>
definition.NewWorkflowKey(
550
>
namespaceID.String(),
551
>
workflowID,
552
>
resetRunID,
553
>
),
554
>
resetBranchToken,
555
>
resetRequestID,
556
>
)
557
>
if err != nil {
558
return nil, err
559
}
560
562
>
baseRunID,
563
>
baseRebuildLastEventID,
564
>
baseRebuildLastEventVersion,
565
>
)
566
>
resetMutableState.AddHistorySize(resetStats.HistorySize)
567
>
resetMutableState.AddExternalPayloadSize(resetStats.ExternalPayloadSize)
568
>
resetMutableState.AddExternalPayloadCount(resetStats.ExternalPayloadCount)
569
>
return NewWorkflow(
570
>
r.clusterMetadata,
571
>
resetContext,
572
>
resetMutableState,
573
>
wcache.NoopReleaseFn,
574
>
), nil
575
}
576