dcache-xrootd: Fix login handshake to support xrootd clients (> 4.7.0) #3562
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation:
In the 4.7 releases, xrootd client started enforcing protocol requirements
for kXR_login which, unfortunately, broke access to dCache.
xrootd client expects an answer with a 16-character session ID from the door and then
the pool after the redirection.
The login spec can be found at: http://xrootd.org/doc/dev45/XRdv310.htm#_Toc464248819
Without it, the 4.7.0 client declared an error and retries after a while. This will also
fail and so we go into what appears to be a hang. Eventually (after several minutes)
the login will fail with an error.
Modification:
The login answer following the spec has been added in the xrootd pool.
Result:
It works for both xrootd 4.6.1 and 4.7.0.
Target: master
Require-notes: yes
Require-book: no
Patch: https://rb.dcache.org/r/10510
Committed: master@