This release :
- Introduces the new logging subsystem in the release build for all libraries.
- Messages by default are printed to syslog and stderr but might be redirected to a user-defined function, see pmem(obj)_log_set_function() for details.
- Log level thresholds are controlled via new API, see pmem(obj)_log_set_treshold() for details.
- These new APIs are not available for LIBPMEM2 and LIBPMEMPOOL at the moment.
- The new logging subsystem is suppressed in the debug build when any of the legacy debug logging environment variables is set:
- PMEM_LOG_LEVEL_FILE
- PMEM2_LOG_LEVEL_FILE
- PMEMOBJ_LOG_LEVEL_FILE
- PMEMPOOL_LOG_LEVEL_FILE
- The debug logging subsystem becomes DEPRECATED.
- Introduces fuses against ill-considered use of NDCTL_ENABLE=n.
- PMEMOBJ_IGNORE_DIRTY_SHUTDOWN and PMEMOBJ_IGNORE_BAD_BLOCKS are required to acknowledge the understanding of what production-critical functions are missing for the build without NDCTL.
- Does not allow create PMEMOBJ pool without unsafe shutdown counter (USC) if not explicitly disabled. (#5968)
- use PMEMOBJ_CONF="sds.at_create=0" to disable USC when working without PMem (emulated PMem, Docker, etc.).
- Drops support for building without libpthread (NO_LIBPTHREAD build-time define).