3.16
[3.16.0] - 2025-10-09
π New Features
Tools API Environment Variable Support
- Automatic Lightweight Mode: Tools API now automatically detects and respects the
DDS_LIGHTWEIGHT_PACKAGEenvironment variable - No More
make wn_bin: When using lightweight mode, you no longer need to build the worker binary package withmake wn_bin- a huge time saver! - Simplified API Usage: Users no longer need to manually set the
enable_lightweightflag when the environment variable is set - Consistent Behavior: Tools API now behaves consistently with command-line tools (
dds-sessionanddds-submit) - Smaller Packages: Worker packages reduced from ~15MB to ~50KB in lightweight mode
π Bug Fixes
Critical SLURM Plugin Fix for Lightweight Mode
- Job Submission Failure: Fixed critical bug in SLURM plugin that caused job submissions to fail with "No partition specified or system default partition" error when using lightweight mode
- Root Cause: The job script template incorrectly placed executable validation code before #SBATCH directives, violating SLURM's parsing requirements. SLURM stops processing #SBATCH options when it encounters the first executable line, causing all subsequent directives (including
--partition) to be ignored - Template Bug: The placeholder
#DDS_LIGHTWEIGHT_VALIDATIONappeared in both a comment line and the code section. Theboost::replace_all()function replaced both occurrences, breaking the comment syntax and injecting executable code before #SBATCH directives - Resolution:
- Removed lightweight validation code from the job script template entirely
- Eliminated blank lines between #SBATCH directive placeholders
- Validation logic moved to worker nodes where it's actually needed (DDSWorker.sh)
- Impact: SLURM now correctly parses all #SBATCH directives including partition specifications, resource requirements, and job options
Critical Worker Package Deployment Fix
- DDSWorker.sh Logic Error: Fixed inverted logic bug that caused worker package deployment to fail when pre-compiled binaries were present
- Impact: This bug prevented users from deploying full worker packages (with binaries) even though the binaries were correctly packaged
- Resolution: The script now correctly:
- Extracts and uses binaries when they exist (full package mode)
- Validates lightweight mode requirements when binaries are absent (lightweight package mode)
π For Users
If You Use SLURM with Lightweight Mode
If you experienced SLURM job submission failures with errors like:
Batch job submission failed: No partition specified or system default partition
This was caused by a critical bug in the SLURM plugin template that placed executable code before #SBATCH directives. SLURM stopped parsing directives when it encountered this code, ignoring your partition specifications and other settings.
The fix requires rebuilding DDS:
cd /path/to/DDS/build
make
make installAfter rebuilding, your SLURM submissions with lightweight mode will work correctly, and all #SBATCH directives (including partition, CPU requirements, etc.) will be properly recognized.
If You Use Tools API
Before this fix, you had to explicitly set the lightweight flag:
submitInfo.setFlag(SSubmitRequestData::ESubmitRequestFlags::enable_lightweight, true);Now, simply set the environment variable before running your application:
export DDS_LIGHTWEIGHT_PACKAGE=1
./my_dds_appThe Tools API will automatically:
- Start sessions with
--lightweightflag - Configure submit requests for lightweight mode
If You Experienced Worker Package Failures
If you previously encountered errors like:
Error: Can't find WN pre-compiled bin.: /path/to/dds-wrk-bin-3.14-Linux-x86_64.tar.gz
This was caused by the DDSWorker.sh bug and is now fixed. Your worker packages will deploy correctly regardless of whether they contain pre-compiled binaries or are in lightweight mode.
π Complete Changelog
For a complete list of all changes, see CHANGELOG.md.