Skip to content

Commit 567e55b

Browse files
committed
downloader: Propagate errors
1 parent f298c2f commit 567e55b

File tree

5 files changed

+26
-12
lines changed

5 files changed

+26
-12
lines changed

core/types/block.go

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -105,12 +105,18 @@ func (h *Header) SanityCheck() error {
105105

106106
// EmptyBody returns true if there is no additional 'body' to complete the header
107107
// that is: no transactions.
108-
func (h *Header) EmptyBody() bool {
109-
if extra, err := h.IstanbulExtra(); err == nil && extra != nil {
110-
return false
108+
func (h *Header) EmptyBody() (bool, error) {
109+
extra, err := h.IstanbulExtra()
110+
111+
if err != nil {
112+
return false, err
113+
}
114+
115+
if extra != nil {
116+
return false, nil
111117
}
112118

113-
return h.TxHash == EmptyRootHash
119+
return h.TxHash == EmptyRootHash, nil
114120
}
115121

116122
// EmptyReceipts returns true if there are no receipts for this header/block.

eth/downloader/queue.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,17 +71,21 @@ type fetchResult struct {
7171
EpochSnarkData *types.EpochSnarkData
7272
}
7373

74-
func newFetchResult(header *types.Header, fastSync bool) *fetchResult {
74+
func newFetchResult(header *types.Header, fastSync bool) (*fetchResult, error) {
7575
item := &fetchResult{
7676
Header: header,
7777
}
78-
if !header.EmptyBody() {
78+
emptyBody, err := header.EmptyBody()
79+
if err != nil {
80+
return nil, err
81+
}
82+
if !emptyBody {
7983
item.pending |= (1 << bodyType)
8084
}
8185
if fastSync && !header.EmptyReceipts() {
8286
item.pending |= (1 << receiptType)
8387
}
84-
return item
88+
return item, nil
8589
}
8690

8791
// SetBodyDone flags the body as finished.

eth/downloader/resultstore.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ func (r *resultStore) AddFetch(header *types.Header, fastSync bool) (stale, thro
8585
return stale, throttled, item, err
8686
}
8787
if item == nil {
88-
item = newFetchResult(header, fastSync)
88+
item, err = newFetchResult(header, fastSync)
8989
r.items[index] = item
9090
}
9191
return stale, throttled, item, err

les/downloader/queue.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,17 +71,21 @@ type fetchResult struct {
7171
EpochSnarkData *types.EpochSnarkData
7272
}
7373

74-
func newFetchResult(header *types.Header, fastSync bool) *fetchResult {
74+
func newFetchResult(header *types.Header, fastSync bool) (*fetchResult, error) {
7575
item := &fetchResult{
7676
Header: header,
7777
}
78-
if !header.EmptyBody() {
78+
emptyBody, err := header.EmptyBody()
79+
if err != nil {
80+
return nil, err
81+
}
82+
if !emptyBody {
7983
item.pending |= (1 << bodyType)
8084
}
8185
if fastSync && !header.EmptyReceipts() {
8286
item.pending |= (1 << receiptType)
8387
}
84-
return item
88+
return item, nil
8589
}
8690

8791
// SetBodyDone flags the body as finished.

les/downloader/resultstore.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ func (r *resultStore) AddFetch(header *types.Header, fastSync bool) (stale, thro
8585
return stale, throttled, item, err
8686
}
8787
if item == nil {
88-
item = newFetchResult(header, fastSync)
88+
item, err = newFetchResult(header, fastSync)
8989
r.items[index] = item
9090
}
9191
return stale, throttled, item, err

0 commit comments

Comments
 (0)