bsc/les
Felföldi Zsolt 25982375a8 les: fix retriever logic (#16776)
This PR fixes a retriever logic bug. When a peer had a soft timeout
and then a response arrived, it always assumed it was the same peer
even though it could have been a later requested one that did not time
out at all yet. In this case the logic went to an illegal state and
deadlocked, causing a goroutine leak.

Fixes #16243 and replaces #16359.
Thanks to @riceke for finding the bug in the logic.
2018-06-12 15:58:47 +02:00
..
flowcontrol les: fix megacheck warnings (#14941) 2017-08-08 19:31:08 +03:00
api_backend.go core, eth: minor txpool event cleanups 2018-05-18 12:08:24 +03:00
backend.go les: pass server pool to protocol manager (#16947) 2018-06-12 14:00:52 +03:00
bloombits.go build: enable goimports and varcheck linters (#16446) 2018-04-18 00:53:50 +02:00
distributor_test.go les: changed if-else blocks to conform with golint (#16658) 2018-05-03 11:35:06 +03:00
distributor.go all: gofmt -w -s (#15419) 2017-11-08 11:45:52 +01:00
execqueue_test.go les: fix goroutine leak in execQueue (#14480) 2017-05-16 20:56:02 +02:00
execqueue.go les: fix goroutine leak in execQueue (#14480) 2017-05-16 20:56:02 +02:00
fetcher.go core/rawdb: separate raw database access to own package (#16666) 2018-05-07 14:35:06 +03:00
handler_test.go all: get rid of error when creating memory database (#16716) 2018-05-09 15:24:25 +03:00
handler.go core, eth, les: more efficient hash-based header chain retrieval (#16946) 2018-06-12 16:52:54 +03:00
helper_test.go les: pass server pool to protocol manager (#16947) 2018-06-12 14:00:52 +03:00
metrics.go metrics: pull library and introduce ResettingTimer and InfluxDB reporter (#15910) 2018-02-23 11:56:08 +02:00
odr_requests.go trie: fixes to comply with golint (#16771) 2018-05-21 23:41:31 +03:00
odr_test.go all: get rid of error when creating memory database (#16716) 2018-05-09 15:24:25 +03:00
odr.go all: gofmt -w -s (#15419) 2017-11-08 11:45:52 +01:00
peer.go les: add ps.lock.Unlock() before return (#16360) 2018-04-11 11:02:33 +03:00
protocol.go core/rawdb: separate raw database access to own package (#16666) 2018-05-07 14:35:06 +03:00
randselect_test.go all: gofmt -w -s 2017-01-06 15:52:03 +01:00
randselect.go les: changed if-else blocks to conform with golint (#16658) 2018-05-03 11:35:06 +03:00
request_test.go all: get rid of error when creating memory database (#16716) 2018-05-09 15:24:25 +03:00
retrieve.go les: fix retriever logic (#16776) 2018-06-12 15:58:47 +02:00
server.go les: pass server pool to protocol manager (#16947) 2018-06-12 14:00:52 +03:00
serverpool.go les: changed if-else blocks to conform with golint (#16658) 2018-05-03 11:35:06 +03:00
sync.go core/rawdb: separate raw database access to own package (#16666) 2018-05-07 14:35:06 +03:00
txrelay.go les: code refactoring (#14416) 2017-06-21 12:27:38 +02:00