Compare commits

...

2 Commits

Author SHA1 Message Date
nisdas
b67b3aae0b add payload id logging 2023-09-21 18:00:48 +08:00
nisdas
7728a352a7 fix it 2023-09-21 08:10:56 +08:00
4 changed files with 26 additions and 0 deletions

View File

@@ -15,6 +15,9 @@ func StartAndEndPage(pageToken string, pageSize, totalSize int) (int, int, strin
if pageToken == "" { if pageToken == "" {
pageToken = "0" pageToken = "0"
} }
if pageSize < 0 || totalSize < 0 {
return 0, 0, "", errors.Errorf("invalid page and total sizes provided: page size %d , total size %d", pageSize, totalSize)
}
if pageSize == 0 { if pageSize == 0 {
pageSize = params.BeaconConfig().DefaultPageSize pageSize = params.BeaconConfig().DefaultPageSize
} }
@@ -23,6 +26,9 @@ func StartAndEndPage(pageToken string, pageSize, totalSize int) (int, int, strin
if err != nil { if err != nil {
return 0, 0, "", errors.Wrap(err, "could not convert page token") return 0, 0, "", errors.Wrap(err, "could not convert page token")
} }
if token < 0 {
return 0, 0, "", errors.Errorf("invalid token value provided: %d", token)
}
// Start page can not be greater than set size. // Start page can not be greater than set size.
start := token * pageSize start := token * pageSize

View File

@@ -85,3 +85,19 @@ func TestStartAndEndPage_ExceedsMaxPage(t *testing.T) {
_, _, _, err := pagination.StartAndEndPage("", 0, 0) _, _, _, err := pagination.StartAndEndPage("", 0, 0)
assert.ErrorContains(t, wanted, err) assert.ErrorContains(t, wanted, err)
} }
func TestStartAndEndPage_InvalidPageValues(t *testing.T) {
_, _, _, err := pagination.StartAndEndPage("10", -1, 10)
assert.ErrorContains(t, "invalid page and total sizes provided", err)
_, _, _, err = pagination.StartAndEndPage("12", 10, -10)
assert.ErrorContains(t, "invalid page and total sizes provided", err)
_, _, _, err = pagination.StartAndEndPage("12", -50, -60)
assert.ErrorContains(t, "invalid page and total sizes provided", err)
}
func TestStartAndEndPage_InvalidTokenValue(t *testing.T) {
_, _, _, err := pagination.StartAndEndPage("-12", 50, 60)
assert.ErrorContains(t, "invalid token value provided", err)
}

View File

@@ -157,6 +157,7 @@ func (s *Service) notifyForkchoiceUpdate(ctx context.Context, arg *notifyForkcho
if hasAttr && payloadID != nil { if hasAttr && payloadID != nil {
var pId [8]byte var pId [8]byte
copy(pId[:], payloadID[:]) copy(pId[:], payloadID[:])
logrus.Infof("Setting payload id for slot %d , index %d and headroot %#x", nextSlot, proposerId, arg.headRoot)
s.cfg.ProposerSlotIndexCache.SetProposerAndPayloadIDs(nextSlot, proposerId, pId, arg.headRoot) s.cfg.ProposerSlotIndexCache.SetProposerAndPayloadIDs(nextSlot, proposerId, pId, arg.headRoot)
} else if hasAttr && payloadID == nil && !features.Get().PrepareAllPayloads { } else if hasAttr && payloadID == nil && !features.Get().PrepareAllPayloads {
log.WithFields(logrus.Fields{ log.WithFields(logrus.Fields{
@@ -323,6 +324,7 @@ func (s *Service) getPayloadAttribute(ctx context.Context, st state.BeaconState,
log.WithError(err).Error("Could not get timestamp to get payload attribute") log.WithError(err).Error("Could not get timestamp to get payload attribute")
return false, emptyAttri, 0 return false, emptyAttri, 0
} }
log.Infof("payload attribute exists for index %d at slot %d with head root %#x", proposerID, slot, headRoot)
var attr payloadattribute.Attributer var attr payloadattribute.Attributer
switch st.Version() { switch st.Version() {

View File

@@ -184,11 +184,13 @@ func (vs *Server) duties(ctx context.Context, req *ethpb.DutiesRequest) (*ethpb.
} }
// Cache proposer assignment for the current epoch. // Cache proposer assignment for the current epoch.
for _, slot := range proposerIndexToSlots[idx] { for _, slot := range proposerIndexToSlots[idx] {
log.Infof("Setting payload id for slot %d , index %d in the current epoch", slot, idx)
// Head root is empty because it can't be known until slot - 1. Same with payload id. // Head root is empty because it can't be known until slot - 1. Same with payload id.
vs.ProposerSlotIndexCache.SetProposerAndPayloadIDs(slot, idx, [8]byte{} /* payloadID */, [32]byte{} /* head root */) vs.ProposerSlotIndexCache.SetProposerAndPayloadIDs(slot, idx, [8]byte{} /* payloadID */, [32]byte{} /* head root */)
} }
// Cache proposer assignment for the next epoch. // Cache proposer assignment for the next epoch.
for _, slot := range nextProposerIndexToSlots[idx] { for _, slot := range nextProposerIndexToSlots[idx] {
log.Infof("Setting payload id for slot %d , index %d in the next epoch", slot, idx)
vs.ProposerSlotIndexCache.SetProposerAndPayloadIDs(slot, idx, [8]byte{} /* payloadID */, [32]byte{} /* head root */) vs.ProposerSlotIndexCache.SetProposerAndPayloadIDs(slot, idx, [8]byte{} /* payloadID */, [32]byte{} /* head root */)
} }
// Prune payload ID cache for any slots before request slot. // Prune payload ID cache for any slots before request slot.