Pegasus 5.1.1 Released

with No Comments

We are happy to announce the release of Pegasus 5.1.1. It is a minor release on top of Pegasus 5.1.0 which is a major release of Pegasus. It also includes all features and bug fixes from the 5.0 branch. We invite our users to give it a try.

We recommend that users upgrade to 5.1.1 and not 5.1.0 because 5.1.1 has a fix for #2113 .

We invite our users to give it a try.

The release can be downloaded from: https://pegasus.isi.edu/downloads

If you are an existing user, please carefully follow these instructions to upgrade at https://pegasus.isi.edu/docs/5.1.1/user-guide/migration.html#migrating-from-pegasus-5-0-x-to-pegasus-5-1

 

Highlights of the Release

  1. Refined Data Transfer Mechanisms for Containerized JobsPegasusLite now offers two distinct approaches for handling data transfers in
    containerized jobs. The shift to host-based transfers as the default aims to simplify workflows and minimize the overhead associated with customizing container images.

    • Host-Based Transfers (Default in 5.1.0): Input and output data are staged on the host operating system before launching the container. This method utilizes pre-installed data transfer tools on the host, reducing the need for additional configurations within the container.
    • Container-Based Transfers: Data transfers occur within the container prior to executing user code. This approach requires the container image to include necessary data transfer utilities like curl, ftp, or globus-online. Users preferring this method can set the property pegasus.transfer.container.onhost to false in their configuration files.

    More details can be found in the documentation.

  2. Integration with HTCondor’s Container UniversePegasus 5.1.0 introduces support for HTCondor’s container universe, which is useful in pure HTCondor environments such as PATh/OSPool whereby the container management is handled by HTCondor. This integration simplifies job submission and execution, for environments where HTCondor’s container universe is available.This enhancement builds upon Pegasus’s initial container support introduced in version 4.8.0, reflecting ongoing efforts to improve compatibility and user experience.More details can be found in the documentation.
  3. pegasus-status command line tool was rewritten in python, removing Pegasus perl dependency. The new pegasus-status command has better support for showing status of hierarchical workflows.
  4. Improved determination on what site a job runs on. Starting Pegasus 5.1.0 release, PegasusLite wrapped jobs send a location record that enables us to figure out what resource a job runs on. The location record can be found toward the end of the job .out file as a pegasus multipart record.More details can be found in the documentation.

Upgrade Note

Please note that RPM packaging for 5.1.x series is not compatible with the 5.0.x series. If you try to update an existing 5.0.x install you will see an error similar to the trace below

dnf update pegasus
...
Running transaction check
Transaction check succeeded.
Running transaction test
The downloaded packages were saved in cache until the next successful transaction.
You can remove cached packages by executing 'dnf clean packages'.
Error: Transaction test error:
 file /usr/lib64/pegasus/python from install of pegasus-5.1.0-1.el8.x86_64 conflicts with file from package pegasus-5.0.9-1.el8.x86_64

The recommended way is to first remove the 5.0.x install and then do the install.

New Features and Improvements

  1. Incorporate release notes into the documentation #2111
  2. document use of containers on HPC clusters #2110
  3. update planner worker package staging logic to default to rhel8 for linux and macos_14 for macos #2108
  4. planner should try and visualize the workflow #2099
  5. CVE-2025-21502 in RHEL 8 project dependency java-11-openjdk #2097
  6. Failures when testing pegasus v5.1.0 release #2095
  7. Improved determination of what resource the job ran on #2094
  8. add support in pegasus-init for submission to remote SLURM cluster via SSH #2093
  9. [PM-1999] pick automatically system executables on the local site on the basis of what PATH is set when running the planner #2091
  10. [PM-1975] enable bypass staging of container when running in container universe #2081
  11. [PM-1971] Update jars that have security vulnerabilities. #2077
  12. [PM-1970] Storage constraint test failing #2076
  13. [PM-1969] Schema doc should be for YAML and not XML #2075
  14. [PM-1956] p-version timestamp issue #2069
  15. [PM-1950] enable users to use container universe when running containerized jobs in pure condor environments #2063
  16. [PM-1942] Support transfers for a job on the HOST OS instead of from within the container #2055
  17. [PM-1901] converting pegasus-analyzer tool to API (like status) and add test suite #2014
  18. [PM-1889] Escape command line args passed to Job #2002
  19. [PM-1886] Recommendations for new Pegasus-Status CLI tool #1999
  20. [PM-1882] replace the perl command line client with python client #1995
  21. [PM-1881] remove dependency on pegasus-status command line tool , in the Workflow status function #1994
  22. [PM-1775] add changes to the Python API to support adding of checkpoint files by pattern #1889
  23. [PM-1589] Example workflows repository for 5.0 #1703
  24. [PM-1974] update InPlace cleanup algorithm to delete container image from the user submit directory #2080
  25. [PM-1967] Kickstart should kill a job gracefully before maxwalltime #2073
  26. [PM-1955] Deprecate R API #2068
  27. [PM-1934] source builds with multiple python3 installs #2047
  28. [PM-1915] Convert pegasus-statistics tool to API and add test suite #2028
  29. [PM-1914] update python workflow api to support arm64 #2027
  30. [PM-1912] planner should keep in mind units when converting diskspace profiles #2025
  31. [PM-1860] aws batch support needs to pick up credentials.conf correctly #1973
  32. [PM-1819] 5.0.3 Python API Improvements #1932
  33. [PM-1801] sqlalchemy warnings against 5.0 database #1915
  34. [PM-1793] refactor pegasus-transfer so that it can be invoked directly from pegasus-checkpoint #1907
  35. [PM-1782] incorporate pegasus arm builds into our build infrastructure #1896
  36. [PM-1781] pegasus-keg sleep option #1895
  37. [PM-1756] paths with spaces need to be escaped #1870
  38. [PM-1690] the –json option added in pegasus-plan/run needs to be integrated into the python api client code #1804

Bugs Fixed

  1. snakeyaml version version 1.32, used by Jackson 2.14 has an in-built circuit breaker that breaks parsing for large yaml documents #2113
  2. pegasus aws batch test failing because of urllib3 incompatibility #2107
  3. Planner should catch deep lfn common name problem when using CEDAR #2106
  4. support for condorio deep LFN broke after move to host OS based transfers #2105
  5. when parsing container mount points in the TC, normalize the path to ensure any duplicate / in directory paths are removed #2103
  6. pegasus-graphviz fails on a wf generated with java dax api that has no jobs #2101
  7. [PM-1954] Importing six.moves raises ModuleNotFoundError on Python 3.12 #2067
  8. [PM-1968] pegasus.gridstart allows values that are not documented #2074
  9. [PM-1952] Local universe job fail with pegasus.transfer.bypass.input.staging = true #2065
  10. [PM-1924] API submit still drops debug info to stdout #2037
  11. [PM-1902] Pika problem on RHEL 9 – Bump the version to 1.2.1 also #2015
  12. [PM-1923] download form does not send metrics to metric server #2036

Merged pull requests