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

XrdHttp does not handle XrdLink counters correctly for HTTPS #675

Closed
bbockelm opened this issue Mar 24, 2018 · 0 comments
Closed

XrdHttp does not handle XrdLink counters correctly for HTTPS #675

bbockelm opened this issue Mar 24, 2018 · 0 comments

Comments

@bbockelm
Copy link
Contributor

When reading / writing data to a HTTPS socket, XrdHttpProtocol.cc will perform operations on the socket directly.

This is not ideal for two reasons:

  1. The isIdle counter on the XrdLink object is not reset to zero, meaning that the TCP connection will eventually be abruptly disconnected. I have hit this in production mid-transfer, particularly in setups with aggressive session reuse.
  2. The link bytes counter is not incremented, meaning the server will not have correct summary statistics.
bbockelm added a commit to bbockelm/xrootd that referenced this issue Mar 24, 2018
Previously, we just handed OpenSSL the underlying file descriptor.  This
worked fine, protocol-wise.  However, this didn't interact well with the
Xrootd framework itself as the idle counter was not update, nor were proper
statistics recorded.

With this commit, we create a custom BIO object for OpenSSL to use; this
object simply forwards the requests to an underlying XrdLink.

Fixes xrootd#675
bbockelm added a commit to bbockelm/xrootd that referenced this issue Mar 24, 2018
Previously, we just handed OpenSSL the underlying file descriptor.  This
worked fine, protocol-wise.  However, this didn't interact well with the
Xrootd framework itself as the idle counter was not update, nor were proper
statistics recorded.

With this commit, we create a custom BIO object for OpenSSL to use; this
object simply forwards the requests to an underlying XrdLink.

Fixes xrootd#675
bbockelm added a commit to bbockelm/xrootd that referenced this issue Mar 24, 2018
Previously, we just handed OpenSSL the underlying file descriptor.  This
worked fine, protocol-wise.  However, this didn't interact well with the
Xrootd framework itself as the idle counter was not update, nor were proper
statistics recorded.

With this commit, we create a custom BIO object for OpenSSL to use; this
object simply forwards the requests to an underlying XrdLink.

Fixes xrootd#675
bbockelm added a commit to bbockelm/xrootd that referenced this issue Mar 25, 2018
Previously, we just handed OpenSSL the underlying file descriptor.  This
worked fine, protocol-wise.  However, this didn't interact well with the
Xrootd framework itself as the idle counter was not update, nor were proper
statistics recorded.

With this commit, we create a custom BIO object for OpenSSL to use; this
object simply forwards the requests to an underlying XrdLink.

Fixes xrootd#675
ffurano pushed a commit to ffurano/xrootd-fbx4 that referenced this issue Mar 28, 2018
Previously, we just handed OpenSSL the underlying file descriptor.  This
worked fine, protocol-wise.  However, this didn't interact well with the
Xrootd framework itself as the idle counter was not update, nor were proper
statistics recorded.

With this commit, we create a custom BIO object for OpenSSL to use; this
object simply forwards the requests to an underlying XrdLink.

Fixes xrootd#675
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

No branches or pull requests

1 participant