58
}()
59
61
>
rawHistory, size, nextToken, err := persistence.ReadFullPageRawEvents(
62
>
ctx, shardContext.GetExecutionManager(),
63
>
&persistence.ReadHistoryBranchRequest{
64
>
BranchToken: branchToken,
65
>
MinEventID: firstEventID,
66
>
MaxEventID: nextEventID,
67
>
PageSize: int(pageSize),
68
>
NextPageToken: token,
69
>
ShardID: shardContext.GetShardID(),
70
>
},
71
>
)
72
>
73
>
if err != nil {
74
return nil, nil, err
75
}
76
78
>
var lastEventID int64
79
>
for _, blob := range rawHistory {
80
>
events, err := shardContext.GetPayloadSerializer().DeserializeStrippedEvents(blob)
81
>
if err != nil {
82
return nil, nil, err
83
}
84
>
err = persistence.ValidateBatch(events, branchToken, lastEventID, logger)
get_history_util.go
85
>
if err != nil {
86
return nil, nil, err
87
}
89
>
lastEventID = events[len(events)-1].GetEventId()
90
}
92
>
if len(allEvents) > 0 {
93
>
firstEvent = allEvents[0]
94
>
lastEvent = allEvents[len(allEvents)-1]
95
>
}
96
>
if err = VerifyHistoryIsComplete(
97
>
logger,
98
>
firstEvent,
99
>
lastEvent,
100
>
len(allEvents),
101
>
firstEventID,
102
>
nextEventID-1,
103
>
len(token) == 0,
104
>
len(nextToken) == 0,
105
>
int(pageSize),
106
>
); err != nil {
107
metricsHandler := interceptor.GetMetricsHandlerFromContext(ctx, logger).WithTags(metrics.OperationTag(metrics.HistoryGetHistoryScope))
108
metrics.ServiceErrIncompleteHistoryCounter.With(metricsHandler).Record(1)