Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Nodes Info API does not include version qualifier for version #36859

Closed
tylersmalley opened this issue Dec 19, 2018 · 9 comments
Closed

Nodes Info API does not include version qualifier for version #36859

tylersmalley opened this issue Dec 19, 2018 · 9 comments
Labels
:Core/Infra/REST API REST infrastructure and utilities :Delivery/Build Build or test infrastructure Team:Core/Infra Meta label for core/infra team Team:Delivery Meta label for Delivery team

Comments

@tylersmalley
Copy link
Contributor

tylersmalley commented Dec 19, 2018

Elasticsearch version (bin/elasticsearch --version): 7.0.0-alpha2

Description of the problem including expected versus actual behavior:

Currently, the Nodes Info API excludes the qualifier which was used to build the release.

Related to the changes in #35172 cc: @atorok

Steps to reproduce:

  1. Use a build candidate of 7.0.0-alpha2 or a build created with a version qualifier -Dbuild.version_qualifier=foo
  2. Check nodes info API: http://localhost:9200/_nodes?filter_path=nodes.*.version&pretty

Provide logs (if relevant):

Response I am seeing:

{
  "nodes" : {
    "w50PwaNiRxO3HBqGidJGsw" : {
      "version" : "7.0.0"
    }
  }
}

Currently, this is causing an ES node mismatch warning in the Kibana logs when running Kibana 7.0.0-alpha2

log [18:07:06.989] [warning] You're running Kibana 7.0.0-alpha2 with some different versions of Elasticsearch. Update Kibana or Elasticsearch to the same version to prevent compatibility issues: v7.0.0 @ 127.0.0.1:9200 (127.0.0.1)

@tylersmalley tylersmalley changed the title Node info API does not include version qualifier for version Nodes Info API does not include version qualifier for version Dec 19, 2018
@elasticmachine
Copy link
Collaborator

Pinging @elastic/es-core-features

@colings86 colings86 added the :Data Management/Stats Statistics tracking and retrieval APIs label Dec 20, 2018
@elasticmachine
Copy link
Collaborator

Pinging @elastic/es-core-infra

@colings86 colings86 added :Delivery/Build Build or test infrastructure and removed :Data Management/Stats Statistics tracking and retrieval APIs labels Dec 20, 2018
@alpar-t
Copy link
Contributor

alpar-t commented Dec 24, 2018

I added the team-discuss label. When we read and write NodeInfo we only include the version ID which no longer purposefully include the build qualifier. That's why we did the changes in #35172 so that we don't have to change code in order to change the build qualifier. So there's now a version specific to the build which is a string and includes the qualifier, red from jar meta data, and there's the version class which only includes what matters from a bwc point of view. I'm not sure we should include the fully qualified version for the Nodes API as it's the Version class that encodes which nodes are compatible among their-self.
@jasontedor any thaughts ?

@danielmitterdorfer
Copy link
Member

We discussed this in this week's core/infra sync and decided to add a new field to the node stats API that provides the version including the qualifier as Kibana might want to show the full version to the user. Note that we do not provide any compatibility across pre-release versions (i.e. there are no guarantees that 7.0.0-alpha2 is compatible with 7.0.0-beta1) and it's only the version that is relevant for determining compatibility.

We did not settle on a name though for this new field and I think we should align / and /_nodes. For 7.0.0-alpha2 we see the following response in / (shortened):

{
  "version" : {
    "number" : "7.0.0-alpha2",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "a30e8c2",
    "build_date" : "2018-12-17T12:33:32.311168Z",
    "build_snapshot" : false,
    "lucene_version" : "8.0.0",
    "minimum_wire_compatibility_version" : "6.6.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  }
}

/_nodes shows:

{
  "nodes" : {
    "7mvHxWJDRHO2OSR7daP-FA" : {
      "version" : "7.0.0",
      "build_flavor" : "default",
      "build_type" : "tar",
      "build_hash" : "a30e8c2"
    }
  }
}

@rjernst rjernst added the Team:Core/Infra Meta label for core/infra team label May 4, 2020
@mark-vieira mark-vieira added Team:Delivery Meta label for Delivery team and removed Team:Core/Infra Meta label for core/infra team labels Nov 11, 2020
@mark-vieira mark-vieira added the :Core/Infra/REST API REST infrastructure and utilities label Jan 9, 2024
@mark-vieira
Copy link
Contributor

@rjernst do we have any plans to change the behavior of this endpoint?

@elasticsearchmachine elasticsearchmachine added the Team:Core/Infra Meta label for core/infra team label Jan 9, 2024
@elasticsearchmachine
Copy link
Collaborator

Pinging @elastic/es-core-infra (Team:Core/Infra)

@elasticsearchmachine
Copy link
Collaborator

Pinging @elastic/es-delivery (Team:Delivery)

@rjernst
Copy link
Member

rjernst commented Jan 10, 2024

We don't have any plans to make this change. It would be quite invasive on existing callers of the node info API. If we were to add it, it would be in a new field, but as noted earlier, we intentionally omit the qualifier since it should not be used for compatibility comparisons.

@mark-vieira
Copy link
Contributor

Sounds like this is not planned to change then so I'm closing this issue.

@mark-vieira mark-vieira closed this as not planned Won't fix, can't repro, duplicate, stale Jan 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
:Core/Infra/REST API REST infrastructure and utilities :Delivery/Build Build or test infrastructure Team:Core/Infra Meta label for core/infra team Team:Delivery Meta label for Delivery team
Projects
None yet
Development

No branches or pull requests

8 participants