eth/downloader: fix mutex regression causing panics on fail (#3591)
This commit is contained in:
parent
f087c66f95
commit
ebc3d232f4
@ -1129,12 +1129,13 @@ func (q *queue) deliverNodeData(results []trie.SyncResult, callback func(int, bo
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
q.stateSchedLock.Unlock()
|
q.stateSchedLock.Unlock()
|
||||||
callback(i, progressed, err)
|
callback(i, progressed, err)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
if err = batch.Write(); err != nil {
|
if err = batch.Write(); err != nil {
|
||||||
q.stateSchedLock.Unlock()
|
q.stateSchedLock.Unlock()
|
||||||
callback(i, progressed, err)
|
callback(i, progressed, err)
|
||||||
|
return // TODO(karalabe): If a DB write fails (disk full), we ought to cancel the sync
|
||||||
}
|
}
|
||||||
|
|
||||||
// Item processing succeeded, release the lock (temporarily)
|
// Item processing succeeded, release the lock (temporarily)
|
||||||
progressed = progressed || prog
|
progressed = progressed || prog
|
||||||
q.stateSchedLock.Unlock()
|
q.stateSchedLock.Unlock()
|
||||||
|
Loading…
Reference in New Issue
Block a user