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

[BUG] PerformanceAnalyzerTransportChannel does not delegate to original TransportChannel that it wraps #606

Open
cwperks opened this issue Nov 28, 2023 · 1 comment
Labels
bug Something isn't working

Comments

@cwperks
Copy link
Member

cwperks commented Nov 28, 2023

When receiving a transport request, the security plugin relies on getting the version of the node that transmitted the request by calling on channel.getVersion(). When the original TransportChannel is wrapped by PerformanceAnalyzerTransportChannel, there is an issue where the version returned by channel.getVersion() is not accurate and instead gives the version of the node that received the transport request. In a homogenous cluster, that is not an issue, but it is an issue during rolling upgrades when a cluster is mixed.

See more details in the security repo here: opensearch-project/security#3771

The problem is that PA instantiates a PerformanceAnalyzerTransportChannel w/o any args and then sets the original channel in a separate set call. Since PerformanceAnalyzerTransportRequestHandler does not override TransportChannel.getVersion() and delegate the call to the wrapped original channel, it will instead use the default implementation of TransportChannel.getVersion and return Version.CURRENT of the receiving node.

@dblock
Copy link
Member

dblock commented Jun 6, 2024

[Triage -- attendees 1, 2, 3, 4, 5, 6, 7]

Looks like a valid issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants