mirror of
https://github.com/fluencelabs/tendermint
synced 2025-07-22 15:51:57 +00:00
Compare commits
8 Commits
josef/chec
...
v0.31
Author | SHA1 | Date | |
---|---|---|---|
|
cb7aea79db | ||
|
bb9ee2ca28 | ||
|
fe54b3323c | ||
|
7924c76815 | ||
|
e2775ba0e3 | ||
|
8fb2c2a0e8 | ||
|
65a3dfe235 | ||
|
77e711f70b |
27
CHANGELOG.md
27
CHANGELOG.md
@@ -1,5 +1,32 @@
|
||||
# Changelog
|
||||
|
||||
*July 29, 2019*
|
||||
|
||||
This releases fixes one bug in the PEX reactor and adds a `recover` to the Go's
|
||||
ABCI server, which allows it to properly cleanup.
|
||||
|
||||
### IMPROVEMENTS:
|
||||
- [abci] \#3809 Recover from application panics in `server/socket_server.go` to allow socket cleanup (@ruseinov)
|
||||
|
||||
### BUG FIXES:
|
||||
- [p2p] \#3338 Prevent "sent next PEX request too soon" errors by not calling
|
||||
ensurePeers outside of ensurePeersRoutine
|
||||
|
||||
## v0.31.7
|
||||
|
||||
*June 3, 2019*
|
||||
|
||||
This releases fixes a regression in the mempool introduced in v0.31.6.
|
||||
The regression caused the invalid committed txs to be proposed in blocks over and
|
||||
over again.
|
||||
|
||||
### BUG FIXES:
|
||||
- [mempool] \#3699 Remove all committed txs from the mempool.
|
||||
This reverts the change from v0.31.6 where we only remove valid txs from the mempool.
|
||||
Note this means malicious proposals can cause txs to be dropped from the
|
||||
mempools of other nodes by including them in blocks before they are valid.
|
||||
See \#3322.
|
||||
|
||||
## v0.31.6
|
||||
|
||||
*May 31st, 2019*
|
||||
|
@@ -1,4 +1,4 @@
|
||||
## v0.31.7
|
||||
## v0.31.8
|
||||
|
||||
**
|
||||
|
||||
@@ -19,5 +19,3 @@
|
||||
### IMPROVEMENTS:
|
||||
|
||||
### BUG FIXES:
|
||||
- [mempool] \#3699 Revert the change where we only remove valid transactions
|
||||
from the mempool once a block is committed.
|
||||
|
@@ -146,6 +146,16 @@ func (s *SocketServer) waitForClose(closeConn chan error, connID int) {
|
||||
func (s *SocketServer) handleRequests(closeConn chan error, conn net.Conn, responses chan<- *types.Response) {
|
||||
var count int
|
||||
var bufReader = bufio.NewReader(conn)
|
||||
|
||||
defer func() {
|
||||
// make sure to recover from any app-related panics to allow proper socket cleanup
|
||||
r := recover()
|
||||
if r != nil {
|
||||
closeConn <- fmt.Errorf("recovered from panic: %v", r)
|
||||
s.appMtx.Unlock()
|
||||
}
|
||||
}()
|
||||
|
||||
for {
|
||||
|
||||
var req = &types.Request{}
|
||||
@@ -154,7 +164,7 @@ func (s *SocketServer) handleRequests(closeConn chan error, conn net.Conn, respo
|
||||
if err == io.EOF {
|
||||
closeConn <- err
|
||||
} else {
|
||||
closeConn <- fmt.Errorf("Error reading message: %v", err.Error())
|
||||
closeConn <- fmt.Errorf("error reading message: %v", err)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
@@ -340,6 +340,15 @@ func (r *PEXReactor) ReceiveAddrs(addrs []*p2p.NetAddress, src Peer) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
srcIsSeed := false
|
||||
for _, seedAddr := range r.seedAddrs {
|
||||
if seedAddr.Equals(srcAddr) {
|
||||
srcIsSeed = true
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
for _, netAddr := range addrs {
|
||||
// Validate netAddr. Disconnect from a peer if it sends us invalid data.
|
||||
if netAddr == nil {
|
||||
@@ -365,13 +374,23 @@ func (r *PEXReactor) ReceiveAddrs(addrs []*p2p.NetAddress, src Peer) error {
|
||||
}
|
||||
|
||||
// If this address came from a seed node, try to connect to it without
|
||||
// waiting.
|
||||
for _, seedAddr := range r.seedAddrs {
|
||||
if seedAddr.Equals(srcAddr) {
|
||||
r.ensurePeers()
|
||||
}
|
||||
// waiting (#2093)
|
||||
if srcIsSeed {
|
||||
r.Logger.Info("Will dial address, which came from seed", "addr", netAddr, "seed", srcAddr)
|
||||
go func(addr *p2p.NetAddress) {
|
||||
err := r.dialPeer(addr)
|
||||
if err != nil {
|
||||
switch err.(type) {
|
||||
case errMaxAttemptsToDial, errTooEarlyToDial:
|
||||
r.Logger.Debug(err.Error(), "addr", addr)
|
||||
default:
|
||||
r.Logger.Error(err.Error(), "addr", addr)
|
||||
}
|
||||
}
|
||||
}(netAddr)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
|
@@ -20,7 +20,7 @@ const (
|
||||
// Must be a string because scripts like dist.sh read this file.
|
||||
// XXX: Don't change the name of this variable or you will break
|
||||
// automation :)
|
||||
TMCoreSemVer = "0.31.5"
|
||||
TMCoreSemVer = "0.31.8"
|
||||
|
||||
// ABCISemVer is the semantic version of the ABCI library
|
||||
ABCISemVer = "0.16.0"
|
||||
|
Reference in New Issue
Block a user