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

Update 4.x -> 5.0 in plugin version table #1328

Closed
wants to merge 1 commit into from

Conversation

vokac
Copy link

@vokac vokac commented Nov 16, 2020

XrdHttpGetSecXtractor 4.0 -> 5.0
XrdHttpGetExtHandler 4.8 -> 5.0

Fix issue with 5.0.3 and dmlite where plugin doesn't load with error:

Plugin version XrdHttpProtocolTest v5.0.3 is incompatible with domexrdhttp v5.0.2 (must be >= 4.8.x) in exthandlerlib /usr/lib64/libdome-5.so
------ HTTP protocol initialization failed.
201113 13:09:07 3734 XrdProtocol: Protocol XrdHttp could not be loaded

XrdHttpGetSecXtractor 4.0 -> 5.0
XrdHttpGetExtHandler 4.8 -> 5.0

Fix issue with 5.0.3 and dmlite where plugin doesn't load with error:
Plugin version XrdHttpProtocolTest v5.0.3 is incompatible with
domexrdhttp v5.0.2 (must be >= 4.8.x) in exthandlerlib /usr/lib64/libdome-5.so
@abh3
Copy link
Member

abh3 commented Nov 18, 2020

The pull request that you submitted would indeed solve the immediate problem. The
issue we had was that it wouldn't solve the essential problem.

There was an edge case that caused certain combinations of "required" vs
"acceptable" versions to fail the check. I really want to thank you for bringing up
this issue and without your observation we would have never caught it. The solution
was far more complicated, unfortunately, but it should provide a more consistent
version checking scenario (well, I hope this is the end of it).

Why is this complicated? Version checking is a compendium of not only what version is
required but of what version are asking for the requirement. The checking logic is
trying to ensure that the version of a shared library does not exceed its own
version. So, not only does a version check the "static" version requirements it also
ensures that the chain of plugins being loaded are actually compatible with each
other based on each one of those requirements.

Unfortunately, the checking logic was faulty when it came down to the minor version.
It was far too restrictive. The patch takes into account what the major version
requirements were (it did not do that).

I know this is more information that you wanted but I wanted to point out that
realistic version checking is far more complicated than what one would expect.

@abh3 abh3 closed this Nov 18, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants