Skip to content

Commit d4d3b18

Browse files
committed
add(exporter): expand el payload exporter logging
1 parent 9f77294 commit d4d3b18

File tree

1 file changed

+25
-7
lines changed

1 file changed

+25
-7
lines changed

backend/pkg/exporter/modules/execution_payloads_exporter.go

Lines changed: 25 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ func (d *executionPayloadsExporter) maintainTable() (err error) {
100100
blockChan := make(chan *types.Eth1BlockIndexed, 1000)
101101
type Result struct {
102102
BlockHash []byte
103+
BlockNumber uint64
103104
FeeRecipientReward decimal.Decimal
104105
}
105106
resData := make([]Result, 0, maxBlock-minBlock+1)
@@ -138,7 +139,7 @@ func (d *executionPayloadsExporter) maintainTable() (err error) {
138139
if err != nil {
139140
return fmt.Errorf("error converting tx reward to decimal for block %v: %w", block.Number, err)
140141
}
141-
resData = append(resData, Result{BlockHash: hash, FeeRecipientReward: dec})
142+
resData = append(resData, Result{BlockHash: hash, FeeRecipientReward: dec, BlockNumber: block.Number})
142143
}
143144
})
144145

@@ -156,23 +157,40 @@ func (d *executionPayloadsExporter) maintainTable() (err error) {
156157
return fmt.Errorf("error processing blocks: %w", err)
157158
}
158159
// sanity checks: check if any block hashes are 0x0000000000000000000000000000000000000000000000000000000000000000 or duplicate, check if count matches expected
159-
if uint64(len(resData)) != maxBlock-minBlock+1 {
160-
return fmt.Errorf("error processing blocks: expected %v blocks, got %v", maxBlock-minBlock+1, len(resData))
161-
}
162160
seen := make(map[string]bool)
163161
emptyBlockHash := bytes.Repeat([]byte{0}, 32)
162+
err = error(nil)
163+
counter := 0
164164
for _, r := range resData {
165+
if counter > 25 {
166+
err = fmt.Errorf("too many errors, aborting")
167+
log.Error(err, "error processing blocks", 0)
168+
break
169+
}
165170
if len(r.BlockHash) == 0 {
166-
return fmt.Errorf("error processing blocks: block hash is empty")
171+
err = fmt.Errorf("error processing blocks: block hash is empty, block number: %v", r.BlockNumber)
172+
log.Error(err, "error processing blocks", 0)
173+
counter++
167174
}
168175
if bytes.Equal(r.BlockHash, emptyBlockHash) {
169-
return fmt.Errorf("error processing blocks: block hash is all zeros")
176+
err = fmt.Errorf("error processing blocks: block hash is all zeros, block number: %v", r.BlockNumber)
177+
log.Error(err, "error processing blocks", 0)
178+
counter++
170179
}
171180
if _, ok := seen[string(r.BlockHash)]; ok {
172-
return fmt.Errorf("error processing blocks: duplicate block hash")
181+
err = fmt.Errorf("error processing blocks: duplicate block hash, block number: %v", r.BlockNumber)
182+
log.Error(err, "error processing blocks", 0)
183+
counter++
173184
}
174185
seen[string(r.BlockHash)] = true
175186
}
187+
if err != nil {
188+
return err
189+
}
190+
191+
if uint64(len(resData)) != maxBlock-minBlock+1 {
192+
return fmt.Errorf("error processing blocks: expected %v blocks, got %v", maxBlock-minBlock+1, len(resData))
193+
}
176194

177195
// update the execution_payloads table
178196
log.Infof("preparing copy update to temp table")

0 commit comments

Comments
 (0)