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

Change current curl fork/exec with libdavix plugin for read operations #15130

Merged
merged 17 commits into from Jul 29, 2016
Merged

Change current curl fork/exec with libdavix plugin for read operations #15130

merged 17 commits into from Jul 29, 2016

Conversation

juztas
Copy link

@juztas juztas commented Jul 6, 2016

  • disables http/web access for curl and use Davix library.
    • Implemented read, vector read and + offset,
    • Authentication check
    • Allow to control Davix debug mode.

http/https/web was tested by turning on http[s] access for an xrootd server. More tests are upcoming to identify the gain/loss.
This requires davix 0.6.3 (cms-sw/cmsdist#2355)

dtnrm added 9 commits July 5, 2016 09:55
Support http/web protocols and implemented basic functions: open, read, position
  1. X509_USER_PROXY
  2. /tmp/x509up_u<(geteuid)>
  3. X509_USER_{CERT|KEY}
If none of these is present, it will try to make connection without proxy/cert. X509_CERT_DIR can also be overwritten with environment variable.
  0. Default davix log level;
  1. DAVIX_LOG_WARNING;
  2. DAVIX_LOG_VERBOSE;
  3. DAVIX_LOG_DEBUG;
  4. DAVIX_LOG_ALL;
If provided value is not integer or it is not able to parse to int, it will use 0. Any other number from 4toN will be considered as 4. DAVIX_LOG_ALL which is most verbose;
It checks DavixErr if it was set or not also if FD was opened sucessfully and if return value is greater than 0. 0 - means it is end of file. If any of these are found it will raise an issue.
@cmsbuild
Copy link
Contributor

cmsbuild commented Jul 6, 2016

A new Pull Request was created by @juztas (Justas Balčas) for CMSSW_8_1_X.

It involves the following packages:

Utilities/DavixAdaptor
Utilities/StorageFactory

The following packages do not have a category, yet:

Utilities/DavixAdaptor

@cmsbuild, @smuzaffar, @Dr15Jones, @davidlange6 can you please review it and eventually sign? Thanks.
@Martin-Grunewald, @wddgit this is something you requested to watch as well.
@slava77, @Degano, @smuzaffar you are the release manager for this.

cms-bot commands are list here #13028


IOSize DavixFile::write(const void *from, IOSize n) {
cms::Exception ex("FileWriteError");
ex << "DavixFile::write(name='" << m_name << "') not implemented";
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you do ex.addContext("Calling DavixFile::write()"); here?

Do not use global variable for Davix Context
Use unique_ptr in places where it is possible;
Define m_name before throwing an error, otherwise it is null
Check variables without NULL.
Throw exception if open is called on an open file
Compare bytes requested vs read and throw exceptions
Surround with braces {} as done in the rest of the code
@cmsbuild
Copy link
Contributor

Pull request #15130 was updated. @cmsbuild, @smuzaffar, @Dr15Jones, @davidlange6 can you please check and sign again.

@bbockelm
Copy link
Contributor

This is beginning to look good to me. Can you provide an overview of how you've tested this?

Thanks.

@smuzaffar
Copy link
Contributor

@juztas , can you please add few unit tests ?

@cmsbuild
Copy link
Contributor

Pull request #15130 was updated. @cmsbuild, @smuzaffar, @Dr15Jones, @davidlange6 can you please check and sign again.

@Dr15Jones
Copy link
Contributor

please test

@cmsbuild
Copy link
Contributor

cmsbuild commented Jul 29, 2016

The tests are being triggered in jenkins.
https://cmssdt.cern.ch/jenkins/job/ib-any-integration/14280/console

@cmsbuild
Copy link
Contributor

@Dr15Jones
Copy link
Contributor

@bbockelm any further comments? I think I've finished.

@bbockelm
Copy link
Contributor

I'm happy!

@Dr15Jones
Copy link
Contributor

+1

@cmsbuild
Copy link
Contributor

This pull request is fully signed and it will be integrated in one of the next CMSSW_8_1_X IBs (tests are also fine). This pull request requires discussion in the ORP meeting before it's merged. @slava77, @davidlange6, @smuzaffar

@davidlange6
Copy link
Contributor

+1

@cmsbuild cmsbuild merged commit bcbc07b into cms-sw:CMSSW_8_1_X Jul 29, 2016
@cmsbuild
Copy link
Contributor

@smuzaffar
Copy link
Contributor

@juztas , there are couple of unit test failing

https://cmssdt.cern.ch/SDT/cgi-bin/buildlogs/slc6_amd64_gcc530/CMSSW_8_1_X_2016-08-09-2300/unitTestLogs/Utilities/DavixAdaptor

Can you please fix these? Looks like URL

http://transfer-8.ultralight.org:1094/store/mc/HC/GenericTTbar/GEN-SIM-RECO/CMSSW_7_0_4_START70_V7-v1/00000///10FB32C7-0BCD-E311-B035-02163E00E79D.root

is not active any more.

@juztas
Copy link
Author

juztas commented Aug 24, 2016

@smuzaffar I think it is more stable to use opendata.cern.ch as it also affected update to newest davix: cms-sw/cmsdist#2454
Pull request here:
#15579

I am running some tests on this node (transfer-8), so it is better to stay away from it for now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

8 participants