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

Backwards Incompatible Changes in Nomad 1.7 Driver RPC API #23847

Closed
jseba opened this issue Aug 20, 2024 · 3 comments
Closed

Backwards Incompatible Changes in Nomad 1.7 Driver RPC API #23847

jseba opened this issue Aug 20, 2024 · 3 comments

Comments

@jseba
Copy link

jseba commented Aug 20, 2024

There was a change to the Nomad Driver config sent by SetConfig in 1.7 that breaks running drivers built with the 1.7 APIs against a Nomad cluster running on previous versions. There is an API version field in the base config struct sent by Nomad and it was not incremented with this breaking change. This makes it impossible for the driver to decide if it should attempt to parse the Topology field in ClientDriverConfig.

The driver RPC version should have been incremented here so that drivers could determine what version of the struct they are getting from Nomad.

@jseba jseba added the type/bug label Aug 20, 2024
@jseba
Copy link
Author

jseba commented Aug 21, 2024

Furthermore, the executor interface never validates the information that it gets from the driver in CreateExecutor. It should be calling the Fallback NUMA scanner if it doesn't receive valid data or return an error telling the caller that the parameters were invalid.

https://github.com/hashicorp/nomad/blob/v1.7.7/drivers/shared/executor/utils.go#L50

@jrasell
Copy link
Member

jrasell commented Sep 20, 2024

Hi @jseba and thanks for raising this issue. Incrementing the RPC version is something that we don't have an internal process for and has not been done since it was added. From internal discussions we had expected that adding fields to a protobuf API definition would be safe for downstream consumers. Could you describe a little more the problem is is causing and whether your driver is sniffing the version identifier to understand what actions it should perform?

Furthermore, the executor interface never validates the information that it gets from the driver in CreateExecutor. It should be calling the Fallback NUMA scanner if it doesn't receive valid data or return an error telling the caller that the parameters were invalid.

If you could raise a separate issue for this that would be great. Keeping an issue to a single problem really helps.

@tgross tgross moved this from Needs Triage to Triaging in Nomad - Community Issues Triage Sep 23, 2024
@jrasell
Copy link
Member

jrasell commented Nov 4, 2024

I am going to close this issue out as we have not heard back. Please feel free to re-open this or a new issue if you're able to provide the additional information requested. Thanks.

@jrasell jrasell closed this as not planned Won't fix, can't repro, duplicate, stale Nov 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Development

No branches or pull requests

2 participants