v0.31.5 changelog and version updates#3568
Conversation
Merge v0.31.3 to master
Merge master to develop
* [adr] Peer behaviour adr updates * [docs] fix Behaved function signature * [adr] typo fix in code example
What happened: New code was supposed to fall back to last height changed when/if it failed to find validators at checkpoint height (to make release non-breaking). But because we did not check if validator set is empty, the fall back logic was never executed => resulting in LoadValidators returning an empty validator set for cases where `lastStoredHeight` is checkpoint height (i.e. almost all heights if the application does not change validator set often). How it was found: one of our users - @sunboshan reported a bug here #3537 (comment) * use last height changed in validator set is empty * add a changelog entry
Fixes #3457 The topic of the issue is that : write a BlockRequest int requestsCh channel will create an timer at the same time that stop the peer 15s later if no block have been received . But pop a BlockRequest from requestsCh and send it out may delay more than 15s later. So that the peer will be stopped for error("send nothing to us"). Extracting requestsCh into its own goroutine can make sure that every BlockRequest been handled timely. Instead of the requestsCh handling, we should probably pull the didProcessCh handling in a separate go routine since this is the one "starving" the other channel handlers. I believe the way it is right now, we still have issues with high delays in errorsCh handling that might cause sending requests to invalid/ disconnected peers.
Codecov Report
@@ Coverage Diff @@
## v0.31 #3568 +/- ##
==========================================
- Coverage 64.28% 64.04% -0.25%
==========================================
Files 213 213
Lines 17374 17381 +7
==========================================
- Hits 11169 11131 -38
- Misses 5286 5317 +31
- Partials 919 933 +14
|
| *April 16th, 2019* | ||
|
|
||
| This release fixes a regression from v0.31.4 where, in existing chains that | ||
| were upgraded, `/validators` could return an empty validator set. This is true |
There was a problem hiding this comment.
Suggestion:
"This release fixes a regression from v0.31.4 where, in existing chains that
were upgraded, querying /validators via RPC could return an empty validator set.
This happened for almost all heights, given the validator set remained the same."
?
There was a problem hiding this comment.
I like my version better :) I'll let @ebuchman be the judge
There was a problem hiding this comment.
Ismail's is defntly clearer that this is about the RPC endpoint, though we often refer to /xxx and expect the reader to know we're talking about the RPC.
There was a problem hiding this comment.
Thanks @melekes 🙌 I left a few nits and suggestions regarding the changelog.
Note: the last two releases were prepared and directly based on (and later merged to) the release branch v0.31. The changes in the changelog got to develop by merging back from v0.31.
I would suggest to stick with this procedure for now and base this on the release branch. We can discuss pros and cons and what works best in the future offline (especially, when we finally get rid of one of the branches, master, develop).
Co-Authored-By: melekes <anton.kalyaev@gmail.com>
https://github.com/tendermint/tendermint/blob/4474a5ec70fad39d78b28a543d72c25715bfca84/CHANGELOG.md#v0315