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
New dasgoclient version #6602
New dasgoclient version #6602
Conversation
A new Pull Request was created by @vkuznet (Valentin Kuznetsov) for branch IB/CMSSW_11_3_X/master. @cmsbuild, @smuzaffar, @mrodozov can you please review it and eventually sign? Thanks. |
please test |
+1 Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-8151b2/12588/summary.html Comparison SummarySummary:
|
@vkuznet , do you understand why following queries generate different results with old and new dasgoclient? For following , old client returns empty list while new client return some LNFs (there are total of 177 such queries)
For following 3 queries, old das returns some LNF but new client returns emtry list
|
I can do full analysis only next week as I travel tomorrow, but any site related queries now reflects difference between Phedex (used in old dasgoclient) and Rucio (new dasgoclient). |
please test |
Pull request #6602 was updated. |
+1 Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-8151b2/12596/summary.html Comparison SummarySummary:
|
hold |
Pull request has been put on hold by @smuzaffar |
@smuzaffar , the queries you referred
does not resolve anything in Rucio. I suggest that we refer this question to Rucio team. @ericvaandering could you please check why Rucio does not return any information for above datasets. I query Rucio directly with the following curl call
|
The problem is the domain of all. I traced it through the code and while I can't be sure, I think it's requiring the file be accessible by both a wan protocol and a lan protocol. Instead, it's only available by WAN.
My suggestion is for Valentin to just define {'domain': None} in the JSON he passes and take the default. |
@ericvaandering , two things:
or
In both case I get zero results.
I provided you a shell script which obtains token and pass it to second curl call with necessary parameters. So far I don't get any results back. Please check and provide me working example as I can't move forward as I don't use Python and Rucio CLI tools. |
You've got some problem in your curl since it's interpreting application/json as a host name. I spent 30 minutes trying to debug the curl before realizing that. Here is what the json.dumps in the command I sent you is sending: {"all_states": false, "domain": null, "rse_expression": "T2_CH_CERN", "resolve_archives": false, "resolve_parents": false, "dids": [{"scope": "cms", "name": "/SingleElectron/Run2012D-v1/RAW"}]} │· I suspect you don't need the false and null values, but I'm not 100% sure. |
Eric, please be more concrete. I can't guess what I should or should not supply to Rucio, I have zero knowledge about Rucio internals. What I need is a working curl example to translate it to pure HTTP callback. If I use your json I still got nothing from the Rucio. Here is full script with explicit POST HTTP request. Please adjust it here such that it will return a concrete results and post it to this ticket that I can implement it in GoLang.
|
Eric,
I also tried to skip Bottom line, I need clear instructions for the following:
Once I'll know details of what Rucio does with HTTP requests I can implement this in DAS, otherwise I'm stuck. And, it would be extremely useful if Rucio team can implement verbose mode to rucio client which can dump underlying HTTP requests (including HTTP headers, body, etc), this will solve all of these problems as it would be clear how to place proper HTTP request to Rucio. |
Your latest script works great, the "problem" is that that dataset is no longer present at T2_CH_CERN. If you replace that with T0_CH_CERN_Tape, you'll see that. I don't know if @smuzaffar needs that data at CERN for some reason (I assume not) or if he was just using a test that worked before. Your setup for Rucio is correct and what it was giving on the CLI was correct too, of course. I will look into adding a debug option for dumping the actual request parameters. That would be very helpful. |
Eric, thanks for finding site for
What about those? I think @smuzaffar refers to some set of queries they setup for jenkins tests. It can be that in Rucio land those datasets are not present. What I think he needs is set of reference datasets which can be constantly used in jenkins tests to verify changes we commit in different clients. Can Rucio permanently keep some dataset which you may agree at certain sites that those can be used in jenkins tests? @ericvaandering , bottom line, I'm changing DAS client to use instead of
to
My question is will it work for queries with all different RSEs and all datasets? Please note that I need to construct this POST request in DAS code and will only pass dataset/site- names to this JSON. Therefore I need to know a structure of the JSON. |
Ah. Those two datasets (containers) don't exist in the production Rucio, but in the testbed (presumably Tier0 was running against that for some tests). I think if you just want a functional test, your best bet is a RAW dataset at a tape site as those are never going to move unless the Tier1 withdraws from CMS. Next best would be for cmsbot itself to make some rules keeping some small datasets at a site (CERN?) but unless I'm missing something, that shouldn't be necessary. I'm not quite sure what you mean about "all different RSEs and all datasets" except, "yes, of course". For any RSE/container (or block) combination that should give you what you are looking for. No output means it's not there either because the container or block doesn't exist or it's not at that RSE. |
Eric, what I meant that originally you told me to use domain all value , and turns out does not work for some datasets. Now I put domain null value as well as I added other parameters which I posted . Therefore, I need to know if the json structure will work for all rse and all datasets, or it will require further changes. |
@vkuznet and @ericvaandering thanks for looking in to it. As mentioned #6602 (comment) , I would like to understand the differences between the old and new das clients results. Out of total 3490 queries, which we run for CMSSW IB/PR tests, there are 180 for which old and new client give different results.
I just want to understand why there are these inconsistencies? This might be indicating that there might be some wrong entries which needs a cleanup either in rucio or Phedex |
@smuzaffar , it is up to Rucio team to tell you what to do. DAS here is like a middle man which does not have any judging call. My only concern is how to properly put JSON in DAS logic, either
or use this one:
So far, I used the former, but it seems I should use the latter (in that case I'll need to prepare new PR). Eric should clearly answer both questions. |
PhEDEx information, while still there, has not been updating since November when we turned off everything but the data service. Comparisons now between PhEDEx and Rucio are not useful. That DAS was still contacting PhEDEx was an oversight and was providing incorrect results. |
Please just use the latter. If you want to test it, I suspect you'll get the same with just the DIDS and RSE_EXP keys. If not, stick with what works. |
@smuzaffar , based on Eric's input I created new PR #6608 to reflect changes in JSON which I pass to Rucio. At this point I declare that dasgoclient reflects results provided by Rucio. How will you treat your queries it is up to you (and Eric) to decide. |
please test |
closing in favor of #6608 |
abort |
Fix
for file block=/a/b/c#123 run=123 site=XXX
query.