Skip to content

Validate build hash in handshake#65732

Merged
DaveCTurner merged 2 commits intoelastic:masterfrom
DaveCTurner:2020-12-02-validate-build-hash-in-handshake-master
Dec 2, 2020
Merged

Validate build hash in handshake#65732
DaveCTurner merged 2 commits intoelastic:masterfrom
DaveCTurner:2020-12-02-validate-build-hash-in-handshake-master

Conversation

@DaveCTurner
Copy link
Copy Markdown
Member

There is no guarantee of wire compatibility between nodes running
different builds of the same version, but today we do not validate
whether two communicating nodes are compatible or not. This results in
confusing failures that look like serialization bugs, and it usually
takes nontrivial effort to determine that the failure is in fact due to
the user running incompatible builds.

This commit adds the build hash to the transport service handshake and
validates that matching versions have matching build hashes.

Closes #65249

There is no guarantee of wire compatibility between nodes running
different builds of the same version, but today we do not validate
whether two communicating nodes are compatible or not. This results in
confusing failures that look like serialization bugs, and it usually
takes nontrivial effort to determine that the failure is in fact due to
the user running incompatible builds.

This commit adds the build hash to the transport service handshake and
validates that matching versions have matching build hashes.

Closes elastic#65249
@DaveCTurner DaveCTurner added >enhancement :Distributed/Network Http and internode communication implementations v8.0.0 v7.11.0 labels Dec 2, 2020
@elasticmachine elasticmachine added the Team:Distributed Meta label for distributed team. label Dec 2, 2020
@elasticmachine
Copy link
Copy Markdown
Collaborator

Pinging @elastic/es-distributed (Team:Distributed)

@DaveCTurner
Copy link
Copy Markdown
Member Author

This is a forward-port of #65601 with the stuff about the transport client removed -- see #65601 for reviews.

@DaveCTurner DaveCTurner merged commit aba2f3e into elastic:master Dec 2, 2020
@DaveCTurner DaveCTurner deleted the 2020-12-02-validate-build-hash-in-handshake-master branch December 2, 2020 13:08
DaveCTurner added a commit that referenced this pull request Dec 2, 2020
DaveCTurner added a commit that referenced this pull request Dec 2, 2020
There is no guarantee of wire compatibility between nodes running
different builds of the same version, but today we do not validate
whether two communicating nodes are compatible or not. This results in
confusing failures that look like serialization bugs, and it usually
takes nontrivial effort to determine that the failure is in fact due to
the user running incompatible builds.

This commit adds the build hash to the transport service handshake and
validates that matching versions have matching build hashes.

Closes #65249
Backport of #65732
DaveCTurner added a commit to DaveCTurner/elasticsearch that referenced this pull request Dec 2, 2020
DaveCTurner added a commit that referenced this pull request Dec 2, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

:Distributed/Network Http and internode communication implementations >enhancement Team:Distributed Meta label for distributed team. v7.11.0 v8.0.0-alpha1

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Validate build hash of joining node

3 participants