1dabdd9a20
Today a transport response uses the same wire format version as the corresponding request. This mostly works since we mostly know we are communicating with a node with a compatible version. TCP handshakes don't have this guarantee since they use `Version.CURRENT.minimumCompatibilityVersion()` to let us handshake with older nodes. This results in the strange situation of a node of major version `N` responding to a node of major version `N-1` using a wire format of version `N-2`. We put extra effort into the longer BWC requirements for successful responses, but we do not offer the same guarantees for error responses since they may be rather complicated to serialize. This can result in the request sender misinterpreting the response which may have unpredictable consequences. Rather than strengthening the guarantees in this area, this commit simply logs the exception and closes the connection on a handshake error with a node that uses an incompatible wire format. Closes #54337 |
||
---|---|---|
.. | ||
licenses | ||
src | ||
build.gradle |