-
Notifications
You must be signed in to change notification settings - Fork 149
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
HTTP TPC v2 #737
HTTP TPC v2 #737
Conversation
…c-rename"" This reverts commit d46c516. Reverting-the-revert to start working on cleanup of this branch for C++03 support and eventual re-merge.
When an error occurs during a multi-part response, send a chunk-encoded response and not a complete HTTP response.
With this, functionality on RHEL7 is back to normal.
This is interpretted as just needing one.
Hi, manually on my Ubuntu machine it compiles fine, it only misses to add its item to the little summary printed in the cmake phase. As it's an XrdHTTP plugin I'd list under it. On a build system for sl6/cc7/x86_64/i386 the TPC is not compiled, as the needed libcurl is not listed in the deps of the specfile, so my nightly test machines are still without it. Brian, is there any special requirement for libcurl in the specfiles ? Would you mind to fix these two little things? |
Umm, this pull request violates EPEL packaging rules. A shared library cannot also serve as a plugin library. It's either one or the other but not both. So, the packaging here needs to be rethought. I don't have an immediate solution but I'm sure there is one. |
Here is a suggestion that would likely work: |
@abh3 - are you sure it's an EPEL packaging rule? The closest I can see are the This clearly discourages using an unversioned shared library, but it says nothing against having one module link against another module. Another route, perhaps less-disruptive, would be to load |
The structure of the extension handlers is such that they must link against some of the XrdHttp code. Previously, the only way to do this was to link against the shared module itself. With this, we create and publish a proper versioned utility library.
Hi Brian,
We were hit by EPEL refusing to accept our initial version where a shared
library served as a plugin as well as linkable target. The specific rule
is that you are not allowed to link against plugins. The other rule that,
as far as I can tell, is not specifically listed is that a shared library
cannot be a plugin as well as a link target because it essentially
violates the first rule. Add to that that we version plugins using a name
extension makes it problematic anyway. So, the cleanest solution is to
separate plugin code from anything you need to link with. Since it's
relatively easy to do, we do it that way.
What I outlined in my comment is trivial to do the sloppy way and not much
more difficult to do the right way (i.e. proper refactoring).
Andy
…On Thu, 14 Jun 2018, Brian Bockelman wrote:
@abh3 - are you sure it's an EPEL packaging rule? The closest I can see are the `Devel Packages` section here: https://fedoraproject.org/wiki/Packaging:Guidelines.
This clearly discourages using an unversioned shared library, but it says nothing against having one module link against another module.
Another route, perhaps less-disruptive, would be to load `libXrdHttp.so` from the plugin itself. That'd work here, but would clearly discourage other plug-in writers...
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
#737 (comment)
########################################################################
Use REPLY-ALL to reply to list
To unsubscribe from the XROOTD-DEV list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-DEV&A=1
|
In retrospect, having a versioned interface will help plugin library writers manage version changes in the future. I just pushed a commit to refactor things into a separate utilities library and touch-up the appropriate packaging. Any external packages that currently link against |
Hi Brian,
Yep, that will work, thanks.
Andy
…On Thu, 14 Jun 2018, Brian Bockelman wrote:
In retrospect, having a versioned interface will help plugin library writers manage version changes in the future.
I just pushed a commit to refactor things into a separate utilities library and touch-up the appropriate packaging. Any external packages that currently link against `libXrdHttp.so` should continue to function.
--
You are receiving this because you commented.
Reply to this email directly or view it on GitHub:
#737 (comment)
########################################################################
Use REPLY-ALL to reply to list
To unsubscribe from the XROOTD-DEV list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-DEV&A=1
|
@ffurano - I added the TPC build status to the cmake summary. For (Is it possible to improve the Travis-CI configuration so things like packaging can be checked for errors prior to merge?) |
Hi Brian, I am on it. Will know by tomorrow, I am off but will take a look anyway. |
This is a renewed version of the TPC code. The core algorithms and approaches are identical but improvements include:
curl_multi_wait
for platforms with very oldcurl
.With this, the TPC code should function on SL6.