cms-PdmV / cmsPdmV

CERN CMS McM repository
4 stars 10 forks source link

Download McM request fragment outside the `singularity` environment #1105

Closed ggonzr closed 11 months ago

ggonzr commented 11 months ago

Some requests that require old CMSSW releases (like CMSSW_7_1_4) depend on old SCRAM architectures (like slc6_amd64_gcc481). These architectures have issues with requesting resources in McM because of the old SSL protocols they offer/use. Download these resources outside the singularity environment and move them into the appropriate folder when the cmsDriver is executed.

Is your feature related to a problem?

McM requests that depend on these old CMSSW releases fail when they download resources from the public API due to the runtime environment presenting issues with SSL libraries. For example, EXO-RunIISummer15GS-17992 fails when the request fragment is downloaded inside old architectures due to SSL errors.

# Parts of the execution of the ‘test’ script for this request via lxplus7.

Executing GEN script
---> 1 request will be checked:

[2023-10-23 16:04:31,843][WARNING] Using McM client without providing authentication
[2023-10-23 16:04:31,844][WARNING] Python 3.X version currently used has reached its end of life or it will reach it in the near future.
Please consider using a newer version. Python version: 3.6.8 (default, Jun 20 2023, 11:53:23) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] 

Current date and time: 2023-10-23 16:04:31
Prepid(s):
EXO-RunIISummer15GS-17992
***********************************************************************************
Extension or not: 0
EXO-RunIISummer15GS-17992    Status= approved
ZPrimeToLLTo2j2nu_mZ_4500_mX_450_ctau_10000_TuneCUEP8M1_13TeV_pythia8
time per event (sec/event) = 28.41
Filter efficiency in the fragment =1
Cross section in the fragment =CROSS_SECTION pb
Cross section from generator parameters field = 1.0 pb

Filter efficiency in fragment =1
Filter efficiency from generator parameters field = 1.0
CMSSW release for the request: CMSSW_7_1_47
scram_arch = slc6_amd64_gcc481
PYTHIA8 version = "226-ddibom8"
# Threads for each sequence: 1

Expected number of events = 1013.727560718057
***********************************************************************************
Number of warnings = 1
WARNINGS:
----------
1 :  Skipping the cross section consistency check in generator parameters field and the fragment. This is most probably because the cross section is defined through a variable 

----------
Number of errors = 0
Running VALIDATION. GEN Request Checking Script returned no errors
Downloading fragment
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0curl: (35) error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version

Describe the solution you'd like

Move the instruction that downloads the request fragment to be executed outside the singularity runtime environment. When cmsDriver operations are being executed using this runtime environment, move the downloaded content to the CMSSW source folder (./src/)

Current behavior

McM batch job scripts download the request fragment using the libraries included inside the singularity runtime environment.

Expected behavior

McM batch jobs download the request fragment outside the singularity environment (the environment used here most of the time is lxplus nodes) and this content is moved to the CMSSW source folder to be properly read for the other steps.