# 16.1. PMIx v5.x series

This file contains all the NEWS updates for the PMIx v5.x series, in reverse chronological order.

## 16.1.1. 5.0.3 – 8 Jul 2024

Detailed changes include:

  - PR #3369: Update NEWS and VERSION for release

  - PR #3366: Transfer results from partial success of lookup

  - PR #3363: Multiple commits - Fix singletons - Protect against NULL fields

  - PR #3361: Remove unused function in shmem2

  - PR #3357: Github action: bring back MacOS builds

  - PR #3354: Multiple commits - Don’t strip quotes from cmd line entries - Handle single character filenames - Update tar format to tar-pax - Perform some cleanup - Include devel-check status in configure summary - Turn off MacOS CI

  - PR #3334: Fix function declaration

  - PR #3332: Fixes for PR3329

## 16.1.2. 5.0.2 – 21 Mar 2024

Important

Cross-version incompatibility The known issue of cross-version operability between members of the PMIx v5.0 release series has been resolved in this release. Thus, v5.0.2 and all subsequent releases can operate across versions, including the v5.0.1 and v5.0.0 releases.

Detailed changes include:

  - PR #3330: Do not include PMIX_PREFIX in spawn upcall

  - PR #3325: Multiple commits

      - Correctly set the app cmd and argv0 fields

      - Don’t overwrite user’s args

      - Correct error in retrieval of node and app info

  - PR #3319: Toughen the submodule checks in autogen.pl

  - PR #3317 Correct group modex storage to avoid duplication

  - PR #3314 Fix memory leak in storing of modex data

  - PR #3311 More cleanup of group operations and local client array

  - PR #3307 Include notes about submodules in docs

  - PR #3299 Multiple commits

      - gds/shmem2: provide a useful error message on memory allocation failure

      - Add “close stale issues” actions

      - oac: strengthen Sphinx check

      - Remove stat call when destroying a dirpath

      - Do not remove the system tmpdir during cleanup

  - PR #3293 Multiple commits

      - gds/shmem: fix build

      - Update how PMIx attributes are looked up.

      - Improve PMIx attribute lookup efficiency.

      - gds/shmem: improve cross-version capabilities

      - Revert “Disable gds/shmem at runtime”

      - Revert “gds/shmem: fix build.”

      - Rename the gds/shmem component to gds/shmem2

      - Protect output files during cleanup

      - Begin to add man pages for PMIx commands

      - Restore support for HWLOC truly ancient

      - Continue work on tool man pages

      - Fix the dictionary transfer in shmem2

  - PR #3280 Multiple commits

      - Implement attribute to specify connection order and process MCA params

      - Error out of attempts for 32-bit builds

      - hash: Add internal APIs that specify target key index.

      - hash: Update pmix_hash functions to accept a pmix_keyindex_t*

      - gds/shmem: Improve error message in tma_realloc()

      - Remove static version of global function

      - Fix handling of “–” in cmd lines

      - Update the doubleget test

      - Fully implement refresh cache support

      - Adjust preg component priorities

      - Remove unused function

      - gds/shmem: Implement first cut of tma_realloc()

      - Begin work on removing use of “stat”

      - Fix typo

      - avoid loopback in resolve_nspace_requests

      - Refactor the prm framework

      - Assign NULL to free’d pointer

      - Cleanup some “unused params” errors

      - Protect a variable

      - Check for stdatomic.h

      - Remove pmix_osd_dirpath_access

      - Remove use of stat from pmix_getcwd

      - Remove use of stat

      - Remove use of stat in pmix_globals

      - Remove use of stat to check file existence

      - Test open a dir instead of using stat

      - Minor cleanups for unused params

      - pmix.h: Add capability flags

      - Cleanup comments and prep for commit

      - Do not remove the system tmpdir during cleanup

      - Cleanup palloc and prun connections

      - Cleanup a few typos and remove debug output

      - Cast a few parameters when translating macros to functions

      - Resolve problem of stack variables and realloc

      - Restore support for detecting shared file systems

      - Properly handle directories during cleanup

      - gds/shmem: revert tma_free() strategy

      - gds/shmem: fix potentially confusing error output

      - Touchup the dirpath_destroy code

      - Fix broken link in README

      - Add a query attribute for number of available slots

      - Do not add no-unused-parameter for non-devel-check builds

      - Better support global keys

      - PMIx_Query_info: removed duplicated PMIX_RELEASE

      - Provide an explanation of session directories

      - Fix –enable-devel-check builds

      - Restore default to enable-devel-check in Git repos

      - Protect against empty envar definition for mca_base_param_files

      - Fix test builds with picky compiler options

      - Protect against NULL hash table labels in debug output

      - Update the Python regex for doc build

      - Disable gds/shmem at runtime

      - Cleanup update

  - PR #3182 Multiple commits

      - Remove debug print

      - Make checking min versions consistent

      - Add an action to test older HWLOC version

      - Touchup the OMPI integration

      - Fix couple of bugs in cmd line parser

      - Fix typo in cmd line processor

      - Add a new attribute to specify connection order

  - PR #3166: Blacklist the HWLOC GL component to avoid deadlock

  - PR #3162: Add a new Github Action

## 16.1.3. 5.0.1 – 9 Sep 2023

Warning

CVE-2023-41915

A security issue was reported by François Diakhate (CEA) which is addressed in the PMIx v4.2.6 and v5.0.1 releases. (Older PMIx versions may be vulnerable, but are no longer supported.)

A filesystem race condition could permit a malicious user to obtain ownership of an arbitrary file on the filesystem when parts of the PMIx library are called by a process running as uid 0. This may happen under the default configuration of certain workload managers, including Slurm.

Warning

Cross-version incompatibility

There is a known issue when operating between PMIx versions v5.0.1 and v5.0.0. This occurs due to a difference in the key-to-index conversion between the two versions. Users are advised to set the PMIX_MCA_gds=hash parameter in their environment when using these two versions.

Detailed changes include:

  - Update news and version for release

  - PR #3149 Multiple commits

      - Do not follow links when doing “chown”

      - Cleanup a little debug in new pctrl tool

  - PR #3145 Multiple commits

      - Retrieve pset names upon PMIx_Get request

      - Add a new “pctrl” tool for requesting job control ops

  - PR #3144 Multiple commits

      - Properly support the “log” example

      - show_help: strip leading/trailing blank lines

      - docs: fix some leftover “Open MPI” references

      - docs: fix HTML word wapping in table cells

      - Improve error handling in setup_topology

      - Define a new server type and connection flags

      - Minor cleanups for disable-dlopen

      - Fix Python bindings

  - PR #3131 Multiple commits

      - Switch to using event lib for connections

      - Roll to version 5.0.1

## 16.1.4. 5.0.0 – 7 Aug 2023

Important

This is the first release in the v5 family and includes some significant changes, both internal and user-facing. A partial list includes:

- initial attribute and API definitions in support of scheduler integration to both applications and resource managers/runtime environments.

- a new shared memory implementation that removes the need for special “workaround” logic due to limitations in the prior method

- support for “qualified” values whereby an application can post multiple values to the same key, each with one or more qualifiers - and then retrieve the desired one by specifying the appropriate qualifier.

- availability of both function and macro equivalents for all support operations (e.g., PMIX_ARGV_APPEND and PMIx_Argv_append). Note that the macro versions have been deprecated by the PMIx Standard, but remain highly recommended for use by those compiling against the library (as opposed to dlopen’ing it)

A full list of individual changes will not be provided here, but will commence with the v5.0.1 release.