16.1. PMIx v6.x series

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

16.1.1. 6.1.0 – TBD

Important

This is the second release in the v6 family. The release is based on a refork of the PMIx master branch as the changes since v6.0.0 were extensive. Many of the changes were bug fixes, but the following significant changes are included:

  • build requirements for Git clones includes a minimum Python version of 3.6 - the requirement does not apply to builds from tarball

  • server upcalls no longer require that the upcall return prior to the server executing the provided callback function

  • all APIs are now threadshifted prior to execution for thread safety. Hosts that are providing their own progress engine (in lieu of using the PMIx internal progress thread) must ensure that progress is being provided sufficient to avoid threadlock when calling PMIx APIs.

  • listener thread ports can now be specified as a comma-delimited list of ranges instead of only a single port

  • connection authentication has been tightened and greater controls provided via attributes

  • support for process and node statistics gathering has been added as per the Standard

  • a new API (PMIx_Progress_thread_stop) has been added to direct that the internal progress thread be stopped. This allows the host to stop the progress thread independent from calling a PMIx “finalize” routine.

Detailed changes since refork include:
  • PR #3800: Multiple commits
    • Make thread start/stop marker consistent

    • Final NEWS update

  • PR #3798: Update NEWS and VERSION for rc1

  • PR #3797: Multiple commits
    • fix a problem after second pmix init

    • Add missing attribute

  • PR #3794: Do not double-process IOF formats

  • PR #3792: Multiple commits
    • Cleanup inii/finalize cycle

    • Do not shutdown libevent during finalize

  • PR #3788: Multiple commits
    • Update PMIx_Fence to fully conform to Standard

    • Threadshift IOF API calls

    • Update log support to conform to Standard

    • update-my-copyright.py: properly support git workspaces

    • Seal memory leak

    • Update the monitor_multi example

    • Stop the progress thread right away in server_finalize

    • Silence valgrind issues

    • Implement new API to stop the progress thread

    • Allow passing of progress thread to stop - default NULL to all

    • Protect callbacks from threadshift when progress thread is stopped

    • Add capability: get number function available

    • Ensure to store group info in PMIx server

    • Revamp the pmix_info support

    • Fine-tune the show-version option

    • Improve description of PMIx_Compute_distances API

    • Fully support return of static values

    • Cleanup and abstract pmix_info support

    • Correctly threadshift PMIx_IOF_push directives

    • Correct cflags used for check_compiler_version.m4

Detailed changes since v6.0.0 included from master:
  • PR #3759: Silence some Coverity warnings

  • PR #3751: Potential double free and use after free (alerts 13,14)

  • PR #3750: Potentially overflowing call to snprintf (alerts 11, 12)

  • PR #3749: Workflow does not contain permissions

  • PR #3748: printf.c: fix off-by-one + underflow errors

  • PR #3747: Use floating numbers for float/double comparisons

  • PR #3743: Extend debugger CI tests

  • PR #3741: Fix indirect debugger launch

  • PR #3739: Add refresh test

  • PR #3735: Cleanup ready-for-debug announcement

  • PR #3734: Fix cmd line option checker

  • PR #3732: Fix bitmap mask literal size

  • PR #3729: Check if we fork’d the tool ourselves

  • PR #3724: Protect against equal signs in option check

  • PR #3722: Implement support for resource usage monitoring

  • PR #3718: Enable use of loopback interface

  • PR #3716: Add new PMIX_GROUP_FINAL_MEMBERSHIP_ORDER attribute

  • PR #3714: Replace sprintf with snprintf

  • PR #3713: Replace int taint limits with defined names

  • PR #3712: Silence latest Coverity warning report

  • PR #3711: Flush namespace sinks’ residuals before destroying namespace

  • PR #3710: Port bug fixes to zlibng component

  • PR #3709: bitmap num_set boundary condition bugfix

  • PR #3708: preg/compress parsing bugfix

  • PR #3707: Silence Coverity warning

  • PR #3706: Update the plog framework

  • PR #3705: Check only for existence of PMIx capability flag

  • PR #3702: Remove unnecessary locks from munge psec module

  • PR #3701: Avoid use of API in PMIx_Init

  • PR #3700: Silence Coverity warnings

  • PR #3699: Silence Coverity warnings

  • PR #3697: Silence Coverity warnings

  • PR #3696: Switch to atomics for tracking initialization

  • PR #3695: Change to using atomic for show_help_enabled

  • PR #3694: Silence Coverity warning

  • PR #3693: Remove stale/unused tests

  • PR #3692: Silence more Coverity warnings

  • PR #3691: Silence Coverity warnings

  • PR #3690: Use the correct value for the number of info to unpack

  • PR #3689: Silence more Coverity warnings

  • PR #3688: Silence Coverity warnings

  • PR #3686: Extend listener thread port specification to support ranges

  • PR #3684: Fix compression components

  • PR #3682: Add attribute to request reports be in physical CPU IDs

  • PR #3681: Add set-env cmd line option definition

  • PR #3680: Minor change to thread construct/ops

  • PR #3678: Fix error code on blocking PMIx_Notify_event calls

  • PR #3676: Silence a few Coverity complaints

  • PR #3675: Improve selection of interfaces

  • PR #3674: Multiple commits
    • Do not remove nspace from global list on rejected connection

    • Allow foreign tools by default

    • Cleanup a bit on connection handling

    • Avoid duplicate namespace entries

  • PR #3672: define default MAXPATHLEN if not defined by system

  • PR #3670: Bugfix in pmix_bitmap_num_set_bits

  • PR #3669: Fix the abort server upcall

  • PR #3667: Update listener thread setting of permissions on connection files

  • PR #3664: Extend authentication support

  • PR #3663: Provide more info on connections

  • PR #3662: Pass the client’s pid as well

  • PR #3661: ci: add group_bootstrap to CI

  • PR #3659: Prevent memory overrun in regx calculation

  • PR #3658: Silence Coverity complaints

  • PR #3657: Revamp stats implementation to reflect Standard

  • PR #3656: Pass the uid/gid for client connections

  • PR #3654: Provide better FQDN support

  • PR #3651: Don’t fail when PMIX_IOF_OUTPUT_TO_FILE directory exists

  • PR #3650: Parameterize client finalize timeout

  • PR #3649: Update termios right away

  • PR #3648: Continue work on pty support

  • PR #3647: Work on enabling “pty” behaviors

  • PR #3646: Always search help arrays if initialized

  • PR #3643: Check return code for notify ready-for-debug

  • PR #3642: Add debugger checks to CI

  • PR #3641: Correct client notify of ready for debugger

  • PR #3640: Only report bad prefix if verbose requested

  • PR #3638: Change default show-load-errors to “none”

  • PR #3637: Prevent show-help from using IOF too soon

  • PR #3635: Update to track changes in Standard

  • PR #3633: Cleanup some group docs

  • PR #3632: Update CI

  • PR #3631: Ensure cleanup of allocated pmix_info_t

  • PR #3630: Properly trigger the “keepalive failed” event

  • PR #3629: Provide better singleton support and support blocking event notify

  • PR #3628: python-bindings: add CI and avoid ‘long’ integer error

  • PR #3622: Update OAC submodule

  • PR #3620: Handle some corner cases for data ops

  • PR #3619: Update the Data pack/unpack functions

  • PR #3618: First set of API updates

  • PR #3615: Check for pthread_np.h header

  • PR #3614: Complete sweep of server upcall callback functions

  • PR #3613: Add a PMIX_FWD_ENVIRONMENT attribute

  • PR #3610: Threadshift the PMIx_Notify_event API

  • PR #3609: Delete built files on “make clean”

  • PR #3608: Decrease min Py version to 3.6

  • PR #3607: Continue work on threadshifting all upcall callbacks

  • PR #3606: Continue work on threadshifting all upcall callbacks

  • PR #3605: Ensure more upcall cbfuncs threadshift

  • PR #3602: Fix the wrapper compiler

  • PR #3601: Ensure to threadshift callback functions

  • PR #3599: Update news from release branches

16.1.2. 6.0.0 – 19 May 2025

Important

This is the first release in the v6 family. The intent for this series is to provide regular “reference tags”, effectively serving as milestones for any development that might occur after the project achieved a stable landing zone at the conclusion of the v5 series. It is expected, therefore, that releases shall be infrequent and rare occurrences, primarily driven by the completion of some significant feature or some particularly critical bug fix.

For this initial release, that feature is completion of the Group family of APIs. This includes support for all three of the group construction modes, including the new “bootstrap” method. A description of each mode can be found in the Group Construction section of the documentation.

A few notes:

(1) Proper execution of the various group construction modes requires that the host provide the necessary backend support. Please check with your host provider to ensure it is available, or feel free to use the PMIx Reference RunTime Environment (PRRTE) - you will require v4.0 or above.

(2) Starting with this release, PMIx requires Python >= v3.7 to build a Git clone (ie., not a tarball). Certain elements of the code base are constructed at build time, with the construction performed by Python script. The constructed elements are included in release tarballs.

(3) PRRTE < v4.0 is not compatible with PMIx >= v6.0 due to internal changes (e.g., show-help messages are now contained in memory instead of on-disk files).

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