15.3. PMIx v2.x series
This file contains all the NEWS updates for all the PMIx v2.x series, in reverse chronological order.
15.3.1. 2.2.4 – 07 Jun 2020
- PR #1466: Silence spurious error log 
- PR #1489: Allow specification of hostname to use by client 
- PR #1499/#1512/#1518/#1525/#1528/#1533/#1553: Fix internal tests 
- PR #1678: Update “check_vendor” for PGI problem 
- PR #1734: Fix resource leaks in ptl/usock component 
- PR #1777: Fix crash of dstor locks destructor in ds12 
- PR #1788: Remove unnecessary error logs 
15.3.2. 2.2.3 – 15 Aug 2019
- PR #1162: Fix race condition when clients fail while in a PMIx collective operation 
- PR #1163: Fix a compiler warning in atomics on POWER arch 
- PR #1165: Add BuildRequires: libevent-devel to spec file 
- PR #1180: Remove dependency on C++ compiler for thread detection 
- PR #1180: Add detection for Flex when building in non-tarball situations 
- PR #1182: configury: use PMIX_ENABLE_DLOPEN_SUPPORT instead of enable_dlopen 
- PR #1188: Link libpmix.so to MCA component libraries 
- PR #1190: Ensure any cached notifications arrive after reg completes 
- PR #1194: Ensure any cached notifications arrive after registration completes 
- PR #1209: Update configure logic for clock_gettime 
- PR #1213/#1217/#1221: Add configure option “–enable-nonglobal-dlopen” If the MCA component libraries should link back to libpmix.so 
- PR #1231: SPEC: Allow splitting PMIx in pmix and pmix-libpmi packages 
- PR #1253: Preserve user-provided CFLAGS to protect autotools 
- PR #1267: Correct dmodex example 
- PR #1275: IPv6 IF Read: Buffer Overflow 
- PR #1295: Fix comment: IPv6 IF_NAMESIZE 
- PR #1296: Allow setup_fork to proceed even if gdds and pnet don’t contribute 
- PR #1296: Allow servers to pass NULL module 
- PR #1297: Provide internal blocking ability to the register/deregister fns 
- PR #1298: Add dummy handshake component to psec framework for testing 
- PR #1303: Allow jobs to not specify proc-level info 
- PR #1304: Provide proc data in cases where host does not 
- PR #1305: Add some more values that can be computed 
- PR #1308: Add missing tool rendezvous file 
- PR #1309: Fix potential integer overflow in regex 
- PR #1311: Work around memory bug in older gcc compilers 
- PR #1329: Add -fPIC to static builds 
- PR #1334: Cache only -W CFLAG entries to fix 32-bit builds 
- PR #1341: Do not use ‘==’ in m4 test statements 
- PR #1342: Fix if_linux_ipv6_open interface filter 
- PR #1344: Remove unnecessary libtool init for c++ 
- PR #1346: Fix incorrect pointer casts/deref 
- PR #1347/#1348: Fix use of gethostname 
- PR #1353/#1357: util/environ: use setenv() if available 
- PR #1354: Plug a misc memory leak in the pmix_query_caddy_t destructor 
- PR #1356: Fix another pointer cast/deref in test suite 
- PR #1358: Implement support for class-based info arrays 
- PR #1359: Plug misc minor memory leaks 
- PR #1369: Fix legacy support for PMI-1 
- PR #1370: Cleanup handling of data requests for different nspaces 
- PR #1193: Resolve get of proc-specific job-level info from another nspace 
- PR #1377: Skip fastpath/dstore for NULL keys 
- PR #1379: Change IF_NAMESIZE to PMIX_IF_NAMESIZE and set to safe size 
- PR #1385: Check for EINVAL return from posix_fallocate 
- PR #1389: Plug misc memory leaks in configure 
15.3.3. 2.2.2 – 24 Jan 2019
Fix a bug in macro identifying system events
15.3.4. 2.2.1 – 18 Jan 2019
Fix a bug in registration of default event handlers that somehow slipped thru testing
15.3.5. 2.2.0 – 17 Jan 2019
Important
THIS RELEASE MARKS THE STARTING POINT FOR FULL COMPLIANCE WITH THE PMIX v2.2 STANDARD. ALL API BEHAVIORS AND ATTRIBUTE DEFINITIONS MEET THE v2.2 STANDARD SPECIFICATIONS.
- Add a new, faster dstore GDS component ‘ds21’ 
- Performance optimizations for the dstore GDS components. 
- Plug miscellaneous memory leaks 
- Silence an unnecessary warning message when checking connection to a non-supporting server 
- Ensure lost-connection events get delivered to default event handlers 
- Correctly handle cache refresh for queries 
- Protect against race conditions between host and internal library when dealing with async requests 
- Cleanup tool operations and add support for connections to remote servers. 
- Automatically store the server URI for easy access by client 
- Provide MCA parameter to control TCP connect retry/timeout 
- Update event notification system to properly evict oldest events when more space is needed 
- Fix a number of error paths 
- Handle setsockopt(SO_RCVTIMEO) not being supported 
- Pass the tool’s command line to the server so it can be returned in queries 
- Add support for C11 atomics 
- Fix a bug when registering default event handlers 
15.3.6. 2.1.4 – 18 Sep 2018
- Updated configury to silence warnings on older compilers 
- Implement job control and sensor APIs 
- Update sensor support 
- Fix a few bugs in the event notification system and provide some missing implementation (support for specifying target procs to receive the event). 
- Add PMIX_PROC_TERMINATED constant 
- Properly deal with EOPNOTSUPP from getsockopt() on ARM 
15.3.7. 2.1.3 – 23 Aug 2018
- Fixed memory corruption bug in event notification system due to uninitialized variable 
- Add numeric version definition 
- Transfer all cached data to client dstore upon first connect 
15.3.8. 2.1.2 – 6 July 2018
- Added PMIX_VERSION_RELEASE string to pmix_version.h 
- Added PMIX_SPAWNED and PMIX_PARENT_ID keys to all procs started via PMIx_Spawn 
- Fixed faulty compares in PMI/PMI2 tests 
- Fixed bug in direct modex for data on remote node 
- Correctly transfer all cached job info to the client’s shared memory region upon first connection 
- Fix potential deadlock in PMIx_server_init in an error case 
- Fix uninitialized variable 
- Fix several memory and file descriptor leaks 
15.3.9. 2.1.1 – 23 Feb 2018
- Fix direct modex when receiving new nspace 
- Resolve direct modex of job-level info 
- Fix a bug in attribute configuration checks 
- Fix a couple of bugs in unpacking of direct modex job-level data 
- Correcly handle application setup data during “instant on” launch 
- add a PMIX_BYTE_OBJECT_LOAD convenience macro 
- Fix two early “free” bugs 
- Add an example PMI-1 client program 
15.3.10. 2.1.0 – 1 Feb 2018
Important
This release contains the first implementation of cross-version support. Servers using v2.1.0 are capable of supporting clients using PMIx versions v1.2 and above. Clients using v2.1.0 are able to interact with servers based on v1.2 and above.
- Added cross-version communication support 
- Enable reporting of contact URI to stdout, stderr, or file (PR #538) 
- Enable support for remote tool connections (PR #540, #542) 
- Cleanup libevent configure logi to support default install paths (PR #541) 
- Debounce “unreachable” notifications for tools when they disconnect (PR #544) 
- Enable the regex generator to support node names that include multiple sets of numbers 
15.3.11. 2.0.3 – 1 Feb 2018
- Fix event notification so all sides of multi-library get notified of other library’s existence 
- Update syslog protection to support Mac High Sierra OS 
- Remove usock component - unable to support v1.x clients due to datatype differences 
- Cleanup security handshake 
- Cleanup separation of PMI-1/2 libraries and PMIx symbols 
- Protect against overly-large messages 
- Update data buffer APIs to support cross-version operations 
- Protect receive callbacks from NULL and/or empty buffers as this can occur when the peer on a connection disappears. 
- Fix tool connection search so it properly descends into the directory tree while searching for the server’s contact file. 
- Fix store_local so it doesn’t reject a new nspace as that can happen when working with tools 
- Ensure we always complete PMIx_Finalize - don’t return if something goes wrong in the middle of the procedure 
- Fix several tool connection issues 
15.3.12. 2.0.2 – 19 Oct 2017
- Update RPM spec file (rpmbuild -ta, and –rebuild fixes) (PR #523) 
- Support singletons in PMI-1/PMI-2 (PR #537) 
- Provide missing implementation support for arrays of pmix_value_t’s (PR #531) 
- Remove unsupported assembly code for MIPS and ARM processors prior to v6 (PR #547) 
- Fix path separator for PMIx configuration files (PR #547) 
- Add configure option to enable/disable the default value for the show-load-errors MCA param (PR #547) 
15.3.13. 2.0.1 – 24 Aug. 2017
- Protect PMIX_INFO_FREE macro from NULL data arrays 
- Added attributes to support HWLOC shared memory regions 
- Fixed several syntax errors in configure code 
- Fixed several visibility errors 
- Correctly return status from PMIx_Fence operation 
- Restore tool connection support and implement search operations to discover rendezvous files 
15.3.14. 2.0.0 – 22 Jun 2017
Important
This release implements the complete PMIX v2.0 Standard and therefore includes a number of new APIs and features. These can be tracked by their RFC’s in the RFC repository at: https://github.com/pmix/RFCs. A formal standards document will be included in a later v2.x release. Some of the changes are identified below.
- Added the Modular Component Architecture (MCA) plugin manager and converted a number of operations to plugins, thereby allowing easy customization and extension (including proprietary offerings) 
- Added support for TCP sockets instead of Unix domain sockets for client-server communications 
- Added support for on-the-fly Allocation requests, including requests for additional resources, extension of time for currently allocated resources, and return of identified allocated resources to the scheduler (RFC 0005 - https://github.com/pmix/RFCs/blob/master/RFC0005.md) 
- Tightened rules on the processing of PMIx_Get requests, including reservation of the “pmix” prefix for attribute keys and specifying behaviors associated with the PMIX_RANK_WILDCARD value (RFC 0009 - https://github.com/pmix/RFCs/blob/master/RFC0009.md) 
- Extended support for tool interactions with a PMIx server aimed at meeting the needs of debuggers and other tools. Includes support for rendezvousing with a system-level PMIx server for interacting with the system management stack (SMS) outside of an allocated session, and adds two new APIs: 
- PMIx_Query: request general information such as the process table for a specified job, and available SMS capabilities 
- PMIx_Log: log messages (e.g., application progress) to a system-hosted persistent store (RFC 0010 - https://github.com/pmix/RFCs/blob/master/RFC0010.md) 
- Added support for fabric/network interactions associated with “instant on” application startup (RFC 0012 - https://github.com/pmix/RFCs/blob/master/RFC0012.md) 
- Added an attribute to support getting the time remaining in an allocation via the PMIx_Query interface (RFC 0013 - https://github.com/pmix/RFCs/blob/master/RFC0013.md) 
- Added interfaces to support job control and monitoring requests, including heartbeat and file monitors to detect stalled applications. Job control interface supports standard signal-related operations (pause, kill, resume, etc.) as well as checkpoint/restart requests. The interface can also be used by an application to indicate it is willing to be pre-empted, with the host RM providing an event notification when the preemption is desired. (RFC 0015 - https://github.com/pmix/RFCs/blob/master/RFC0015.md) 
- Extended the event notification system to support notifications across threads in the same process, and the ability to direct ordering of notifications when registering event handlers. (RFC 0018 - https://github.com/pmix/RFCs/blob/master/RFC0018.md) 
- Expose the buffer manipulation functions via a new set of APIs to support heterogeneous data transfers within the host RM environment (RFC 0020 - https://github.com/pmix/RFCs/blob/master/RFC0020.md) 
- Fix a number of race condition issues that arose at scale 
- Enable PMIx servers to generate notifications to the host RM and to themselves