Pilot no longer uses schedconfig.region for Nordugrid
- Requested by Andrej Filipcic
Added --cmtconfig to asetup to bypass problems with some AthAnalysisBase
releases
- Requested by Asoka de Silva et al
Replaced maxinputsize with maxwdir - 2000
- Requested by Alastair Dewhurst
Improved error handling for Event Service
- Errors from AthenaMP and Token Extractor
- In collaboration with Vakho Tsulaia.
- To be fully tested (pending new nightlies release)
Fixed reporting of coreCount in jobMetrics message
- Broken since earlier pilot version. Requested by Rod Walker
Always setting up xrootd from CVMFS
- Requested by Ilija Vukotic
DQ2 API to Rucio API migration started
- Only minor changes so far; e.g. for file information (size+checksum, normally delivered to pilot with job definition), tape site queries, ..
- Updating the replica lookup algorithm requires lots of changes, will take longer time to develop
Preparing for memory monitor developed by Nathalie Rauschmayr
- Monitor will be executed by the trf for prod jobs (in order to get memory stats from Tier-0 jobs, and for multi-trf¹s) and by the pilot for user jobs
- Produces a JSON summary file that will be sent to the PanDA server (via jobMetrics)
- Note: memory monitor will not be executed by the pilot until it is available from a release area, i.e. it is not activated in this pilot version
Update info from Edward Karavakis:
- Now avoiding copying the glexec sandbox dir itself in the __ship_queue_data() from the PilotHomeDir, affecting jobs at ANALY_BNL_GLEXEC
- Loops through the files of the pilot dirs and chmods them so that they can be removed at the end of the glexec'ed payload
- Created temporary glexec sandbox inside the working directory / usual scratch area instead of the location of the TMPDIR env variable
- Properly removes the glexec sandbox directory at the end
- Already deployed on BNL glexec queue
Added --cmtconfig to asetup in getJobExecutionCommand() to bypass problems with some AthAnalysisBase releases. Requested by Asoka de Silva et al. (ATLASExperiment)
Removed getLocalSpaceLimit() since it is not used any longer (Mover)
Replaced maxinputsize with maxwdir - 2000 in getMaxInputSize(). Requested by Alastair Dewhurst (pUtil)
Removed unused method testES() (RunJobEvent)
Created extractErrorMessage() (RunJobEvent)
Extracting error acronyms and diagnostics from AthenaMP yampl message in listener() (RunJobEvent)
Now using getModernASetup() with AnalysisTransform setups in getJobExecutionCommand(); requested by Asoka de Silva (ATLASExperiment)
Removed usage of 'region' in getProperSiterootAndCmtconfig() (ATLASExperiment)
Removed getProperSiterootAndCmtconfigOld() (ATLASExperiment)
Changed 'region' to 'cloud' in getProperASetup() (ATLASExperiment)
Removed unused region variable in getAnalysisRunCommand() (Experiment)
Removed unused region variable in __main__() (RunJob, RunJobEvent, RunJobAnselm, RunJobEdison)
Removed unnecessary error handling around updateEventRange() call in asynchronousOutputStager() (RunJobEvent)
Now forwarding failed error range to server, in listener() (RunJobEvent)
Added event service and token extractor error codes:
ERR_ESFATAL: "Fatal Event Service error",
ERR_TEHOSTNAME: "Token Extractor error: Host name could not be resolved",
ERR_TEBADURL: "Token Extractor error: Bad URL",
ERR_TEINVALIDGUID: "Token Extractor error: Invalid GUID length",
ERR_TEWRONGGUID: "Token Extractor error: No tokens for this GUID"
used by RunJobEvent::listener() (PilotErrors, RunJobEvent)
Calling updateJobDefinition() from monitor_job() (Monitor)
Created optional updateJobDefinition() used to manipulate the job object/file after download from dispatcher (Experiment, ATLASExperiment)
Created readFile(), writeFile() (FileHandling)
Now updating the job object and job definition file in updateJobDefinition() (ATLASExperiment)
Renamed getAthenaMPSubprocess() to getSubprocess(), used by __main__() and getTokenExtractorProcess() (RunJobEvent)
Moved getSubprocess() from RunJobEvent to RunJob
Moved getStdoutStderrFileObjects() from RunJobEvent to RunJob
Created isMultiTrf(), used by setup(), executePayload() (RunJob)
Removed piping to stdout/err from getJobExecutionCommand() (ATLASExperiment)
Created tail() (FileHandling)
Now using getSubprocess() in executePayload() instead of commands.getstatusoutput() to execute payload (RunJob)
Overwriting job.coreCount if ATHENA_PROC_NUMBER is set in getJobMetrics() (PandaServerClient)
Overwriting job.coreCount if ATHENA_PROC_NUMBER is set in setJobDef() (Job)
Created addMAKEFLAGS(), used by getJobExecutionCommand() (ATLASExperiment)
Test import of rucio.client (pilot)
Always using default setup in setup(), i.e. CVMFS ROOT setup will always be used (xrdcpSiteMover)
Created checkSpecialEnvVars(), used to set new env variable 'Nordugrid_pilot' which in turn is used to identidy Nordugrid in other pilot classes (NordugridATLASExperiment)
Changed usage of 'region' to using env variable 'Nordugrid_pilot', and replaced 'Nordugrid' with 'ND' in checkSpecialEnvVars(), getSwbase(), getRelease() (ATLASExperiment)
Changed usage of 'region' to 'cloud', and replaced 'Nordugrid' with new env variable 'Nordugrid_pilot' in createFileMetadata() (RunJob, RunJobEvent)
Changed usage of 'region' to new env variable 'Nordugrid_pilot' in createMetadataForOutput(), postJobTask() (JobLog)
Changed usage of 'region' to new env variable 'Nordugrid_pilot' in _cleanUpEndedJobs() (Monitor)
Changed usage of 'region' to new env variable 'Nordugrid_pilot' in getRelease() (NordugridATLASExperiment)
Changed usage of 'region' to new env variable 'Nordugrid_pilot' in getXML(), updatePandaServer() (PandaServerClient)
Changed usage of 'region' to new env variable 'Nordugrid_pilot' in getDDMStorage(), getPoolFileCatalog(), getPoolFileCatalogDQ2(),
getFileInfoFromMetadata() (Mover)
Changed usage of 'region' to new env variable 'Nordugrid_pilot' in handleQueuedata() (pUtil)
Setting new env variable 'Nordugrid_pilot' also in argParser() since it will be needed before the experiment object is created (pilot)
Added "adler32" to if statement in getRemoteFileChecksumFromOutput() (xrdcpSiteMover)
Created convert() function, converting unicode strings and collections (lists, dictionaries, etc) to utf-8 (pUtil)
Created openFile() and getJSONDictionary() (FileHandling)
Created getMemoryUtilityCommand(), used by __main__() (RunJob)
Now querying shouldExecuteMemoryMonitor() before running findVmPeaks() in interpretPayloadStdout() (ATLASExperiment)
Created shouldExecuteMemoryMonitor(), getMemoryMonitorJSONFilename() (Experiment, ATLASExperiment)
Importing and using getExperiment() in getJobMetrics() (PandaServerClient)
Importing and using getJSONDictionary() in getJobMetrics() (PandaServerClient)
getJobMetrics() is now adding memory monitor JSON dictionary to job metrics (PandaServerClient)
Copying any JSON file from the jobs' workdir to the pilots' init dir in executePayload() (RunJob)
Verifying that token is not None in getPreDestination(), requested by Tadashi Maeno (SiteMover)
DQ2 API to Rucio API migration:
- Replaced isTapeSite() function, now using the Rucio client to check whether the site is a tape site or not (SiteMover)
- Created getFileInfoFromRucio() (SiteMover)
- Fall back mechanism in getFileInfo() is now using getFileInfoFromRucio(), in case file size and checksum was not sent sent with the job description (Mover)
Update info from Edward Karavakis:
- Now avoiding copying the glexec sandbox dir itself in the __ship_queue_data() from the PilotHomeDir, affecting jobs at ANALY_BNL_GLEXEC (glexec_utils)
- Loops through the files of the pilot dirs and chmods them so that they can be removed at the end of the glexec'ed payload
- Created temporary glexec sandbox inside the working directory / usual scratch area instead of the location of the TMPDIR env variable
- Properly removes the glexec sandbox directory at the end
Change to AMSTaiwanExperiment:
- Changed usage of 'region' to new env variable 'Nordugrid_pilot' in checkSpecialEnvVars(), getSwbase(), getRelease()
No comments:
Post a Comment