[Pkg-freeipa-devel] [Git][freeipa-team/389-ds-base][upstream] 344 commits: Issue 7150 - Compressed access log rotations skipped, accesslog-list out of sync (#7151)
Timo Aaltonen (@tjaalton)
gitlab at salsa.debian.org
Wed Sep 9 15:13:42 BST 2026
Timo Aaltonen pushed to branch upstream at FreeIPA packaging / 389-ds-base
Commits:
e19137fb by Simon Pichugin at 2025-12-16T15:48:35-08:00
Issue 7150 - Compressed access log rotations skipped, accesslog-list out of sync (#7151)
Description: Accept `.gz`-suffixed rotated log filenames when
rebuilding rotation info and checking previous logs, preventing
compressed rotations from being dropped from the internal list.
Add regression tests to stress log rotation with compression,
verify `nsslapd-accesslog-list` stays in sync, and guard against
crashes when flushing buffered logs during rotation.
Minor doc fix in test.
Fixes: https://github.com/389ds/389-ds-base/issues/7150
Reviewed by: @progier389 (Thanks!)
- - - - -
018247ec by Akshay Adhikari at 2025-12-17T15:53:07+05:30
Issue 6753 - Port ticket47970 test to sasl/regression_test.py using DSLdapObject (#7146)
Description: The old ticket47970_test.py had compatibility issues.
This ports the functionality to sasl/regression_test.py using modern DSLdapObject methods.
Relates: https://github.com/389ds/389-ds-base/issues/6753
Reviewed by: @progier389
- - - - -
346e4306 by progier389 at 2025-12-17T14:35:38+01:00
Issue 6951 - Dynamic Certificate refresh phase 2 - Add/Modify/Delete support (#7140)
Second phase of Dynamic Certificate Refresh
cn=dynamiccertificates backend now supports the following operations:
add
modify
modrdn
delete
Allowing to store and modify dynamically the nss database
issue: #6951
Reviewed by: @tbordaz (Thanks!)
- - - - -
de9459d6 by Akshay Adhikari at 2025-12-17T19:09:51+05:30
Issue 6753 - Port ticket47953 test to acl/misc_test.py using DSLdapObject (#7153)
Description: The old ticket47953_test.py had compatibility issues.
This ports the functionality to acl/misc_test.py::test_delete_aci_with_invalid_syntax
using modern DSLdapObject methods.
Relates: https://github.com/389ds/389-ds-base/issues/6753
Reviewed by: @droideck (Thanks!)
- - - - -
978148d4 by Stanislav Levin at 2025-12-18T16:20:38+01:00
Make nss include paths platform-agnostic (#7159)
Bug Description:
The NSS headers can be packaged in different paths on different
platforms.
Fix Description:
Rely on pkg-config to include correct platform paths.
Fixes: https://github.com/389ds/389-ds-base/issues/7158
Reviewed by: (Thanks!)
Signed-off-by: Stanislav Levin <slev at altlinux.org>
- - - - -
8c2229a0 by progier389 at 2025-12-19T12:45:06+01:00
Issue 7155 - build_candidate_list - Database error 11 with range search (#7156)
Range search behavior discrepancy when hitting nsslapd-rangelookthroughlimit whether filter_candidates_ext returns a short or long list of candidates:
Search is successful if the candidate list is long but fail if it is short
Error should be ignored in both case
Issue: #7155
Reviewed by: @tbordaz (Thanks!)
- - - - -
38045ad5 by progier389 at 2025-12-19T12:46:42+01:00
Issue 6951 - Dynamic Certificate refresh phase 3 - Certificates switch (#7157)
Third phase of Dynamic Certificate Refresh
cn=dynamiccertificates backend now supports the following operations:
server certificate is switched when modified. This is done by:
Block listening and accept threads (to ensure that they are not in a middle of an I/O
Removing SSL layer from listening FileDescriptor
Switch Certificate in NSS layers
Add back SSl layer with new certificates in listening FileDescriptor
Unblock all the threads
Allowing to store and modify dynamically the nss database
issue: #6951
Reviewed by: @tbordaz, @jchapma (Thanks!)
- - - - -
5f152232 by progier389 at 2026-01-05T14:38:38+01:00
Issue 7166 - db_config_set asserts because of dynamic list (#7167)
Avoid assertion in db_config_set when args does not contains dynamic list attributes
Issue: #7166
Reviewed by: @tbordaz (Thanks!)
- - - - -
57fb09fb by Simon Pichugin at 2026-01-05T18:32:52-08:00
Issue 7160 - Add lib389 version sync check to configure (#7165)
Description: Add version validation during configure that ensures
lib389 version in pyproject.toml matches the main project version
in VERSION.sh. Configure fails with clear error message and fix
instructions when versions mismatch, preventing inconsistent releases.
Fixes: https://github.com/389ds/389-ds-base/issues/7160
Reviewed by: @progier389 (Thanks!)
- - - - -
37dcafc0 by Mark Reynolds at 2026-01-06T08:58:09-05:00
Bump version to 3.2.0
- - - - -
1c9c5358 by tbordaz at 2026-01-07T11:21:12+01:00
Issue 7096 - During replication online total init the function idl_id_is_in_idlist is not scaling with large database (#7145)
Bug description:
During a online total initialization, the supplier sorts
the candidate list of entries so that the parents are sent before
children entries.
With large DB the ID array used for the sorting is not
scaling. It takes so long to build the candidate list that
the connection gets closed
Fix description:
Instead of using an ID array, uses a list of ID ranges
fixes: #7096
Reviewed by: Mark Reynolds, Pierre Rogier (Thanks !!)
- - - - -
446bc42e by Mark Reynolds at 2026-01-08T08:31:14-05:00
Issue - Revise paged result search locking
Description:
Move to a single lock approach verses having two locks. This will impact
concurrency when multiple async paged result searches are done on the same
connection, but it simplifies the code and avoids race conditions and
deadlocks.
Relates: https://github.com/389ds/389-ds-base/issues/7118
Reviewed by: progier & tbordaz (Thanks!!)
- - - - -
4936f953 by Simon Pichugin at 2026-01-08T10:02:39-08:00
Issue 7108 - Fix shutdown crash in entry cache destruction (#7163)
Description: The entry cache could experience LRU list corruption when
using pinned entries, leading to crashes during cache flush operations.
In entrycache_add_int(), when returning an existing cached entry, the
code checked the wrong entry's state before calling lru_delete(). It
checked the new entry 'e' but operated on the existing entry 'my_alt',
causing lru_delete() to be called on entries not in the LRU list. This
is fixed by checking my_alt's refcnt and pinned state instead.
In flush_hash(), pinned_remove() and lru_delete() were both called on
pinned entries. Since pinned entries are in the pinned list, calling
lru_delete() afterwards corrupted the list. This is fixed by calling
either pinned_remove() or lru_delete() based on the entry's state.
A NULL check is added in entrycache_flush() and dncache_flush() to
gracefully handle corrupted LRU lists and prevent crashes when
traversing backwards through the list encounters an unexpected NULL.
Entry pointers are now always cleared after lru_delete() removal to
prevent stale pointer issues in non-debug builds.
Fixes: https://github.com/389ds/389-ds-base/issues/7108
Reviewed by: @progier389, @vashirov (Thanks!!)
- - - - -
742c12e0 by Viktor Ashirov at 2026-01-09T11:39:50+01:00
Issue 7172 - Index ordering mismatch after upgrade (#7173)
Bug Description:
Commit daf731f55071d45eaf403a52b63d35f4e699ff28 introduced a regression.
After upgrading to a version that adds `integerOrderingMatch` matching
rule to `parentid` and `ancestorid` indexes, searches may return empty
or incorrect results.
This happens because the existing index data was created with
lexicographic ordering, but the new compare function expects integer
ordering. Index lookups fail because the compare function doesn't match
the data ordering.
The root cause is that `ldbm_instance_create_default_indexes()` calls
`attr_index_config()` unconditionally for `parentid` and `ancestorid`
indexes, which triggers `ainfo_dup()` to overwrite `ai_key_cmp_fn` on
existing indexes. This breaks indexes that were created without the
`integerOrderingMatch` matching rule.
Fix Description:
* Call `attr_index_config()` for `parentid` and `ancestorid` indexes
only if index config doesn't exist.
* Add `upgrade_check_id_index_matching_rule()` that logs an error on
server startup if `parentid` or `ancestorid` indexes are missing the
integerOrderingMatch matching rule, advising administrators to reindex.
Fixes: https://github.com/389ds/389-ds-base/issues/7172
Reviewed by: @tbordaz, @progier389, @droideck (Thanks!)
- - - - -
f5de84e3 by Viktor Ashirov at 2026-01-12T10:58:02+01:00
Issue 7172 - (2nd) Index ordering mismatch after upgrade (#7180)
Commit 742c12e0247ab64e87da000a4de2f3e5c99044ab introduced a regression
where the check to skip creating parentid/ancestorid indexes if they
already exist was incorrect.
The `ainfo_get()` function falls back to returning
LDBM_PSEUDO_ATTR_DEFAULT attrinfo when the requested attribute is not
found.
Since LDBM_PSEUDO_ATTR_DEFAULT is created before the ancestorid check,
`ainfo_get()` returns LDBM_PSEUDO_ATTR_DEFAULT instead of NULL, causing
the ancestorid index creation to be skipped entirely.
When operations later try to use the ancestorid index, they fall back to
LDBM_PSEUDO_ATTR_DEFAULT, and attempting to open the .default dbi
mid-transaction fails with MDB_NOTFOUND (-30798).
Fix Description:
Instead of just checking if `ainfo_get()` returns non-NULL, verify that
the returned attrinfo is actually for the requested attribute.
Fixes: https://github.com/389ds/389-ds-base/issues/7172
Reviewed by: @tbordaz (Thanks!)
- - - - -
fb23c9e3 by Lenka Doudova at 2026-01-13T15:14:15+05:30
Issue 6753 - Port ticket 548 test (#7101)
Description:
Port ticket 548 test into
dirsrvtests/tests/suites/password/pwdPolicy_attribute_test.py
Relates: #6753
Author: Lenka Doudova, aadhikar
Assisted by: Cursor
Reviewer: @droideck(Thanks!)
- - - - -
7c8a16c6 by Viktor Ashirov at 2026-01-14T17:55:29+01:00
Issue 7152 - ns-slapd fails to shutdown when deferred memberof update is in progress (#7187)
Bug Description:
When a deferred memberof update is in progress during shutdown, the
backend operations (add, modify, delete, modrdn) wait in a polling loop
for the deferred task to complete. However, if the deferred thread exits
before clearing the SLAPI_DEFERRED_MEMBEROF flag, the loop becomes
infinite, causing the server to hang during shutdown.
Fix Description:
Add additional check to the polling loops so they exit immediately when
the server is shutting down.
Fixes: https://github.com/389ds/389-ds-base/issues/7152
Reviewed by: @tbordaz (Thanks!)
- - - - -
a84a6a7d by Akshay Adhikari at 2026-01-16T19:35:42+05:30
Issue 7169 - Fix automember_plugin CI test failures (#7181)
Description: Issue 7053 removed member cleanup from MemberOf plugin,
transferring it to Referential Integrity plugin. Enable this plugin
in automember tests and clean up groups before rebuild task tests.
Fixes: #7169
Reviewed by: @progier389
- - - - -
5b32479a by Akshay Adhikari at 2026-01-19T19:45:29+05:30
Issue 6758 - Use OUIA selectors for WebUI plugin tests (#7182)
Description:
Add ouiaId to plugin NavItems and update tests to use OUIA selectors
instead of text matching.
Relates: #6758
Reviewed by: @droideck
- - - - -
9bd93dc6 by progier389 at 2026-01-19T17:24:40+01:00
Issue 7196 - DynamicCertificates returns empty DER (#7197)
Fixing a mistake done while fixing memory leaks.
Value was freed before being added in the entry rather than after ...
Issue: #7196
Reviewed by: @jchapma (thanks!)
- - - - -
c6f458b4 by Viktor Ashirov at 2026-01-20T09:52:47+01:00
Issue 7189 - DSBLE0007 generates incorrect remediation commands for scan limits
Bug Description:
The generated dsconf commands for fixing missing system indexes had two issues:
1. The --add-scanlimit value was not quoted, causing the shell to interpret
"limit=5000 type=eq flags=AND" as multiple arguments instead of a single
value, resulting in "unrecognized arguments: type=eq flags=AND" error.
2. When both matching rule and scanlimit were missing, two separate commands
were generated where the second would fail because the matching rule was
already added by the first command.
Fix Description:
1. Quote the scanlimit value in all remediation commands
2. Combine matching rule and scanlimit fixes into a single command when
both are missing for the same index instead of expected_scanlimit)
Fixes: https://github.com/389ds/389-ds-base/issues/7189
Reviewed by: @progier389, @droideck (Thanks!)
- - - - -
6ce33b1b by progier389 at 2026-01-20T19:41:05+01:00
Issue 7170 - Support of PQC keys (#7188)
Support of Post Quantum Cryptography Keys in certificates:
Added support of a new key type: ML_DSA
Enable the following policies (that are not enabled by defaut): ML-DSA-44, ML-DSA-65- ML-DSA-87
Replaced deprecated function SSL_ConfigSecureServer by SSL_ConfigServerCert
Added test case for ML-DSA certificate. That test case rely of openssl command because python cryptography module does not yet support ML-DSA keys
Issue: #7170
Reviewed by: @tbordaz, @droideck and @vashirov (Thanks!)
- - - - -
4068f68b by dependabot[bot] at 2026-01-21T19:58:46-08:00
Bump lodash from 4.17.21 to 4.17.23 in /src/cockpit/389-console (#7203)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.21 to 4.17.23.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.21...4.17.23)
---
updated-dependencies:
- dependency-name: lodash
dependency-version: 4.17.23
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support at github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- - - - -
3ff253af by Simon Pichugin at 2026-01-23T17:35:45-08:00
Issue 7198 - Web console doesn't show sub-suffix when parent-suffix points to an entry (#7202)
Description: The web console doesn't show sub-suffixes when the
nsslapd-parent-suffix attribute points to an entry rather than a backend
suffix.
For example, creating a sub-suffix ou=foo,ou=people,dc=example,dc=com
with parent-suffix ou=people,dc=example,dc=com (where ou=people is just an
entry, not a suffix) would not appear in the web console tree.
Fix: In backend_build_tree() and get_sub_suffixes(), the code only matched
when nsslapd-parent-suffix exactly equaled an existing backend suffix.
Now it also checks if the parent-suffix is an entry under the current
suffix (ends with ,suffix) and is not itself a backend suffix. This
correctly attaches sub-suffixes to their containing suffix when the
parent-suffix points to an intermediate entry.
Fixes: https://github.com/389ds/389-ds-base/issues/7198
Reviewed by: @progier389 (Thanks!)
- - - - -
aa24c00d by Lenka Doudova at 2026-01-26T16:46:21+01:00
Issue 7014 - memberOf - ignored deferred updates with LMDB
Description:
Fix typo in pytest marker reason.
Relates: #7014
Author: Lenka Doudova
Reviewed by: ???
- - - - -
4a73a31e by Mark Reynolds at 2026-01-26T13:46:56-05:00
Issue 7184 - argparse.HelpFormatter _format_actions_usage() is deprecated
Description:
_format_actions_usage() was removed in python 3.15. Instead we can use
_get_actions_usage_parts() but it also behaves differently between
python 3.14 and 3.15 so we need special handling.
Relates: https://github.com/389ds/389-ds-base/issues/7184
Reviewed by: spichugi(Thanks!)
- - - - -
bc284067 by Viktor Ashirov at 2026-01-27T09:40:12+01:00
Issue 6947 - Revise time skew check in healthcheck tool - add tests (#7208)
Description:
Add tests for DSSKEWLE0003 and DSSKEWLE0004 checks.
Relates: https://github.com/389ds/389-ds-base/issues/6947
Reviewed by: @droideck (Thanks!)
- - - - -
a53c0e4d by Viktor Ashirov at 2026-01-27T09:49:16+01:00
Issue 7201 - Syscall overhead in LMDB import writer thread (#7204)
Bug Description:
ldif2db import is slower with LMDB than with BDB (~3500 vs ~4500
entries/s) due to 2 issues:
1. The MDB_STAT_STEP macro calls `clock_gettime()` to collect
performance statistics. This was called on every single operation inside
the writer loop, resulting in ~3 syscalls per write or ~6000 syscalls
per transaction (with 2000 as the default batch size).
2. In `dbmdb_import_workerq_push()`, after copying work to a worker
slot, the condition variable was never signaled. This caused workers to
spend up to 100ms in `safe_cond_wait()` before checking for new work,
severely limiting import throughput.
Fix Description:
1. Add a new config parameter `nsslapd-mdb-import-stats` (default: off)
to control whether performance statistics collection is enabled.
2. Add `pthread_cond_broadcast()` immediately after copying data to wake
the workers.
After applying these fixes ldif2db import rate is about ~10000 entries/s.
Fixes: https://github.com/389ds/389-ds-base/issues/7201
Reviewed by: @progier389 (Thanks!)
- - - - -
40484cb0 by Viktor Ashirov at 2026-01-27T14:26:29+01:00
Issue 7096 - (2nd) During replication online total init the function idl_id_is_in_idlist is not scaling with large database (#7205)
Bug Description:
The fix for #7096 optimized the BDB backend's `idl_new_range_fetch()`
function to use ID ranges instead of checking the full ID list during
online total initialization. However, the LMDB backend's
`idl_lmdb_range_fetch()` function and its callback
`idl_range_add_id_cb()` were not updated and still use the non-scaling
`idl_id_is_in_idlist()` function.
Fix Description:
Apply the same optimization to the LMDB backend.
Fixes: https://github.com/389ds/389-ds-base/issues/7096
Reviewed by: @tbordaz, @droideck (Thanks!)
- - - - -
8c6d1cfc by progier389 at 2026-01-27T15:39:39+01:00
Issue 7206 - Should log whether TLS key is PQC or not (#7207)
Append [PQC] to the cipher name when logging SSL/TLS if the Key Exchange is one of the KEM group
If connection debug level is enabled, logs in error log the keaType and keaGroup (as integer)
Issue: #7206
Reviewed by: @tbordaz, @droideck (Thanks!)
* Issue 7206 - Should log whether TLS key is PQC or not
* Fix Sourcery A/I comments
* Check PQC in test case
* Update ldap/servers/slapd/auth.c
Co-authored-by: Simon Pichugin <spichugi at redhat.com>
---------
Co-authored-by: Simon Pichugin <spichugi at redhat.com>
- - - - -
27d3ea21 by Viktor Ashirov at 2026-01-30T12:00:13+01:00
Issue 7027 - (2nd) 389-ds-base OpenScanHub Leaks Detected (#7211)
Fix Description:
Update coverity annotations.
Relates: https://github.com/389ds/389-ds-base/issues/7027
Reviewed by: @aadhikar (Thanks!)
- - - - -
5ebce22d by progier389 at 2026-02-02T15:39:18+01:00
Issue 7213 - MDB_BAD_VALSIZE error while handling VLV (#7214)
* Issue 7213 - MDB_BAD_VALSIZE error while handling VLV
Avoid failing lmdb operation when handling VLV index by truncating the key so that key+data is small enough.
Issue: #7213
Reviewed by: @mreynolds389 , @vashirov (Thanks!)
Assisted by: Claude A/I
- - - - -
56f1881b by Lenka Doudova at 2026-02-03T10:28:02+01:00
Issue 6753 - Port ticket 47781 test (#7210)
Description:
Port ticket 47781 test into dirsrvtests/tests/suites/replication/replication_deadlock_test.py
Relates: #6753
Author: Lenka Doudova
Assisted by: Cursor
Reviewer: Mark Reynolds
- - - - -
c2921e87 by Simon Pichugin at 2026-02-03T17:17:02-08:00
Issue 7194 - Repl Log Analysis - Add CSN propagation details (#7195)
Description: The replication log analyzer now shows per‑CSN propagation
details and the console UI can drill into them from chart points. This
adds CSN IDs to chart datapoints, builds detailed arrivals/hops data, and
links replica IDs to origin servers for more accurate origin detection.
The report JSON now includes csnDetails and sampling metadata; when
sampling is active, CSN details are limited to sampled IDs to control
memory use. A new originIncludedInArrivals flag is exposed and the UI
shows an explicit note when origin records are outside the time range.
The cockpit report modal gains an interactive CSN detail view and
clickable chart points.
Tests were expanded to cover CSN details, origin out‑of‑scope behavior,
and partial replication, and include helper functions to reduce duplication.
Fixes: https://github.com/389ds/389-ds-base/issues/7194
Reviewed by: @progier389, @mreynolds389 (Thanks!!)
- - - - -
603f4deb by Lenka Doudova at 2026-02-04T13:24:19+01:00
Issue 6753 - Port ticket 48896 test
Description:
Port ticket 48896 test into dirsrvtests/tests/suites/password/pwdPolicy_token_test.py
Relates: #6753
Author: Lenka Doudova
Assisted by: Cursor
Reviewer: Mark Reynolds
- - - - -
ff44acff by Akshay Adhikari at 2026-02-05T15:19:58+05:30
Issue 6810 - Fix PAM PTA test (#7219)
Description: Fix the PAM PTA test by add missing yield in fixture.
Relates: #6810
Reviewed by: @jchapma
- - - - -
2a0ed9c2 by Akshay Adhikari at 2026-02-05T15:41:09+05:30
Issue 7076 - Fix revert_cache() never called in modrdn (#7220)
Description: The postentry check in PR #7077 was broken - postentry is always NULL
at that point, fixed by removing the check.
Relates: #7076
Reviewed by: @vashirov, @mreynolds389, @droideck (Thanks!)
- - - - -
3d63c2bc by James Chapman at 2026-02-05T15:19:07+00:00
Issue 6951 - Dynamic Certificate refresh phase 4 - Update lib389 and dsconf (#7171)
Desciption:
Add the CertManager abstraction layer and DynamicCerts backend module. Enhance
the NssSsl backend to support importing PKCS#12 containers, containing cert and
private key. Update dsconf to support new PKCS#12-related args, allowing users
to supply passwords via text, stdin, or file.
Fix:
- Introduce CertManager abstraction layer for uniform cert management.
- Implement DynamicCerts backend with add/list/delete operations.
- Extend NssSsl.add_cert to handle PKCS#12 files with passwords via text, stdin, or file.
- Update dsconf CLI to accept PKCS#12 arguments (--pkcs12-pin-text, --pkcs12-pin-stdin, --pkcs12-pin-path).
Relates: https://github.com/389ds/389-ds-base/issues/6951
Reviewed by: @progier389, @mreynolds389, @droideck (Thank you)
- - - - -
d5a83e8f by James Chapman at 2026-02-05T15:33:08+00:00
Issue 7224 - CI Test - Simplify test_reserve_descriptor_validation (#7225)
Description:
Previously, the test_reserve_descriptor_validation CItest calculated
the expected number of file descriptors based on backends, indexes,
SSL/FIPS mode, and compared it to the value returned by the server.
This approach is fragile, especially in FIPS mode.
Fix:
The test has been updated to simply verify that the server corrects
the configured nsslapd-reservedescriptors value if it is set too low,
instead of calculating the expected total.
Fixes: https://github.com/389ds/389-ds-base/issues/7224
Reviewed by: @bsimonova (Thank you)
- - - - -
9bfbec8c by Viktor Ashirov at 2026-02-09T13:15:44+01:00
Issue 7178 - Bundled jemalloc fails to build with GCC 15 (#7216)
Description:
Update spec file to fix build failures on Fedora Rawhide
Fixes: https://github.com/389ds/389-ds-base/issues/7178
Reviewed by: @progier389, @droideck (Thanks!)
- - - - -
fb4254a9 by Viktor Ashirov at 2026-02-09T13:18:09+01:00
Issue 7121 - (2nd) LeakSanitizer: various leaks during replication (#7212)
Bug Description:
With the previous fix 75e0e487545893a7b0d83f94f9264c10f8bb0353 applied,
server can crash in ber_bvcpy.
```
Program terminated with signal SIGSEGV, Segmentation fault.
#0 ber_bvcpy (bvs=0x7f1d00000000, bvd=0x7f1da2cd73c0) at ldap/servers/slapd/value.c:47
47 len = bvs->bv_len;
[Current thread is 1 (Thread 0x7f1db47fe640 (LWP 36576))]
(gdb) bt
#0 ber_bvcpy (bvs=0x7f1d00000000, bvd=0x7f1da2cd73c0) at ldap/servers/slapd/value.c:47
#1 ber_bvcpy (bvs=0x7f1d00000000, bvd=0x7f1da2cd73c0) at ldap/servers/slapd/value.c:40
#2 slapi_value_set_berval (bval=0x7f1d00000000, value=0x7f1da2cd73c0) at ldap/servers/slapd/value.c:322
#3 slapi_value_set_berval (value=value at entry=0x7f1da2cd73c0, bval=bval at entry=0x7f1d00000000) at ldap/servers/slapd/value.c:317
#4 0x00007f1e48b7d787 in value_init (v=v at entry=0x7f1da2cd73c0, bval=bval at entry=0x7f1d00000000, t=t at entry=0 '\000', csn=csn at entry=0x0)
at ldap/servers/slapd/value.c:179
#5 0x00007f1e48b7d884 in value_new (bval=bval at entry=0x7f1d00000000, t=t at entry=0 '\000', csn=csn at entry=0x0) at ldap/servers/slapd/value.c:158
#6 0x00007f1e48b7ddb7 in slapi_value_dup (v=0x7f1d00000000) at ldap/servers/slapd/value.c:147
#7 0x00007f1e48b7e262 in valueset_set_valueset (vs2=0x7f1d502b5218, vs1=0x7f1da2c5b358) at ldap/servers/slapd/valueset.c:1244
#8 valueset_set_valueset (vs1=0x7f1da2c5b358, vs2=0x7f1d502b5218) at ldap/servers/slapd/valueset.c:1220
#9 0x00007f1e48add4af in slapi_attr_dup (attr=0x7f1d502b51e0) at ldap/servers/slapd/attr.c:396
#10 0x00007f1e48af0f60 in slapi_entry_dup (e=0x7f1da2c19000) at ldap/servers/slapd/entry.c:2036
#11 0x00007f1e442c734e in ldbm_back_modify (pb=0x7f1da2c00000) at ldap/servers/slapd/back-ldbm/ldbm_modify.c:741
#12 0x00007f1e48b30076 in op_shared_modify (pb=pb at entry=0x7f1da2c00000, pw_change=pw_change at entry=0, old_pw=0x0)
at ldap/servers/slapd/modify.c:1079
#13 0x00007f1e48b30ced in do_modify (pb=pb at entry=0x7f1da2c00000) at ldap/servers/slapd/modify.c:377
#14 0x000055e990e2fd1c in connection_dispatch_operation (pb=0x7f1da2c00000, op=<optimized out>, conn=<optimized out>)
at ldap/servers/slapd/connection.c:672
#15 connection_threadmain (arg=<optimized out>) at ldap/servers/slapd/connection.c:1955
#16 0x00007f1e48839bd4 in _pt_root (arg=0x7f1e439d9500) at pthreads/../../../../nspr/pr/src/pthreads/ptthread.c:191
#17 0x00007f1e4868a19a in start_thread (arg=<optimized out>) at pthread_create.c:443
#18 0x00007f1e4870f100 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
```
The fix changed from always setting `v_csnset = NULL` to only freeing it
inside the if-block.
Fix Description:
Keep `csnset_free()` outside the if-block to handle all values, not just
those matching the condtion.
Related: https://github.com/389ds/389-ds-base/issues/7121
Reviewed by: @progier389, @droideck (Thanks!)
- - - - -
3938942a by Viktor Ashirov at 2026-02-10T08:51:50+01:00
Issue 7223 - Revert index scan limits for system indexes
This reverts changes introduced by the following commits:
c6f458b42 Issue 7189 - DSBLE0007 generates incorrect remediation commands for scan limits
8b6b3a9f9 Issue 6966 - On large DB, unlimited IDL scan limit reduce the SRCH performance
Relates: https://github.com/389ds/389-ds-base/issues/7223
Reviewed by: @progier389, @tbordaz, @droideck (Thanks!)
- - - - -
4c44e4c5 by Viktor Ashirov at 2026-02-10T08:51:50+01:00
Issue 7223 - Add upgrade function to remove nsIndexIDListScanLimit from parentid
Description:
Add `upgrade_remove_index_scanlimit()` function that removes the
nsIndexIDListScanLimit attribute from parentid index configuration
if present.
This attribute was incorrectly added by a previous version and can
cause issues with index configuration. The upgrade function runs
automatically on server startup and removes the attribute if found.
Relates: https://github.com/389ds/389-ds-base/issues/7223
Reviewed by: @progier389, @tbordaz, @droideck (Thanks!)
- - - - -
41670301 by Viktor Ashirov at 2026-02-10T08:51:50+01:00
Issue 7223 - Add upgrade function to remove ancestorid index config entry
Description:
Add `upgrade_remove_ancestorid_index_config()` function that removes:
* ancestorid from `cn=default indexes`
* ancestorid index config entries from each backend's `cn=index`
Also remove ancestorid index configuration from template-dse.ldif.
Relates: https://github.com/389ds/389-ds-base/issues/7223
Reviewed by: @progier389, @tbordaz, @droideck (Thanks!)
- - - - -
a260b50a by Viktor Ashirov at 2026-02-10T08:51:50+01:00
Issue 7223 - Detect and log index ordering mismatch during backend startup
Description:
Add `ldbm_instance_check_index_config()` function that checks on-disk
index data and logs a message in case of a mismatch with DSE config entry.
Relates: https://github.com/389ds/389-ds-base/issues/7223
Reviewed by: @progier389, @tbordaz, @droideck (Thanks!)
- - - - -
9e5f22c9 by Viktor Ashirov at 2026-02-10T08:51:50+01:00
Issue 7223 - Add dsctl index-check command for offline index repair
Description:
Add `dsctl <instance> index-check [backend] [--fix]` command for offline
detection and repair of index ordering mismatches. This is needed after
upgrade from versions that didn't use integerOrderingMatch for
parentid/ancestorid system indexes.
It's automatically executed as part of RPM %post scriptlet during
upgrade.
Relates: https://github.com/389ds/389-ds-base/issues/7223
Reviewed by: @progier389, @tbordaz, @droideck (Thanks!)
- - - - -
3ebb30a6 by James Chapman at 2026-02-10T10:35:48+00:00
Issue 7230 - Regression in healtcheck NssCheck (#7235)
Description:
Dynamic Certificate lib389 updadates modified get_cert_details() to
return a dict instead of tuple format. _lint_certificate_expiration() and
tls.list_cas() still assumes tuple style access.
Fix:
Update method to use dict key.
Fixes: https://github.com/389ds/389-ds-base/issues/7230
Co-authored-by: @flo-renaud
Reviewed by: @droideck (Thank you)
- - - - -
b24ae4a7 by Simon Pichugin at 2026-02-10T13:09:22-08:00
Issue 3555 - UI - Fix audit issue with npm - @isaacs/brace-expansion (#7228)
Description: Run npm audit fix to address the vulnerability
in @isaacs/brace-expansion.
Relates: https://github.com/389ds/389-ds-base/issues/3555
Reviewed by: @mreynolds389 (Thanks!)
- - - - -
ae4a3947 by Mark Reynolds at 2026-02-11T09:28:58-05:00
Issue 7221 - CI tests - fix some flaky tests
Description:
Try to harden some of the flaky tests with sleeps and more relaxed contraints
Relates: https://github.com/389ds/389-ds-base/issues/7221
Reviewed by: spichugi(Thanks!)
- - - - -
58f5d129 by Akshay Adhikari at 2026-02-12T12:47:23+05:30
Issue 7233 - test_produce_division_by_zero fails with IsADirectoryError in conftest.py (#7234)
Description: glob('/*/*') matches directories causing open() to fail.
Fixes: #7233
Reviewed by: @droideck (Thanks!)
- - - - -
bbda49b8 by Viktor Ashirov at 2026-02-12T09:15:18+01:00
Issue 7241 - Drop dateutil (#7242)
Bug Description:
python-dateutil is unmaintained upstream and is marked for deprecation.
Fix Description:
* Replace `dateutil.tz.tzoffset` with `datetime.timezone(datetime.timedelta())`.
* Replace `dateutil.parser.parse` with standard `datetime` calls.
* Import `datetime` as `dt` to avoid confusion between module and class.
* Fix month lookup bug ('Oct': 9 / 'Sep': 10).
Fixes: https://github.com/389ds/389-ds-base/issues/7241
Reviewed by: jchapma, droideck (Thanks!)
- - - - -
d19c5037 by James Chapman at 2026-02-12T10:42:09+00:00
Issue 7231 - Sync repl tests fail in FIPS mode due to non FIPS compliant crypto (#7232)
Description:
Several sync_repl tests fail when running on a FIPS enabled system. The failures
are caused by the sync repl client (Sync_persist), using TLS options and ciphers
that are not FIPS compatible.
Fix:
Update the sync repl client to use FIPS approved TLS version.
Fixes: https://github.com/389ds/389-ds-base/issues/7231
Reviewed by: @progier389, @droideck (Thank you)
- - - - -
1df3852c by Mark Reynolds at 2026-02-12T12:52:39-05:00
Issue 7248 - CLI - attribute uniqueness - fix usage for exclude subtree option
Description:
Fix typo in usage message for the exclude subtree option
relates: https://github.com/389ds/389-ds-base/issues/7248
Reviewed by: progier (Thanks!)
- - - - -
63bf648f by Mark Reynolds at 2026-02-12T15:10:19-05:00
Issue - CLI - dsctl db2index needs some hardening with MBD
Description:
The usage for dsctl db2index was confusing. The way the attr options and
backend name were displayed it looks like the backend name could come after
the attributes, but instead the backend name was treated as an attribute.
Instead make the backend name required, and change the attribute naming to
require individual options instead of a list of values.
Relates: https://github.com/389ds/389-ds-base/issues/7250
Reviewed by: progier(Thanks!)
- - - - -
d52901f6 by progier389 at 2026-02-13T15:13:05+01:00
Issue 7252 - PQC - Need to iterate on SECOidTag instead of using OID (#7254)
* Issue 7252 - PQC - Need to iterate on SECOidTag instead of using OID
Need to dynamically iterate on SECOidTag instead of using SEC_OID_ML_DSA_* OIDs to avoid issue with upcoming nss versions and fix a RHEL build break with nss 3.112
Issue: #7252
Reviewed by: @mreynolds389, @droideck, @vashirov
* Update ldap/servers/slapd/ssl.c
Co-authored-by: Simon Pichugin <spichugi at redhat.com>
---------
Co-authored-by: Simon Pichugin <spichugi at redhat.com>
- - - - -
2005e267 by progier389 at 2026-02-13T15:34:13+01:00
Issue 6951 - Dynamic Certificas Refresh - CI tests (#7238)
* Issue 6951 - Dynamic Certificas Refresh - CI tests
Add CI test for Dynamic Certificas Refresh:
clu/dsconf_dsctl_security_cli_test.py test dsconf/dsctl instance security ... interface
tls/dynamic_certificates_test.py test the LDAP API
Fix some issues found while running these tests:
Fix rpm_is_older function in mldsa_test.py
Add missing code to handle IP Address in alternate subject name
FIx test failure related to rehash warning
Issue: #6951
Reviewed by: @jchapma (Thanks!)
Assisted by: Claude AI
- - - - -
48ad6123 by Viktor Ashirov at 2026-02-13T15:38:52+01:00
Issue 7184 - (2nd) argparse.HelpFormatter _format_actions_usage() is deprecated (#7257)
Description:
`_format_actions_usage()` was also removed in Python 3.14.3.
Replace version check with `isinstance()` to handle the return type of
`_get_actions_usage_parts()` more robustly across Python versions.
Relates: https://github.com/389ds/389-ds-base/issues/7184
Fixes: https://github.com/389ds/389-ds-base/issues/7253
Reviewed by: @progier389 (Thanks!)
- - - - -
c7ef5b30 by Viktor Ashirov at 2026-02-13T16:27:25+01:00
Issue 7213 - (2nd) MDB_BAD_VALSIZE error while handling VLV (#7258)
Decription:
Disable test_vlv_long_attribute_value on BDB as it hangs sometimes in
CI, blocking other pipelines.
Relates: https://github.com/389ds/389-ds-base/issues/7213
Reviewed by: @progier389 (Thanks!)
- - - - -
7e575cc8 by Viktor Ashirov at 2026-02-13T16:58:24+01:00
Issue 7223 - Use lexicographical order for ancestorid (#7256)
Description:
`ldbm_instance_create_default_indexes()` configured ancestorid with
integerOrderingMatch in the in-memory attrinfo, but ancestorid on disk
might be using lexicographic ordering (data before the upgrade or after
ldif2db import).
Relates: https://github.com/389ds/389-ds-base/issues/7223
Reviewed by: @tbordaz (Thanks!)
- - - - -
245bc3b5 by progier389 at 2026-02-13T17:51:12+01:00
Issue 3134 - Fix build break (#7260)
Fix build break of PR #7238 related to import rpm
Issue: #3134
Reviewed by: @vashirov (Thanks!)
- - - - -
ac3d9253 by Mark Reynolds at 2026-02-16T12:40:55-05:00
Issue 7066/7052 - allow password history to be set to zero and remove history
Description:
For local password policies the server was incorrectly rejecting updates that
set the value to zero. When password history is set to zero the old passwords
in the entry history are not cleaned as expected.
relates: https://github.com/389ds/389-ds-base/issues/7052
relates: https://github.com/389ds/389-ds-base/issues/7066
Reviewed by: progier(Thanks!)
- - - - -
56563c90 by Mark Reynolds at 2026-02-16T16:33:40-05:00
Issue 7243 - UI - add support for hot certificates
Description:
In the "Add Server Certificate" modal add password options for pkcs#12
certificates. Also improved validation for certificate names
relates: https://github.com/389ds/389-ds-base/issues/7243
Reviewed by: jchapman & spichugi (Thanks!!)
- - - - -
b216b86c by Akshay Adhikari at 2026-02-17T17:40:44+05:30
Issue 6758 - Fix Enable Replication dropdown not opening (#7262)
Description: Removed hardcoded isOpen={false} and empty onToggle handler that
prevented dropdown from opening. Let component manage its own state.
Relates: #6758
Reviewed by: @vashirov
- - - - -
6ce19a9a by Viktor Ashirov at 2026-02-18T09:26:57+01:00
Issue 7223 - Remove integerOrderingMatch requirement for parentid (#7264)
Description:
integerOrderingMatch was introduced as a requirement for parentid and
ancestorid indexes for performance reasons. But after #7096 the order
for parentid doesn't make a lot of difference.
Fix Description:
* Remove integerOrderingMatch requirement for parentid.
* Read only first 100 keys from dbscan in index ordering check
* Do not run dsctl index-check during RPM upgrade
Relates: https://github.com/389ds/389-ds-base/pull/7223
Reviewed by: @progier389, @tbordaz (Thanks!)
- - - - -
26feecae by Lenka Doudova at 2026-02-18T14:33:49+01:00
Issue 7236 - Fix GSSAPI tests (#7237)
* Issue 7236 - Fix GSSAPI tests
Description:
Fix for failing GSSAPI tests
Add GSSAPI_ACK variable to pytest workflow for proper execution in
Github CI
Relates: #7236
Author: Lenka Doudova
Reviewer: Barbora Simonova, Viktor Ashirov
- - - - -
a4ae29af by Lenka Doudova at 2026-02-19T15:16:02+01:00
Issue 6753 - Port ticket 49039 test
Description:
Port ticket 49039 test into
dirsrvtests/tests/suites/password/pwp_test.py
Relates: #6753
Author: Lenka Doudova
Assisted by: Cursor
Reviewer: Barbora Simonova, Viktor Ashirov
- - - - -
0e2d9c42 by Viktor Ashirov at 2026-02-23T09:49:52+01:00
Issue 5853 - Update concread to 0.5.10
Description:
Update concread to 0.5.10 and update Cargo.lock
Relates: https://github.com/389ds/389-ds-base/issues/5853
Reviewed by: @droideck (Thanks!)
- - - - -
8b4dbf35 by Mark Reynolds at 2026-02-23T15:06:30-05:00
Issue 7271 - plugins that create threads need to update
active thread count
Description:
Plugins that create threads need to up to the global active thread count.
Otherwise when the server is being stopped the plugin's close function gets
called while these threads are still running and still using the plugin
configuration. This can lead to crashes.
relates: https://github.com/389ds/389-ds-base/issues/7271
Reviewed by: progier & tbordaz (Thanks!!)
- - - - -
ffe1909e by Mark Reynolds at 2026-02-24T08:14:38-05:00
Issue 7273 - In a chaining environment binding as remote user causes an invalid error in the logs
Description:
In a database link/chaining environment you can bind as a remote user, and
this triggers an error when trying to "upgrade_on_bind" as the user does not
locally have a userpassword since it's remote. There is no strong case to
log an error in this situation.
relates: http://github.com/389ds/389-ds-base/issues/7273
Reviewed by: vashirov(Thanks!)
- - - - -
3a233116 by Simon Pichugin at 2026-02-24T09:28:24-08:00
Issue 7279 - UI - Fix typo in export certificate dialog (#7280)
Description: Fix typo "cetificate" -> "certificate" in the
export certificate dialog message.
Fixes: https://github.com/389ds/389-ds-base/issues/7279
Reviewed by: @vashirov (Thanks!)
- - - - -
fff8e54c by Simon Pichugin at 2026-02-24T09:32:41-08:00
Issue 7275 - UI - Improve password policy field validation in Cockpit UI (#7276)
Description: Password policy fields in the Cockpit UI lack client-side validation.
Invalid values only produce generic server-side errors after clicking Save.
Add a shared pwpValidation module and inline validation to all numeric
password policy fields in globalPwp.jsx and localPwp.jsx.
Fixes: https://github.com/389ds/389-ds-base/issues/7275
Reviewed by: @mreynolds389 (Thanks!)
- - - - -
f4d8df66 by Sam Morris at 2026-02-25T13:30:01+01:00
Issue 7246 - correct formatting of 'Gen as CSN' in dsctl get-nsstate output (#7247)
Description: CSNs are formatted as hexadecimal, but the replica id and
sequence number are displayed in decomal.
Fix: use correct format specifiers for hexadecimal output.
Fixes: https://github.com/389ds/389-ds-base/issues/7246
Signed-off-by: Sam Morris <sam at robots.org.uk>
- - - - -
2e424110 by tbordaz at 2026-02-25T14:07:25+01:00
Security fix for CVE-2025-14905
Description:
A vulnerability was found in the 389 Directory Server.
The 389 Directory Server present a risk of heap buffer overflow that
can be exploited to excute a Denial of Service and potential Remote
Code Execution
References:
- https://access.redhat.com/security/cve/CVE-2025-14905
- https://bugzilla.redhat.com/show_bug.cgi?id=2423624
- - - - -
c7e1eb08 by progier389 at 2026-02-25T18:00:24+01:00
Issue 7267 - MDB_BAD_VALSIZE error when updating index (#7268)
* Issue 7267 - MDB_BAD_VALSIZE error when updating index
* Improve import log when writer fails
* Fix Sourcery AI comments
* Fix INDEX_KEY_LENGTH typo
Problem with the key prefix handling when key is too long and must be hashed.
The issue is that the # that is prepended is not reset when iterating over the valueset values (Ending up with very long prefix)
Also refactored the code to avoid duplicate the code that prepare the key from the attribute value (used when updating the index or retrieving a value from an index)
Issue: #7267
Reviewed by: @tbordaz , @vashirov (Thanks!)
Co-authored-by: Viktor Ashirov <vashirov at redhat.com>
---------
Co-authored-by: Viktor Ashirov <vashirov at redhat.com>
- - - - -
336f1ba7 by Simon Pichugin at 2026-02-25T09:05:40-08:00
Issue 7277 - UI - Fix Japanese translation for "Successfully updated group" in Cockpit UI (#7278)
Description: The Japanese translation for "Successfully updated group"
incorrectly displays a "failed" message instead of a "succeeded" message.
This is a copy-paste error from the adjacent failure message translation.
Fixes: https://github.com/389ds/389-ds-base/issues/7277
Reviewed by: @vashirov (Thanks!)
- - - - -
185178ef by James Chapman at 2026-02-26T12:55:47+00:00
Issue 7284 - Creating local password policy succeeds with incorrect passwordInHistory value (#7285)
Description:
attr_check_minmax used strtol(value, NULL, 0), which silently converted
invalid strings to 0, passing subsequent range checks.
Fix:
Add checks for NULL or empty values and uses strtol with endptr to
validate int input before range checks.
Fixes: https://github.com/389ds/389-ds-base/issues/7284
Reviewed by: @vashirov, @tbordaz (Thank you)
- - - - -
a603fcde by Viktor Ashirov at 2026-02-27T09:37:46+01:00
Issue 6220 - Add Packit configuration (#6221)
Description:
Add initial configuration for Packit integration
Fixes: https://github.com/389ds/389-ds-base/issues/6220
Reviewed by: @progier389, @droideck (Thanks!)
- - - - -
8618fd59 by Mark Reynolds at 2026-02-27T08:30:01-05:00
Issue 7265 - changelog maxage validation is not strict enough
Description:
We need to enforce a duration unit is set and the first digit is not zero
when setting maxage for the replication and retro changelogs.
relates: https://github.com/389ds/389-ds-base/issues/7265
Reviewed by: vashirov & spichugi(Thanks!!)
- - - - -
968cbfa1 by Mark Reynolds at 2026-02-27T08:37:56-05:00
Issue 7281 - RFE - CLI - add support to managing additional encryption modules
Description:
Right now there is no way to add/manage additional encryption modules through
the CLI/UI. We need this for allowing multiple server certificates.
relates: https://github.com/389ds/389-ds-base/issues/7281
Reviewed by: vashirov, progier, anbd spichugi(Thanks!!!)
- - - - -
ab7e1fe4 by Lenka Doudova at 2026-03-03T13:51:44+01:00
Issue 7061 - Test for improved error message
Description:
Adding automated test coverage for issue 7061 ("Improve error messages
for dsconf localpwp list")
Relates: #7061
Author: Lenka Doudova
Assisted by: Cursor
Reviewer: Viktor Ashirov
- - - - -
2acf2cb9 by Mark Reynolds at 2026-03-03T10:54:39-05:00
Issue 7271 - implement a pre-close plugin function
Description:
replication protocol could benefit from being notifioed the shutdown process
has started before calling the "close" plugin function. This would allow the
replication protocol to wake up and adjust its active thread count to prevent
a hang during shutdown.
relates: https://github.com/389ds/389-ds-base/issues/7271
Reviewed by: progier, spichugi, and vashirov(Thanks!!!)
- - - - -
ee06feb8 by James Chapman at 2026-03-03T16:04:16+00:00
Issue 7291 - Crash when configuring a replica with an incorrect nsds5ReplicaRoot (#7292)
Description:
Configuring a replica when the replica_root does not exist, results in
a NULL mapping tree node extension, which is deferenced without checking
for NULL.
Fix:
Add a NULL check, log an error message, return LDAP_UNWILLING_TO_PERFORM. Added a CI test.
Fixes: https://github.com/389ds/389-ds-base/issues/7291
Reviewed by: @progier389, @mreynolds389, @droideck (Thank you)
- - - - -
2018c846 by Viktor Ashirov at 2026-03-04T09:27:41+01:00
Issue 3555 - UI - Fix audit issue with npm - ajv, minimatch (#7298)
Description:
Run npm audit fix to address the vulnerabilities in ajv and minimatch.
Relates: https://github.com/389ds/389-ds-base/issues/3555
Reviewed by: @progier389 (Thanks!)
- - - - -
761452f7 by Mark Reynolds at 2026-03-04T14:38:29-05:00
Issue 7265 - Add dse modify callback to validate retrocl trimming settings
Description:
Add dse modify callback to verify retrocl trimming settings are valid
relates: https://github.com/389ds/389-ds-base/issues/7265
Reviewed by: spichugi(Thanks!)
- - - - -
da306ee7 by Mark Reynolds at 2026-03-05T08:29:07-05:00
Issue 7304 - retrocl should not cache DN
Description:
When adding a record to the retro changelog we pass in the flag
SLAPI_OP_FLAG_NEVER_CACHE to prevent the entry from being cached,
but we still update the DN cache leading to unexpected memory growth.
relates: https://github.com/389ds/389-ds-base/issues/7304
Reviewed by: tbordaz(Thanks!)
- - - - -
5cc3edb9 by Mark Reynolds at 2026-03-05T09:58:19-05:00
Issue 7271 - Add new plugin pre-close function check to plugin_invoke_plugin_pb
Description:
In plugin_invoke_plugin_pb we were not checking for the new pre-close function
which led to an error in the logs: pb_op is NULL. In a debug build this leads
to an assertion error at shutdown.
relates: https://github.com/389ds/389-ds-base/issues/7271
Reviewed by: vashirov(Thanks!)
- - - - -
1a55373c by Simon Pichugin at 2026-03-05T17:09:13-08:00
Issue 7300 - RFE - Add OS-level thread names to all server threads (#7301)
Description: Add slapi_set_thread_name() API wrapping pthread_setname_np
and apply it to all server threads.
Workers appear as worker-0..N, the listener as "listener",
replication threads as "repl-prot", "repl-inc-res", etc.
For functions that serve as both thread entry points and direct calls
(db2ldif_skip_all, dbmdb_recno_cache_build), thin wrapper functions
are used to keep thread naming separate from the core logic.
Fixes: https://github.com/389ds/389-ds-base/issues/7300
Reviewed by: @vashirov, @jchapma, @mreynolds389 (Thanks!!!)
- - - - -
a3e4c2ff by Simon Pichugin at 2026-03-05T17:11:01-08:00
Issue 7307 - RFE - Expose work queue and worker utilization metrics (#7308)
Description: Add four new read-only attributes to cn=monitor:
currentworkqueue, maxworkqueue, currentbusyworkers, and maxbusyworkers.
These let administrators detect thread pool saturation using external
monitoring tools (PCP, Grafana, custom scripts).
Worker counts use lock-free atomics with defensive clamping to
guarantee non-negative values.
Add tests for basic metrics validation and concurrent
busy worker tracking.
Add Cockpit UI fields to Monitor - Server Statistics.
Fixes: https://github.com/389ds/389-ds-base/issues/7307
Reviewed by: @progier389, @mreynolds389 (Thanks!!)
- - - - -
45a00d97 by Viktor Ashirov at 2026-03-06T14:26:24+01:00
Issue 7296 - Introduce time limits for GH Actions (#7297)
Description:
* Limit test jobs to 90 mins, compile to 30 mins.
* Adjust default test timeout to 85 minutes.
* Bump actions versions.
Fixes: https://github.com/389ds/389-ds-base/issues/7296
Reviewed by: @progier389 (Thanks!)
- - - - -
3f5f32ef by Viktor Ashirov at 2026-03-06T17:19:58+01:00
Issue 7302 - dblib bdb2mdb fails on F43 -> F43 upgrade (#7303)
Bug Description:
`db->stat` is stubbed with `nothing()` which returns DB_SUCCESS without
populating the stats output parameter. Both `bdb_get_page_count()` and
`bdb_get_entries_count()` then dereference the NULL stats pointer,
causing a segfault.
Fix Descrption:
Add NULL checks for the stats pointer after `db->stat()` calls in both
`bdb_get_page_count()` and `bdb_get_entries_count()`.
Fixes: https://github.com/389ds/389-ds-base/issues/7302
Reviewed by: @tbordaz, @progier389 (Thanks!)
- - - - -
486fb249 by Mark Reynolds at 2026-03-06T13:44:21-05:00
Issuei 7281 - UI - Add encryption module management
Description:
Implement the Security page Encryption Modules tab with list/create/edit/enable-disable/delete
workflows.
relates: https://github.com/389ds/389-ds-base/issues/7281
Assisted by: Cursor
Reviewed by: jchapman(Thanks!)
- - - - -
87ef5060 by Mark Reynolds at 2026-03-08T16:46:48-04:00
Issue 7314 - UI - Add progress steppers to Security, Database, and Replication tabs
Description:
The Security, Databasei (and suffix), and Replication tabs can take a long
time to load. A progress stepper would be a nice addition to give the user
feedback as to why the loading is taking so long.
The database tab took extra work to get all the cockpit API calls in an
ordered nested approach.
relates: https://github.com/389ds/389-ds-base/issues/7314
Assisted-by: Cursor
Reviewed by: spichugi(Thanks!)
- - - - -
b5e25b6b by Mark Reynolds at 2026-03-09T08:43:52-04:00
Issue 7316 - UI - update npm module immutable
Description:
Update immutable module to resolve vulnerability issue
relates: https://github.com/389ds/389-ds-base/issues/7316
Reviewed by: vashirov(Thanks!)
- - - - -
7d5de996 by James Chapman at 2026-03-09T15:43:08+00:00
Issue 7093 - A password policy can be created even when an identical policy already exists (#7283)
Description:
Currently, during password policy creation, if an existing policy entry is found,
a MOD_REPLACE operation is silently performed instead of alerting the user. This
behaviour makes the operation appear successful but hides the fact that the policy
already exists.
Fix:
Introduce a strict mode in ensure_state that returns the actual outcome of the
operation. Update the UI to handle ensure_state responses and add CI test to
verify the behaviour.
Fixes: https://github.com/389ds/389-ds-base/issues/7093
Reviewed by: @droideck (Thank you)
- - - - -
520d19f0 by Mark Reynolds at 2026-03-10T15:10:19-04:00
Issue 7265 - CI - fix retro changelog maxage validation test
Description:
Previously the retro changelog allowed invalid values even though they are
ignored, but not they are rejected and the CI test needs to be updated
relates: https://github.com/389ds/389-ds-base/issues/7265
Reviewed by: spichugi(Thanks!)
- - - - -
22b9d0cf by Lenka Doudova at 2026-03-11T16:21:00+01:00
Issue 6753 - Port ticket 47980 and 47981 tests (#7323)
Description:
Port ticket 47980 and 47981 tests into dirsrvtests/tests/suites/password/regression_test.py using lib389 API
Relates: #6753
Author: Lenka Doudova
Assisted by: Cursor
Reviewer: progier389
- - - - -
887d5018 by James Chapman at 2026-03-12T12:25:58+00:00
Issue 7319 - Action menu for certificates remains in empty certificate list (#7320)
Description:
Action buttons were displayed even when tables were empty
Fix:
Added hasRows condition to pnly show actions when the table contains
data
Fixes: https://github.com/389ds/389-ds-base/issues/7319
Reviewed by: @mreynolds389 (Thank you)
- - - - -
66b6fe3a by Mark Reynolds at 2026-03-12T13:50:49-04:00
Issue 7325 - UI - create an error parser for cockpit spawn errors
Description:
When we call cockpit spawn and one of our CLI tools the error message can
either be in JSON or plain text. We should have a universal parser to properly
handle these types, because right now there are places were the browser
crashes because it thinks the error should be in JSON when it's just a string.
relates: https://github.com/389ds/389-ds-base/issues/7325
Reviewed by: jchapman(Thanks!)
- - - - -
8693ea7b by Mark Reynolds at 2026-03-12T14:12:06-04:00
Issue 7325 - UI - new error parser missing import
Description:
Missing import for cockpit.gettext
relates: https://github.com/389ds/389-ds-base/issues/7325
Reviewed by: spichugi(Thanks!)
- - - - -
05738fee by Mark Reynolds at 2026-03-13T08:13:28-04:00
Issue - UI - Improve suffix import LDIF table
Description:
Under a suffix you can initialize the database using a table of available
LDIF files. There is an action column with just one option (to import it).
This should just be a single button since there are no other options
available.
Also the table was missing a column for the suffix in the LDIF file.
relates: https://github.com/389ds/389-ds-base/issues/7331
Reviewed by: spichugi(Thanks!)
- - - - -
e240eaf9 by Lenka Doudova at 2026-03-15T17:29:11+01:00
Issue 6753 - Port ticket 47976 test
Description:
Port ticket 47976 test into dirsrvtests/tests/suites/plugins/managed_entry_test.py
using lib389 API.
Relates: #6753
Author: Lenka Doudova
Assisted by: Cursor
Reviewer: Akshay Adhikari
- - - - -
a2a3b76e by Mark Reynolds at 2026-03-16T15:43:53-04:00
Issue 7339 - Return the exact DN during export
Description:
During an export if the entry is not in the DN cache we rebuild the DN from
scratch using the entryrdn index, but this resets the case of the DN.
If we want to use the orginal case of the DN, and the dsEntryDN attribute is
present then use that DN for exported ldif.
relates: https://github.com/389ds/389-ds-base/issues/7339
Reviewed by: progier(Thanks!)
- - - - -
500f86c5 by Lenka Doudova at 2026-03-17T07:44:42+01:00
Issue 6753 - Port ticket 48005 test (#7340)
Description:
Port ticket 48005 test to dirsrvtests/tests/suites/clu/task_shutdown_test.py
Relates: #6753
Author: Lenka Doudova
Assisted by: Cursor
Reviewer: Pierre Rogier
- - - - -
b9f03541 by Lenka Doudova at 2026-03-17T18:12:59+01:00
Issue 6753 - Remove ticket 48013 test (#7344)
Description:
Removing ticket 48013 test as the same test case is covered within dirsrvtests/tests/suites/syncrepl_plugin/basic_test.py::test_sync_repl_invalid_cookie.
Relates: #6753
Author: Lenka Doudova
Reviewer: Barbora Simonova
- - - - -
d7995be4 by tbordaz at 2026-03-18T17:22:06+01:00
Issue 7346 - DS does not handle escape char in bind user (#7347)
Bug description:
When normalization assertion value in a DN, the fix #4383
keeps the escaped spaces (i.e '\20') whatever their position
in the value.
The RFC requires this for heading spaces but not for the others.
This prevent to authenticate with a DN containing escaped spaces
in the middle of assertion value
Fix description:
Apply the fix #4383 only for the 1rst value of the assertion
and extend it also to heading sharp
fixes: #7346
Reviewed by: Mark Reynolds (Thanks !)
- - - - -
0f65ae6b by James Chapman at 2026-03-18T19:02:20+00:00
Issue 7342 - CI - repl config regression (#7343)
Description:
Test failed to purge existing repl info
Fixes: https://github.com/389ds/389-ds-base/issues/7342
Co-authored-by: Mark Reynolds <mreynolds at redhat.com>
Reviewed by: @mreynolds389 (Thank you)
- - - - -
942c8eeb by James Chapman at 2026-03-19T10:12:24+00:00
Issue 7312 - UI - Database Maximum Size cannot be easily set by typing (#7313)
Description:
The mdb max size field was clamping user input while typing. With a min
value of 100, when users tried to type values, the first digit would
clamp to 100, making it impossible to enter valid values.
Fix:
NumberInput validation updates, aligned client side validation with server side
updated dynamic lists enablement.
Tidied up the conversion from bytes to MB, converting only at the dsconf
boundaries.
Fixes:
https://github.com/389ds/389-ds-base/issues/7312
Reviewed by: @mreynolds389, @droideck (Thank you)
- - - - -
3d6977e2 by progier389 at 2026-03-19T11:42:25+01:00
Issue 7333 - Fail open condition in ACL (#7334)
Fix Fail open condition in ACL
Issue: #7333
Reviewed by: @mreynolds389 , @droideck (Thanks!)
Summary by Sourcery
Tighten access control handling for referrals by removing a fail-open ACL condition and extending tests to cover referral behavior for both privileged and anonymous binds.
Bug Fixes:
Eliminate the fail-open ACL behavior that granted access when no backend was present in the pblock during access checks.
Tests:
Extend referral tests to verify that both directory manager and anonymous clients receive referral errors without following referrals.
---------
Co-authored-by: Simon Pichugin <spichugi at redhat.com>
- - - - -
0443a5a7 by Mark Reynolds at 2026-03-19T08:15:55-04:00
Issue 7322 - Reject adding a replication agreement that points to itself
Description:
There is nothing that stops you from adding a replication agreement that points
to itself. This will break replication. We need to check and reject this.
relates: https://github.com/389ds/389-ds-base/issues/7322
Reviewed by: spichugi && progier && vahirov (Thanks!!!)
- - - - -
462f5c2a by James Chapman at 2026-03-20T15:32:20+00:00
Issue 7348 - CI - Fix failing dsconf security CLI add cert test (#7349)
Description:
Server side cert validation via the DynamicCerts backend uses CERT_VerifyCertificateNow()
to verify the cert being added. This function is stricter than client side NSS and rejects
the test cert due to cert chain validation issues, even though the certificate is valid.
Fix:
Update the CI test to use the --do-it flag, which bypasses strict validation
Fixes: https://github.com/389ds/389-ds-base/issues/7348
Reviewed by: @progier389 (Thank you)
- - - - -
c9dc8ba9 by Simon Pichugin at 2026-03-20T16:47:30-07:00
Issue 1704 - DNA plugin creates invalid shared config entry with port 0 (#7352)
Description: When the server runs in isolated mode (nsslapd-port=0
and nsslapd-security=off), the DNA plugin creates shared config entries
with dnaPortNum=0. These entries are never updated and cause other
servers to target this instance for range requests it cannot serve.
Skip shared config creation and periodic updates when the server is
isolated. Read nsslapd-security at startup to distinguish isolated
mode from LDAPS-only mode (port=0, security=on).
Add a test that verifies no dnaPortNum=0 entry is created in isolated
mode and the original shared config entry persists.
Fixes: https://github.com/389ds/389-ds-base/issues/1704
Reviewed by: @progier389, @tbordaz (Thanks!!)
- - - - -
22278a4e by Mark Reynolds at 2026-03-23T14:02:58-04:00
Issue 7337 - UI - refactor all error handling to use getApiErrorMessge
Description:
Since dsconf/dsctl/dsidm can return errors in text and JSON so we need to use
the new getApiErrorMessage() function to safely parse the error in fail() and
generate the error message.
relates: https://github.com/389ds/389-ds-base/issues/7337
Generated-by: Cursor
Reviewed by: mreynolds and jchapman(Thanks!)
- - - - -
bd7aafea by Viktor Ashirov at 2026-03-24T11:23:02+01:00
Issue 7126 - WARN - keys2idl - received NULL idl from index_read_ext_allids (#7127)
Bug Description:
Under high concurrency, occasional NULL IDL warnings were logged:
[29/Nov/2025:22:59:13.930441639 +0000] - WARN - keys2idl - received NULL idl from index_read_ext_allids, treating as empty set
[29/Nov/2025:22:59:13.936543122 +0000] - WARN - keys2idl - this is probably a bug that should be reported
[29/Nov/2025:22:59:13.947131944 +0000] - ERR - build_candidate_list - Database error -12795
Since #7124 all cursor operations use transaction isolation, which
increases read-write lock contention under high concurrency. Deadlocked
read transactions returned DBI_RC_RETRY, and after retry exhaustion
`index_read_ext_allids()` returned NULL to callers that did not expect it.
Fix Description:
* Ensure `index_read_ext_allids()` never returns NULL. All early exits
and the retry-exhaustion path now return `idl_alloc(0)` (empty IDL).
* Increase IDL_FETCH_RETRY_COUNT from 5 to 10 and replace the uniform
random sleep with exponential backoff.
Fixes: https://github.com/389ds/389-ds-base/issues/7126
Reviewed by: @tbordaz, @droideck, @progier389 (Thanks!)
- - - - -
386216ce by Viktor Ashirov at 2026-03-25T23:28:08+01:00
Issue 7358 - NSACLPlugin - acl_access_allowed - Missing aclpb 1 (#7359)
Bug Description:
`sync_pblock_copy()` creates a new operation using
`slapi_operation_new(0)` without calling `factory_create_extension()`,
so the ACL pblock extension is never initialized. When the sync-send
thread evaluates a filter with access checks finds no aclpb and logs
'Missing aclpb 1', returning LDAP_OPERATIONS_ERROR to the client.
Fix Description:
Call `factory_create_extension()` after creating the new operation
so that all operation extensions (including the ACL pblock) are
properly initialized. Also copy SLAPI_REQUESTOR_DN so that ACL
checks evaluate against the correct bind identity.
Fixes: https://github.com/389ds/389-ds-base/issues/7358
Reviewed by: @progier389, @tbordaz, @droideck (Thanks!)
- - - - -
e93ec132 by Viktor Ashirov at 2026-03-26T13:28:21+01:00
Issue 3555 - UI - Fix audit issue with npm - flatted, picomatch (#7364)
Description:
Run npm audit fix to address the vulnerabilities in flatted and picomatch.
Relates: https://github.com/389ds/389-ds-base/issues/3555
Reviewed by: @mreynolds389 (Thanks!)
- - - - -
f8630870 by Akshay Adhikari at 2026-03-26T15:42:24+00:00
Issue 7271 - Add test for retrocl trimming shutdown crash (#7356)
Description: Validates server does not crash when shutdown occurs while
retro changelog trim thread is actively running.
Relates: #7271
Reviewed by: progier389
- - - - -
085613d1 by Akshay Adhikari at 2026-03-26T16:07:11+00:00
Issue 7284 - CI - Fix test_grace_limit_section after pwpolicy validation fix (#7357)
Description:
The test replaced passwordGraceLimit with a space to remove it, which is
now correctly rejected after attr_check_minmax validation was tightened.
Use remove_all() to properly delete the attribute instead.
Fixes: #7284
Reviewed by: progier389, droideck
- - - - -
b4201811 by Mark Reynolds at 2026-03-26T15:31:16-04:00
Issue 3658 - UI/CLI - show progress of db tasks
Description:
Currently the CLI/UI does not show you the progress of
import/export/reindex/backup/restore tasks (offline & online)
Part 1:
Server code does not always update the task log, and in archive if
just a name and not a path is provided it default to writting it to
the logs directory instead of the backup directory.
Part 2:
Update CLI to include "watch" options to write the status of tasks
in real time to stdout.
Part 3:
Update UI to use the new watch options and to add a textarea
for the task progress
relates: https://github.com/389ds/389-ds-base/issues/3658
Reviewed by: spichugi(Thanks!)
Update lib389 for the new options to write the task propgress to stdout
Update the UI track task progress
Fix leftovers
Add CI tests
Improve modal behavior:
- Use LogViewer
- Don't close modal after task is complete
- Hide "action" button after success
Add progress viewer for instance creation
- - - - -
855651a5 by progier389 at 2026-03-27T19:14:14+01:00
Issue 6724 - Log fine grained details of operation timing (#7350)
Implement 2 new timing measure:
wqtime (time spent to wait for working threads)
write time (time spend to write results over the network (included poll time if needed)
Allow to select set of timing measure among
wqtime, wtime, writetime, optime, etime
Design document is https://www.port389.org/docs/389ds/design/fine-grain-operation-timing.html
Issues: #6724 and #6326
Reviewed by: @droideck . @mreynolds389, @tbordaz (Thanks !)
Summary by Sourcery
Add configurable fine-grained operation timing and expose it in access logs.
New Features:
Introduce fine-grained operation timing counters for different phases of request processing, including work queue, wait, processing, write, and total times.
Add a configurable ds-fine-grain-operation-timing setting to control which timing metrics are collected and logged, with sensible defaults.
Enhancements:
Include fine-grained timing data in both text and JSON access log formats, replacing legacy etime/wtime/optime fields with a unified, extensible representation.
Track network write time for both regular and SASL I/O paths to better understand response delivery latency.
Tests:
Add integration tests to verify fine-grained timing configuration combinations and to ensure work-queue wait time is reflected correctly in access logs.
- - - - -
bee36196 by Akshay Adhikari at 2026-03-30T19:19:05+05:30
Issue 7053 - Add tests for duplicate member operations (#7345)
Description: Validates MemberOf plugin no longer creates duplicate changelog entries
when users are deleted or renamed in replicated topology.
Relates: #7053
Reviewed by: @tbordaz (Thanks!)
- - - - -
22ba6179 by Simon Pichugin at 2026-03-30T22:18:49-07:00
Issue 7366 - Memory leaks in syncrepl plugin during persistent search operations (#7367)
Description: When running a syncrepl persistent search as a non-root user,
LeakSanitizer detects memory leaks in the sync repl plugin.
Multiple cleanup paths for SyncRequest had inconsistent
and incomplete resource freeing, leaking pblock contents, filters,
queue nodes, and base DNs. Per-thread operation lists were also leaked
on thread exit due to a missing NSPR thread-private destructor.
Consolidate all SyncRequest cleanup into sync_request_free() and
register a destructor for per-thread OPERATION_PL_CTX_T lists.
Add a test for non-root persistent syncrepl search verifying no
OPERATIONS_ERROR or 'Missing aclpb' errors.
Fixes: https://github.com/389ds/389-ds-base/issues/7366
Reviewed by: @progier389 (Thanks!)
- - - - -
dbecd9b2 by Mark Reynolds at 2026-04-01T13:44:47-04:00
Issue 7368 - UI - global password policy page is missing passwordmintokenlength
Description:
The input field for passwordmintokenlength was missing on the global password
policy page, but it was present on the local password policy page
relates: https://github.com/389ds/389-ds-base/issues/7368
Reviewed by: bsimonova & spichugi(Thanks!!)
- - - - -
7d69bde6 by Mark Reynolds at 2026-04-01T13:48:40-04:00
Issue 7362 - UI - Some FormSelect onChange parameters are reversed
Description:
Some FormSelect onChange handleers were not updated for PF5 and the parameters
are reversed.
https://github.com/389ds/389-ds-base/issues/7362
Reviewed by: spichugi(Thanks!)
- - - - -
2dec24d5 by Lenka Doudova at 2026-04-01T21:28:33+02:00
Issue 7375 - CI - Fix clu/dsconf_tasks_test (#7376)
Description:
The dsconf_tasks_test fails because of checking for a string that is not always included in the command output.
Modifying the test so that is checks for a string that is included in the command output with --watch option, but not without it.
Fixes: #7375
Author: Lenka Doudova
Reviewer: Pierre Rogier
- - - - -
ad5460a7 by James Chapman at 2026-04-01T23:04:56+01:00
Issue 7380 - Internal op with negative wtime and large optime (#7381)
Description:
The retro CL plugin triggers internal operations that log incorrect wtime and optime
to the server access logs.This happens because seq_internal_callback_pb() calls the
backend directly without setting the operation start time.
Fix:
Add slapi_operation_set_time_started(op) to seq_internal_callback_pb() to record
when the operation actually starts processing.
Fixes: https://github.com/389ds/389-ds-base/issues/7380
Reviewed by: @mreynolds389 (Thank you)
- - - - -
9d58949a by Mark Reynolds at 2026-04-02T17:04:37-04:00
Issue 7378 - Make sure suffix entry always gets assigned ID 1
Description:
When enabling replication and we add the database RUV tombstone entry check if
this is the first entry being added. If it is, then set the ID to 2, and set a
flag indicating that after we add the suffix entry to bump the next ID count
past the RUV entry id.
And at server startup when we get the "next id from disk" also check if there
if only the RUV entry. If it is, then set the next ID to 1 (for the suffix)
and set the ruv flag that indicating that the entry ID count needs to be
bumped past the RUV entry when the suffix is finally added.
relates: https://github.com/389ds/389-ds-base/issues/7378
CI test assisted by: Cursor
Reviewed by: progier, tbordaz, and spichugi(Thanks!!!)
- - - - -
ab2fa871 by Simon Pichugin at 2026-04-02T22:50:11-07:00
Issue 7370 - Runtime LSan/TSan injection for pytest (#7371)
Description: Add --sanitizer=lsan|tsan pytest option to inject
sanitizers into ns-slapd without rebuilding.
Use systemd drop-in files (dirsrv at .service.d/sanitizer.conf)
on systemd hosts and direct env var injection via DirSrv._start_env
on containers and prefix builds. Drop-ins correctly override the
jemalloc LD_PRELOAD from custom.conf.
Include setup_host.sh for sysctl configuration and a targeted
SELinux policy module (ds_sanitizer.te) that grants dirsrv_t only
ptrace and execmem instead of using domain_can_mmap_files or
setenforce 0.
Fixes: https://github.com/389ds/389-ds-base/issues/7370
Reviewed by: @progier389 (Thanks!)
- - - - -
52d865cf by James Chapman at 2026-04-08T23:56:15+01:00
Issue 7327 - dsctl healthcheck DSMOLE0001 inaccurate recommendations with multiple backends (#7328)
Description:
The dsctl healthcheck tool generates incorrect recommendations for the MO plugin when
multiple backends are present. This commonly occurs in IPA environments where both
userroot and ipaca backends exist. Healthcheck incorrectly suggests indexing attributes
for backends that are not within the MemberOf plugin scope.
Fix:
Determine the MO plugin scope while iterating over backends and only generate
recommendations for backends that fall within that scope.
Removed references to nsslapd-plugincontainerscope as we dont use it.
Fixes:
https://github.com/389ds/389-ds-base/issues/7327
Reviewed by: @droideck (Thank you)
- - - - -
f974643f by James Chapman at 2026-04-09T00:40:07+01:00
Issue 7360 - Expose stats from deferred memberof (#7361)
Description:
Currently, there's no visibility into deferred memberof processing performance.
When deferredupdate is enabled, admins cannot monitor the processing.
Fix:
Add a monitoring interface accessible via dsconf that exposes real time stats.
Relates: https://github.com/389ds/389-ds-base/issues/7360
Reviewed by: @tbordaz, @droideck (Thank you)
- - - - -
57daabd4 by Barbora Simonova at 2026-04-09T09:55:05+02:00
Issue 7353 - CI - Fix checks for plugins/accpol_test.py::test_glinact_nsact
Description:
Update the test to check for inactivity before unlocking the account
Fixes: https://github.com/389ds/389-ds-base/issues/7353
Reviewed by: @droideck, @progier389 (Thanks!)
- - - - -
3157ad37 by progier389 at 2026-04-09T12:30:48+02:00
Issue 7389 - Allow to ignore criticality flags for specific controls (#7390)
* Issue 7389 - Allow to ignore criticality flags for specific controls
Add a new multivalued ds-ignored-control-criticality config attribute containing the list of control type (could be an oid or any utf-8 string) whose criticality flags will be then ignored
Issue: #7389
Reviewed by: @mreynolds389 (Thanks!)
- - - - -
82390379 by Simon Pichugin at 2026-04-09T18:09:23-07:00
Issue 7277 - UI - Fix Japanese translation errors errors in Cockpit UI (#7386)
Description: Fix translation errors in the Japanese locale file (ja.po)
including meaning reversals (success/failure swaps), wrong technical terms
(DNA->DNS, slapd->lapi, time skew->time schedule), copy-paste errors
(edit->delete, ACI->CSR, initialize->export), typos (VLV->VLL, stray characters),
and incorrect grammatical forms.
Fixes: https://github.com/389ds/389-ds-base/issues/7277
Reviewed by: @mreynolds389 (Thanks!)
- - - - -
5e1647f4 by Lenka Doudova at 2026-04-10T09:27:01+02:00
Issue 6753 - Port ticket 48265 test (#7388)
Description:
Porting ticket 48265 test into dirsrvtests/tests/suites/filter/complex_filters_test.py
Relates: #6753
Author: Lenka Doudova
Reviewer: Pierre Rogier
- - - - -
05693d93 by Lenka Doudova at 2026-04-10T09:28:18+02:00
Issue 6753 - Port ticket 48170 test (#7387)
Description:
Porting ticket 48170 test into dirsrvtests/suites/indexes/regression_test.py::test_reject_ns_index_type_comma_packed_value
using lib389 API
Relates: #6753
Author: Lenka Doudova
Assisted by: Cursor
Reviewer: Pierre Rogier
- - - - -
2168b0f9 by James Chapman at 2026-04-10T10:27:37+01:00
Issue 7396 - Testimony failure in monitor_test.py (#7397)
Description:
Docstring error.
Fixes: https://github.com/389ds/389-ds-base/issues/7396
Reviewed by: @mirielka (Thank you)
- - - - -
e8072370 by James Chapman at 2026-04-10T10:59:32+01:00
Issue 7394 - UI - Manual typing of ports can leave out digits (#7395)
Description:
The onChange event triggered port validation on every keystroke, resulting
in calls to check for used ports.
Fix:
Moved port validation from onChange to onBlur event.
Fixes: https://github.com/389ds/389-ds-base/issues/7394
Reviewed by: @mirielka (Thank you)
- - - - -
6d40d18b by Akshay Adhikari at 2026-04-14T10:52:45+05:30
Issue 7119 - CI - Fix flaky test_dna_shared_config_replication (#7385)
Description: Add retry loop around shared config lookup to handle
dna_update_config_event (fires 30s post-restart) which briefly
deletes and recreates shared config entries.
Relates: #7119
Reviewed by: @progier389
- - - - -
687b2a26 by Akshay Adhikari at 2026-04-14T10:54:28+05:30
Issue 7227 - CI - Fix flaky dynamic certificates test crash (#7382)
Description: Add restart workaround before tests to clear
corrupted NSS PKIX cache state from prior cert operations.
Relates: #7227
Reviewed by: @mreynolds389 (Thanks!)
- - - - -
b0196536 by Akshay Adhikari at 2026-04-14T10:55:41+05:30
Issue 4148 - Add unit tests for CSN clock error handling (#7330)
Description: Add 5 CMOCKA unit tests validating CSN generator
properly handles clock failures and time skew detection.
Relates: https://github.com/389ds/389-ds-base/issues/4148
Reviewed by: @tbordaz, @jchapma (Thanks!)
- - - - -
41127627 by Mark Reynolds at 2026-04-14T15:13:28-04:00
Issue 7404 - fix latest compiler warnings
Description:
Fix compiler warnings
relates: https://github.com/389ds/389-ds-base/issues/7404
Reviewed by: spichugi(Thanks!)
- - - - -
220d84a0 by Mark Reynolds at 2026-04-20T09:14:16-04:00
Issue 7407 - dbscan -k option display entries that do not match the specified key
Description:
dbscan starts with locating the requested key, but then it continues to
display every entry after that one until it hits the end of the db. As a side
effect it also always returns a non-zero result code.
relates: https://github.com/389ds/389-ds-base/issues/7407
Reviewed by: progier & tbordaz(Thanks!)
- - - - -
95d70941 by Viktor Ashirov at 2026-04-21T16:56:26+02:00
Issue 7418 - Use-after-free in deferred memberof (#7419)
Bug Description:
On a server under high load a crash can occur when deferred memberof is
enabled.
Fix Description:
Add a common helper `deferred_pblock_cleanup()` for a consistent cleanup
across all deferred_* functions.
Fixes: https://github.com/389ds/389-ds-base/issues/7418
Reviewed by: @mreynolds389 (Thanks!)
- - - - -
e3606a78 by Mark Reynolds at 2026-04-21T11:52:42-04:00
Issue 7423 - cleanup pblock after freeing pre/post entries
Description:
There are few places where we don't see the pre/post entry in the pblock to
NULL after freeing them. Just being overly cautious as some of these changes
might not be needed, but it's still good to set the code example and also
future-proof these areas.
relates: https://github.com/389ds/389-ds-base/issues/7423
Reviewed by: vashirov(Thanks!)
- - - - -
c7ec9e10 by Mark Reynolds at 2026-04-21T14:25:25-04:00
Issue 7088 - Change log level for "Can't locate CSN" error message
Description:
There are legitimate reasons for a CSN temporarily not found in the changelog,
and in recent cases it always resolves itself. Instead of logging a scary
message by default move the log level to "replication".
relates: https://github.com/389ds/389-ds-base/issues/7088
Reviewed by: progier & tbordaz (Thanks!!)
- - - - -
204df3c9 by Simon Pichugin at 2026-04-21T17:57:36-07:00
Issue 3555 - UI - Fix audit issue with npm - brace-expansion (#7411)
Description: Run npm audit fix to address the vulnerabilities
in brace-expansion.
Relates: https://github.com/389ds/389-ds-base/issues/3555
Reviewed by: @vashirov (Thanks!)
- - - - -
e863ad27 by Akshay Adhikari at 2026-04-22T16:34:34+05:30
Issue 7375 - CI - Fix flaky dsconf_tasks_test watch output (#7410)
Description: Print the initial nsTaskLog snapshot in Task.watch()
so early log lines are not silently dropped.
Relates: #7375
Reviewed by: @mreynolds389
- - - - -
a82465a2 by progier389 at 2026-04-22T15:03:15+02:00
Issue 7389 - Fix CONFIG_CHARRAY crash (#7415)
* Issue 7389 - Fix CONFIG_CHARRAY crash
Fix crash related to CONFIG_CHARRAY because config_set does was calling successively the callback with a single value rather than providing the value array.
And fix the bug in the test that hid the problem.
Issue: #7389
Reviewed by: @tbordaz and @mreynolds389 (Thanks!)
- - - - -
03be3fb3 by Viktor Ashirov at 2026-04-22T15:32:56+02:00
Issue 7420 - Inconsistencies in the password policy log messages (#7421)
Bug Description:
There are some inconsistencies in the password policy log messages:
- Mixed first letter case
- Different separators/punctuation before Entry/Policy fields
Fix Description:
Capitalize the first letter of PWDPOLICY_DEBUG messages, standardize
punctuation before Entry/Policy fields, fix `slapi_log_err()` argument
order in charray.c and compare.c, fix function name typo in pw_retry.c,
and update tests to match.
Fixes: https://github.com/389ds/389-ds-base/issues/7420
Reviewed by: @progier389 (Thanks!)
- - - - -
c8e0624a by Mark Reynolds at 2026-04-23T08:18:01-04:00
Issue 7417 - UI - global password policy syntax settings missing passwordMaxRepeats
Description:
The global password policy syntax settings were missing passwordMaxRepeats,
but it is present under the local password policy settings.
relates: https://github.com/389ds/389-ds-base/issues/7417
Reviewed by: spichugi(Thanks!)
- - - - -
b9cc14bf by Simon Pichugin at 2026-04-23T16:19:54-07:00
Issue 7412 - Report thread pool saturation on per-operation access log RESULT lines (#7413)
Description: Extend nsslapd-statlog-level with LDAP_STAT_THREAD_POOL (2).
When enabled, every external operation's RESULT line in the access log
includes wbusy=N/M and wqdepth=N, correlating individual operation
latency with pool utilization at dequeue time.
wbusy=N/M: workers active (N) out of configured max (M).
High ratio signals near-saturation before wtime detects starvation.
wqdepth=N: operations still queued after this one was dequeued.
Non-zero indicates backlog accumulation.
Runtime-toggleable via dsconf. Supported in plain-text (wbusy/wqdepth)
and JSON (wbusy, wmax, wqdepth) formats for all externally-initiated
op types. Internal operations are excluded as they bypass the work
queue. logconv extended to parse and summarize pool stats.
Fixes: https://github.com/389ds/389-ds-base/issues/7412
Reviewed by: @mreynolds389 (Thanks!)
- - - - -
a362dcdf by Viktor Ashirov at 2026-04-24T09:14:22+02:00
Issue 7365 - Add integration with Renovate (#7439)
Description:
Automate updating npm, pip, cargo dependencies using Renovate bot.
Fixes: https://github.com/389ds/389-ds-base/issues/7365
Reviewed by: @progier389 (Thanks!)
- - - - -
8d77b8d4 by Viktor Ashirov at 2026-04-24T11:19:04+02:00
Issue 7437 - LeakSanitizer: memory leaks in CoS cache error paths (#7438)
Description:
Fix memory leaks in CoS plugin when a CoS definition fails validation
or is incomplete.
Fixes: https://github.com/389ds/389-ds-base/issues/7437
Reviewed by: @mreynolds389 (Thanks!)
- - - - -
a7002a72 by renovate[bot] at 2026-04-27T12:04:56+02:00
Migrate config .github/renovate.json (#7450)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
- - - - -
7a0e3139 by Simon Pichugin at 2026-04-27T13:16:12-07:00
Issue 7426 - logconv.py is out of sync with server-emitted note codes (#7427)
Description: notes=N (asynchronous) and notes=B (blocked) were not
tracked or reported, and notes=M (MFA) silently failed to produce any
per-operation output because the class-level dict shadowed the
ResultData field.
Add counters and detail dicts for notes=N and notes=B in ResultData,
remove the shadowing assignments in logAnalyser, and log a debug message
(instead of crashing) when an unrecognized note code is encountered
so future codes do not break analysis.
Decrease redundancy with a shared helper.
Add a test that injects SRCH/RESULT pairs for every known note code
plus an unknown one and asserts both summary counters and
verbose detail blocks.
Fixes: https://github.com/389ds/389-ds-base/issues/7426
Reviewed by: @progier389 (Thanks!)
- - - - -
971fd2d9 by renovate[bot] at 2026-04-28T12:44:27+02:00
Update rust-dependencies to v1 (major) (#7449)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Viktor Ashirov <vashirov at redhat.com>
- - - - -
87f19fcc by renovate[bot] at 2026-04-28T12:54:14+02:00
Update cockpit-389-ds-npm (major) (#7448)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Viktor Ashirov <vashirov at redhat.com>
- - - - -
c8359aeb by renovate[bot] at 2026-04-28T12:56:05+02:00
Update Rust crate openssl to v0.10.78 [SECURITY] (#7455)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
- - - - -
1ab70469 by Viktor Ashirov at 2026-04-28T13:08:41+02:00
Issue 7440 - Substring index produces empty results and can crash when non-default nsSubStrBegin/nsSubStrEnd lengths are configured (#7441)
Bug Description:
1. With begin=1, middle=3, end=3, search doesn't return results for matching entries.
2. With begin=2, middle=2, end=3, server crashes with SEGV
Fix Description:
1. Fix signed/unsigned comparision by casting `bvp->bv_len` and `slapi_value_get_length()` results to `(int)`.
2. Avoid underallocation when (begin + end) > middle*2.
Also port ticket48109_test.py to DSLdapObject.
Fixes: https://github.com/389ds/389-ds-base/issues/7440
Reviewed by: @progier389 (Thanks!)
- - - - -
58bbb7d0 by renovate[bot] at 2026-04-28T13:52:54+02:00
Update dependency uuid to v14 [SECURITY] (#7456)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
- - - - -
86f6ea1a by Mark Reynolds at 2026-04-28T09:48:23-04:00
Issue 7431 - password policy - passwordBadWords is ignored in local policies
Description:
When processing local password policies we only initialize the "bad words"
setting from the global config. So the local policy setting for passwordBadWords
is always skipped/ignored.
In fact we do initialize the password policy config, but when we do the actual
syntax check we directly pull from the global config via:
config_get_pw_bad_words_array()
relates: https://github.com/389ds/389-ds-base/issues/7431
CI test assisted by: Cursor
Reviewed by: progier(Thanks!)
- - - - -
e5e57711 by Lenka Doudova at 2026-04-28T16:27:44+02:00
Issue 6753 - Port ticket 48270 test
Description:
Port ticket 48270 test into dirsrvtests/tests/suites/indexes/regression_test.py
Relates: #6753
Author: Lenka Doudova
Assisted by: Cursor
Reviewer: @progier (Thanks!)
- - - - -
c5b4f8ba by Lenka Doudova at 2026-04-28T19:07:25+02:00
Issue 6753 - Porting ticket 48312 test
Description:
Porting ticket 48312 test into dirsrvtests/tests/suites/plugins/managed_entry_test.py by adding the testcase as a part of already existing test test_mentry01.
Relates: #6753
Author: Lenka Doudova
Reviewer: @bsimonova (Thanks!)
- - - - -
d05b7900 by Viktor Ashirov at 2026-04-29T11:22:50+02:00
Issue 6942 - Crash in `slapi_sdn_get_ndn()` (#7318)
Bug Description:
In `id2entry_add_ext()` we have a workaround that normalizes entry DN
against the parent's cached DN to fix case difference (bz628300). But
`cache_add_tentative()` has already inserted the entry into the
`c_dntable` hash table under the old normalized DN (slot A). When the
workaround for bz628300 changes the DN in-place, the subsequent
`CACHE_ADD()` inserts the entry into `c_dntable` under the new
normalized DN (slot B). The entry now exists in 2 hash slots at the same
time. And when the entry is later freed or evicted, only slot B is
cleaned up. Slot A still contains a dangling pointer to the freed
memory. Any further operation that walks the slot A hash chain (search
via `id2entry` or delete via `cache_find_dn`), calls `entry_same_dn()`,
which dereferences the dangling pointer, leading to SIGSEGV.
Fix Description:
1. In `id2entry_add_ext()` call `cache_remove_dn_hash()` under CACHE_LOCK
immediately before the bz628300 DN change to remove the entry from
its current hash slot.
2. Add a new `ep_dn_hash_ndn` field to backentry struct to save the
normalized DN at tentative-add time. When confirming the add in
`entrycache_add_int()`, use the saved NDN to locate and remove the
entry from its original `c_dntable` hash slot before re-inserting
under the current DN. This handles the case where a betxn pre-add
plugin changed the DN between cache_add_tentative() and CACHE_ADD().
Fixes: https://github.com/389ds/389-ds-base/issues/6942
Reviewed by: @progier389, @tbordaz, @droideck (Thanks!)
- - - - -
12b9c830 by Mark Reynolds at 2026-04-29T17:55:41-04:00
Bump version to 3.2.1
- - - - -
f1fd5c3c by Mark Reynolds at 2026-04-30T08:38:54-04:00
Issue 7452 - UI - password polices - reorganize settings
Description:
Password min token length only works with "passwordUserAttributes", but in the
global policy page it was not located logically. Local policy edit page is
also missing the "max repeats" and "passwordMinTokenLength" settings.
relates: https://github.com/389ds/389-ds-base/issues/7452
Reviewed by: mirielka(Thanks!)
- - - - -
8560f761 by progier389 at 2026-04-30T15:29:19+02:00
issue 6867 - check file access in dsctl ldif2db (#7459)
Check file access in dsctl ldif2db so that the command fails before clearing the backend.
in order to check that a sub process is spawed so that we can safely change its uid and gid to the instance localuser one
issue: #6867
Reviewed by: @mreynolds389 (Thanks!)
- - - - -
758adca1 by Lenka Doudova at 2026-04-30T15:51:01+02:00
Issue 6753 - Port ticket 48272 test (#7442)
Description:
Porting ticket 48272 test into dirsrvtests/tests/suites/plugins/addn_test.py
Relates: #6753
Author: Lenka Doudova
Assisted by: Cursor
Reviewer: @progier (Thanks!)
- - - - -
400466b3 by Lenka Doudova at 2026-05-04T06:09:03+02:00
Issue 6753 - Port ticket 48214 test
Description:
Port ticket 48214 test into dirsrvtests/tests/suites/config/config_test.py
Relates: #6753
Author: Lenka Doudova
Assisted by: Cursor
Reviewer: @mreynolds389, @droideck (Thanks!)
- - - - -
61d6233e by renovate[bot] at 2026-05-04T10:19:05+02:00
Update github-actions (#7474)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
- - - - -
7b1fd882 by Simon Pichugin at 2026-05-04T17:16:37-07:00
Issue 7457 - Refactor memberOf perf test (#7458)
Description: The memberof perf test module uses old and
legacy lib389 objects, polls memberOf sync on a fixed 30s
sleep with a full (memberOf=*) walk per iteration,
and has hard-coded perf-grade parameters that make it
unusable in a CI budget.
Use correct lib389 objects, add intervals, low-power mode
for smoke-runs and add two benchmarks
(test_replace_member_list, test_ldif2db_dense_member_import)
that report median/p95/p99.
Fix minor issues.
Fixes: https://github.com/389ds/389-ds-base/issues/7457
Assisted by: Claude Code
Reviewed by: @progier389 (Thanks!)
- - - - -
4ef9bb0a by Viktor Ashirov at 2026-05-05T11:13:47+02:00
Issue 7372 - Reindex adds tombstones to ancestorid causing export failures (#7373)
Bug Description:
During import/reindex, tombstone entries are added to the ancestorid
index. When those tombstones are later purged, the purge thread skips
updates to ancestorid index. This leaves stale entry IDs in the
ancestorid index referencing entries in id2entry that are no longer
there.
Fix Description:
Skip tombstone entries when building the ancestorid index during
import/reindex.
Fixes: https://github.com/389ds/389-ds-base/issues/7372
Reviewed by: @progier389, @tbordaz, @droideck (Thanks!)
- - - - -
bec7af16 by Firstyear at 2026-05-05T11:15:00+02:00
Issue 7289 - RFE - Container First Run Improvements (#7290)
Bug Description: On first run of a container we always are creating
the self-signed-cert even if it's not used. Additionally setting
the DS_SUFFIX_NAME only adjusted dsrc, it didn't create the suffix
Fix Description:
* If a TLS certificate is being imported, don't generate self-signed
certificates on first run.
* If a DS_SUFFIX_NAME is set, create the suffix on first run
fixes: https://github.com/389ds/389-ds-base/issues/7289
Author: William Brown <william at blackhats.net.au>
Review by: @vashirov
- - - - -
1e429293 by progier389 at 2026-05-05T12:28:47+02:00
Issue 3082 - Separate test code from lib389 (#7430)
* Issue 3082 - Separate test code from lib389
Remove pytest module adherence from lib389 by moving the pytest fixtures in a new test389 library:
Moving topologies, perf_tools, dsrate in dirsrvtests
Duplicate topologies into lib389.tests
Replace lib389.topologies by test389.topologies in dirsrvtests tests
Replace lib389.topologies by lib389.tests.topologies in lib389.tests tests
Issue: #3082
Reviewed by: @vashirov (Big Thanks!)
* fix lib389.tests
* Fix lib389.test paths
Co-authored-by: Viktor Ashirov <vashirov at redhat.com>
* Set proper libpath in create_test.py
* Fix new testcase after rebase
* Update dirsrvtests/create_test.py
Co-authored-by: Viktor Ashirov <vashirov at redhat.com>
---------
Co-authored-by: Viktor Ashirov <vashirov at redhat.com>
- - - - -
f8c69923 by progier389 at 2026-05-05T13:52:12+02:00
Issue 7478 - Regression in FreeIPA backup-restore test (#7479)
* Issue 7478 - Regression in FreeIPA backup-restore test
Fix a regression caused by #6867
It seems due by the use of inner function inside a function.
Using class static method instead
Issue: #7478
Reviewed by: @vashirov (Thanks!)
- - - - -
fdb828b6 by Viktor Ashirov at 2026-05-05T16:03:09+02:00
Issue 7470 - dsctl localhost tls import-server-key-cert fails with 'expected str, bytes or os.PathLike object, not NoneType' (#7477)
Fix Description:
Replace `getattr()` with `args.nickname or CERT_NAME` to properly fall
back to 'Server-Cert' when nickname is not provided.
Fixes: https://github.com/389ds/389-ds-base/issues/7470
Reviewed by: @progier389 (Thanks!)
- - - - -
edde6f7a by Akshay Adhikari at 2026-05-06T18:57:23+05:30
Issue 6641 - MODRDN fails when referint-tracked attr is MUST and SINGLE-VALUE (#7409)
Description: Group consecutive DEL+ADD modifications on the same
attribute into a single atomic modify so that schema_check sees
the final state rather than the intermediate empty state.
Relates: #6641
Reviewed by: @droideck, @tbordaz, @jchapma (Thanks!)
- - - - -
37e91a15 by Viktor Ashirov at 2026-05-06T15:44:32+02:00
Issue 7475 - Fix CI test failures (#7476)
Description:
`retrocl`, `resource_limits` and `clu` test suites are flaky and fail
from time to time.
Fixes: https://github.com/389ds/389-ds-base/issues/7475
Reviewed by: @progier389 (Thanks!)
- - - - -
bbaa0667 by Lenka Doudova at 2026-05-07T08:48:27+02:00
Issue 6753 - Remove ticket 48497 test (#7482)
Description:
Ticket 48497 tests are already covered in dirsrvtests/suites/indexes/regression_test.py,
namely in test_reindex_homedirectory_matching_rules and test_reindex_homedirectory_mixed_value tests),
therefore the ticket 48497 can be removed.
Relates: #6753
Author: Lenka Doudova
Reviewer: @mreynolds389 (Thanks!)
- - - - -
ba464960 by Lenka Doudova at 2026-05-07T08:57:06+02:00
Issue 6753 - Port ticket 48194 test
Description:
Porting ticket 48194 test to dirsrvtests/tests/suites/tls/cipher_test.py
Relates: #6753
Author: Lenka Doudova
Reviewer: @progier389, @jchapma (Thanks!)
- - - - -
cb7ddaa5 by renovate[bot] at 2026-05-07T09:38:02+02:00
Update Rust crate openssl to v0.10.79 [SECURITY] (#7484)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
- - - - -
825e25d1 by Lenka Doudova at 2026-05-07T15:37:17+02:00
Issue 6753 - Port ticket 48366 test (#7481)
Description:
Porting ticket 48366 test into dirsrvtests/tests/suites/acl/proxy_authz_test.py
Relates: #6753
Author: Lenka Doudova
Assisted by: Cursor
Reviewer: @mreynolds389, @progier389 (Thanks!)
- - - - -
d2d96daa by Lenka Doudova at 2026-05-11T08:37:46+02:00
Issue 6753 - Port ticket 48383 test (#7486)
Description:
Porting ticket 48383 test into dirsrvtests/suites/import/import_test.py
as test_realloc_on_offline_import_export.
Relates: #6753
Author: Lenka Doudova
Assisted by: Cursor
Reviewer: @progier389 (Thanks!)
- - - - -
71713897 by dependabot[bot] at 2026-05-11T10:42:15+02:00
Bump fast-uri from 3.1.0 to 3.1.2 in /src/cockpit/389-console (#7487)
Bumps [fast-uri](https://github.com/fastify/fast-uri) from 3.1.0 to 3.1.2.
- [Release notes](https://github.com/fastify/fast-uri/releases)
- [Commits](https://github.com/fastify/fast-uri/compare/v3.1.0...v3.1.2)
---
updated-dependencies:
- dependency-name: fast-uri
dependency-version: 3.1.2
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support at github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- - - - -
d7f6b938 by Lenka Doudova at 2026-05-11T11:23:02+02:00
Issue 6753 - Port ticket 48266 test
Description:
Port ticket 48266 test into dirsrvtests/tests/suites/fractional/fractional_test.py using lib389 API.
Relates: #6753
Author: Lenka Doudova
Assisted by: Cursor
Reviewer: @droideck (Thanks!)
- - - - -
0c9ce1e8 by Barbora Simonova at 2026-05-11T17:38:33+02:00
Issue 7435 - Add AGENTS.md to support AI coding assistants
Description:
Add AGENTS.md with project context and related documentation with
building, contributing and testing guidelines for AI assistants.
Add rules for Cursor, Claude and Gemini.
Fixes: https://github.com/389ds/389-ds-base/issues/7435
Reviewed by: @mreynolds389, @progier389, @droideck (Thanks!)
Assisted by: Cursor
- - - - -
1502d93f by Mark Reynolds at 2026-05-12T09:54:21-04:00
Issue 7464 - CLI - allow dsidm to work with other user types
Description:
In the UI you can create these entry types:
- Posix (default for dsidm)
- Basic (similar to nsUserAccount but without posix requirements)
- Traditional (old style entries from DS 1.3)
- Service account
Add a user "--user-type" option to dsiadm users to specifiy these optional types.
The default is stil "posix".
relates: https://github.com/389ds/389-ds-base/issues/7464
reviewed by: spichugi & progier(Thanks!!)
Update argparse to correctly handle different user types when creating a new entry.
Thanks Simon for the assist on this one!
- - - - -
db06e152 by Akshay Adhikari at 2026-05-12T22:39:36+05:30
Issue 6753 - Removing ticket49287 test and porting to DSLdapObject (#7480)
Description:
The old ticket49287_test.py had compatibility issues with raw
python-ldap methods. This ports the functionality to
memberof_multi_backend_test.py using modern lib389 patterns.
The new test focuses on the core memberOf functionality across
multiple backends using UserAccounts, Groups, and MemberOfPlugin
classes instead of raw add_s/modify_s operations.
Relates: #6753
Reviewed by: @progier389
Assisted by: Claude
- - - - -
800939f2 by Simon Pichugin at 2026-05-12T18:08:01-07:00
Issue 7460 - MOD_REPLACE on groups/link attributes modifies overlap targets (#7461)
Description: memberof_replace_list and linked_attrs_replace_backpointers
sort pre/post with slapi_attr_value_cmp_ext, which returns 0 on match
and a negative value or LDAP error code on non-match — not a strict
weak ordering. The merge loop's cmp > 0 branch is never taken, so
overlap members are deleted and re-added on every MOD_REPLACE,
bumping entryUSN.
Switch both comparators to slapi_utf8casecmp on raw bv_val.
For that to work, normalize DN-syntax values in str2entry_fast
(which did not normalize at all — the old code sat under an unset
OBSOLETE_DN_SYNTAX_CHECK) and route str2entry_dupcheck through the
same helper. Skip the upgradedn path (SLAPI_STR2ENTRY_USE_OBSOLETE_DNFORMAT)
in both, preserving raw bytes for the LMDB import. Fix a stray missing
comma in the dupcheck strict-fail slapi_log_err. Drop the now-unused
qsortConfig plugin global.
Add Python regression tests for both memberOf and linkedAttrs cases.
Fixes: https://github.com/389ds/389-ds-base/issues/7460
Reviewed by: @progier389 (Thanks!)
- - - - -
bb43de9f by Akshay Adhikari at 2026-05-13T16:31:18+05:30
Issue 6753 - Removing ticket49303_test and porting to DSLdapObject (#7429)
Description:
The old ticket49303_test.py had compatibility issues.
This ports the functionality to tls_renegotiation_test.py
using modern Encryption class from lib389.
Relates: #6753
Reviewed by: @progier389
Assisted by: Claude
- - - - -
3dc55b29 by Akshay Adhikari at 2026-05-13T16:39:16+05:30
Issue 6753 - Removing ticket49412_test and porting to DSLdapObject (#7428)
Description:
Port test to changelog_test.py using Changelog/Changelog5 classes,
supporting both legacy and new changelog. Replace wildcard imports.
Relates: #6753
Reviewed by: @bsimonova, @mreynolds389 (Thanks!)
Assisted by: Claude
- - - - -
a2551eac by Mark Reynolds at 2026-05-17T12:09:49-04:00
Issue 7402 - CLI - allow healthcheck to work when server is stopped
Description:
Use and extend the DSEldif class to handle most of the lint checks that query
cn=config. If a check must be skipped a message is displayed to the user.
relates: https://github.com/389ds/389-ds-base/issues/7402
Assisted by: Cursor
Reviewed by: spichugi(Thanks!)
- - - - -
ccab7e33 by Mark Reynolds at 2026-05-17T12:09:49-04:00
Add disk space checking functionality for offline server
- - - - -
4f3a0431 by Mark Reynolds at 2026-05-17T12:09:49-04:00
fix CI tests
- - - - -
5f6b41af by Mark Reynolds at 2026-05-17T12:09:49-04:00
Minor fixes
- - - - -
3269cd86 by Mark Reynolds at 2026-05-17T12:09:49-04:00
address Simon's comments
- - - - -
aeabd287 by Mark Reynolds at 2026-05-18T08:24:31-04:00
Issue 7402 - remove debug print state
Description:
Remove debugging print state from offline healthcheck commit
relates: https://github.com/389ds/389-ds-base/issues/7402
Reviewed by: spichugi and mirielka(Thanks!)
- - - - -
6c48ff6b by James Chapman at 2026-05-20T09:57:47+01:00
Issue 7468 - RFE - Add HIBP HTTP client (#7469)
Description:
Implement an HTTP client for querying the Have I Been Pwned (HIBP)
Pwned Passwords API using the k-anonymity model. This is the first
commit toward password breach detection in 389 Directory Server.
Requires libcurl (optional dependency, enabled via --enable-hibp).
- HTTP transport using libcurl
- SHA-1 hashing via NSS
- Unit tests with mock transport
Fixes: https://github.com/389ds/389-ds-base/issues/7468
Reviewed by: @vashirov, @progier389, @mreynolds389 (Thank you)
- - - - -
1a3c98c0 by Mark Reynolds at 2026-05-21T13:46:26-04:00
Issue 7503 - CVE-2026-9064 - Add a limit to the number controls per operation
Description:
Security fix for CVE-2026-9064
To prevent resource starvation limit the number of controls the server will
process per operation. Reject the operation if number of controls exceeds
the limit
relates: https://github.com/389ds/389-ds-base/issues/7503
References:
- https://access.redhat.com/security/cve/cve-2026-9064
- https://bugzilla.redhat.com/show_bug.cgi?id=2480093
CI test assisted by: Cursor
Reviewed by: jchapman & tbordaz (Thanks!!)
- - - - -
05796473 by Mark Reynolds at 2026-05-21T15:11:56-04:00
Issue 7496 - Fix latest GCC compiler warnings
Description:
Fix latest GCC (gcc-16.1.1-1) compiler warnings
relates: https://github.com/389ds/389-ds-base/issues/7496
Reviewed by: jchapman (Thanks!)
- - - - -
6c7ff6b5 by Simon Pichugin at 2026-05-26T18:11:38-07:00
Issue 7475 - Fix CI test failures in test_fd_limits (#7488)
Description: MAX_FD_VAL was computed from pytest's RLIMIT_NOFILE,
but the server caps against its own rlim_max (set by systemd
LimitNOFILE for dirsrv@). When pytest's limit is lower,
TOO_HIGH_VAL = MAX_FD_VAL+1 stays below the server cap and
the modify is accepted instead of rejected.
Compute MAX_FD_VAL from SYSTEMD_LIMIT (handling "infinity"),
and use it for CUSTOM_VAL and the default assertion.
Fixes: https://github.com/389ds/389-ds-base/issues/7475
Reviewed by: @mirielka (Thanks!)
- - - - -
1a9bf0a4 by Mark Reynolds at 2026-05-29T12:40:51-04:00
Issue 7516 - dblayer_bulk_nextdata should not return an error when maxrecords is hit
Description:
When doing a bulk read of an index if the candidates were more than 100 it
would silently stop processing the index read. This would lead to database
corruption. This is most easily reproduced by doing a moddn with a subtree
that had a lot of child entries. The "maxrecords" check is not even needed
so it was removed and this allows all children to be correctly updated
relates: https://github.com/389ds/389-ds-base/issues/7516
Reviewed by: progier(Thanks!)
- - - - -
b584197c by Mark Reynolds at 2026-05-29T12:45:38-04:00
Issue 7514 - Crash when doing moddn on very large subtree
Description:
Attempting to move a subtree underneath another subtree leads to an assertion
failure on debug builds.
Revise the logic of this code so we only call cache_remove if the entry was
actually added to the cache, and also make sure we add dsEntryDN during
imports.
relates: https://github.com/389ds/389-ds-base/issues/7514
Reviewed by: progier & tbordaz (Thanks!)
- - - - -
e66b8ca1 by Mark Reynolds at 2026-05-29T13:20:47-04:00
Issue 7507 - UI - cleanup style and alignments
Description:
Cleanup the layout on some on the settings pages, and the alignment. Some
fields used the entire width of the page for a very small value, and some
places the width of the fields needed indents.
Also NumberInput's minus buttons wouldn't behave correctly unless the value
was an integer (versus a string).
relates: https://github.com/389ds/389-ds-base/issues/7507
Reviewed by: spichugi(Thanks!)
- - - - -
a8d63d5d by Mark Reynolds at 2026-06-02T17:00:44-04:00
Issue 7493 - RFE - Add ShadowAccount fixup task
Description:
ShadowAccount attributes are generated when a password is updated, but when
users are imported these "shadow" attributes are not updated. We need a fixup
tasks to set ShadowLastChange if it's missing, but also to fix the value if
it is stale.
Design doc:
https://www.port389.org/docs/389ds/design/shadow-fixup-design.html
Relates: https://github.com/389ds/389-ds-base/issues/7493
Reviewed by: spichugi & tbordaz(Thanks!)
Apply Simon's requests
- - - - -
e0d44481 by Lenka Doudova at 2026-06-03T10:36:08+02:00
Issue 6753 - Port ticket 48745 and 48746 tests (#7513)
Description:
Porting ticket 48745 and 48736 tests into dirsrvtests/tests/suites/indexes/regression_test.py.
Cleaning up unused imports in the file.
Relates: #6753
Author: Lenka Doudova
Assisted by: Cursor
Reviewer: @progier389, @mreynolds389 (Thanks!)
- - - - -
520a4d70 by Lenka Doudova at 2026-06-03T12:21:40+02:00
Issue 6753 - Port ticket 48354 test
Description:
Port ticket 48354 test to dirsrvtests/tests/suites/acl/anonymous_default_aci_test.py using lib389 API.
Relates: #6753
Author: Lenka Doudova
Assisted by: Cursor
Reviewer: @mreynolds389, @progier389
- - - - -
cfa1a0cd by Akshay Adhikari at 2026-06-03T16:01:21+05:30
Issue 6753 - Removing ticket48252_test and porting to DSLdapObject (#7520)
Description:
The old ticket48252_test.py had compatibility issues.
This ports the functionality to entryusn_test.py
using modern DSLdapObject methods.
Relates: #6753
Reviewed by: @mreynolds389 (Thanks!)
Assisted by: Claude
- - - - -
b1d14c10 by Lenka Doudova at 2026-06-03T16:30:44+02:00
Issue 6753 - Port ticket 49658 test
Description:
Porting ticket 49658 test into dirsrvtests/tests/suites/replication/mmr_single_value_conflict_test.py
Relates: #6753
Author: Lenka Doudova
Assisted by: Cursor
Reviewer: @progier389
- - - - -
01a3dfa8 by Viktor Ashirov at 2026-06-03T17:30:32+02:00
Bump version to 3.3.0
- - - - -
514a3741 by progier389 at 2026-06-04T11:43:29+02:00
Issue 7391 - Harden systemd service unit (#7392)
* Issue 7391 - Harden systemd service unit
Set NoNewPrivileges and MemoryDenyWriteExecute settings in systemd unit
Issue: #7391
Reviewed by: @droideck (Thanks!)
- - - - -
f98e364a by progier389 at 2026-06-04T11:50:42+02:00
Issue 7532 - CI - Fix BDB CLU dbmon tests leaving instance offline (#7553)
Fix CLU dbmon CI test by adding the missing import
Issue #7532
Reviewed by: @mreynolds389 (Thanks!)
Summary by Sourcery
Tests:
Update CLU dbmon test module to import the DSEldif helper needed for its execution.
- - - - -
c36ad54e by Mark Reynolds at 2026-06-04T09:34:36-04:00
Issue 7554 - deref plugin null pointer dereference if ber_init fails
Description:
**CWE**: CWE-476 (NULL Pointer Dereference)
A flaw in the 389 Directory Server's dereference control plugin allows an
unauthenticated attacker to crash the LDAP server when the system is under
memory pressure(OOM). The deref plugin, enabled by default, fails to check for
a memory allocation failure before using the result, causing the server
process to terminate.
CI test 'test_deref_and_access_control' already covers this fix.
relates: https://github.com/389ds/389-ds-base/issues/7554
Reviewed by: tbordaz & progier(Thanks!!)
- - - - -
cd0b0e7e by Simon Pichugin at 2026-06-04T19:21:30-07:00
Issue 3555 - UI - Fix audit issue with npm - brace-expansion (#7556)
Description: Run npm audit fix to address the vulnerability
in brace-expansion.
Relates: https://github.com/389ds/389-ds-base/issues/3555
Relates: https://github.com/389ds/389-ds-base/issues/7527
Reviewed by: jchapma (Thanks!)
- - - - -
971e6f14 by Viktor Ashirov at 2026-06-05T11:45:07+02:00
Issue 7549 - Substring index should validate minimum nsSubStrBegin/nsSubStrEnd values (#7550)
Bug Description:
The `nsSubStrBegin` and `nsSubStrEnd` values include the anchor character
(`^` for begin, `$` for end) in the configured length. The actual number of
value characters stored in the index key is `configured_value - 1`.
A value of 1 for begin or end produces an index key with 0 value
characters, which matches everything and is not useful.
Fix Description:
Add validation to detect nsSubStrBegin/nsSubStrEnd values less than 2,
adjust them to 2, and log a warning.
Relates: https://github.com/389ds/389-ds-base/issues/7440
Fixes: https://github.com/389ds/389-ds-base/issues/7549
Reviewed by: @progier389 (Thanks!)
- - - - -
4a4b23d3 by Viktor Ashirov at 2026-06-05T11:45:45+02:00
Issue 7539 - Server shutdown during online reindex may lead to data loss (#7540)
Bug Description:
When an online reindex task is aborted, for example by shutting down the
server with SIGTERM while the reindex is in progress, the database data
is lost, id2entry contains only 1 entry - RUV tombstone.
Additionally, a SIGSEGV in `dbmdb_public_db_op` is observed when
replication plugin tries to save the RUV state.
Fix Description:
When a reindex fails, don't close or delete the db. The backend is kept
busy (unavailable for client operations) to prevent searches against
incomplete indexes from returning wrong results. A CRIT message is
logged advising the admin to perform an offline reindex to rebuild
the indexes.
Fixes: https://github.com/389ds/389-ds-base/issues/7539
Reviewed by: @tbordaz, @progier389 (Thanks!)
- - - - -
efe15cac by Mark Reynolds at 2026-06-05T10:34:21-04:00
Issue 7560 - lib389 - Add helper function for checking ASAN files
Description:
Add a helper function for checking specific strings in an ASAN file
relates: https://github.com/389ds/389-ds-base/issues/7560
Reviewed by: tbordaz(Thanks!)
- - - - -
a9881018 by Viktor Ashirov at 2026-06-05T18:59:25+02:00
Issue 7562 - Error: NssSsl.add_cert() got an unexpected keyword argument 'input_file' (#7563)
Bug Description:
In #7281 `input_file` parameter was renamed to `cert_file`, but not all
callers were updated. This causes a TypeError at runtime.
Fix Description:
Update dscontainer and dsctl to use the new `cert_file` parameter name.
Relates: https://github.com/389ds/389-ds-base/issues/7281
Fixes: https://github.com/389ds/389-ds-base/issues/7562
Reviewed by: @ mreynolds389 (Thanks!)
- - - - -
65a1afcd by Mark Reynolds at 2026-06-09T09:34:29-04:00
Issue 7500 - Prevent unsigned integer underflow during stalled import
Description:
During a stalled import the foreman's first ID could be greater than the
history progress size which leads to underflowing the rate. Check if the
foreman's first ID is greater than the progress size and just set it to
zero.
Relates: https://github.com/389ds/389-ds-base/issues/7500
Reviewed by: progier(Thanks!)
- - - - -
b885a34a by tbordaz at 2026-06-10T15:14:08+02:00
Issue 7558 - During online import, the IDL should be created with in-depth first approach (#7559)
Bug description:
The online initialization requires that the supplier builds a sorted IDL.
It is sorted in the way that the parent entry appears before the children in the IDL.
The current implementation goes through the parentid index from the first entry
until the end (next). To make sure parent entry is already in IDL before adding a child
it uses a list of ID ranges.
This list works well if the ID are mostly consecutive and with limited number of holes,
else the list grows (lot of singleton) and checking the list becomes costly as well.
Fix description:
Instead of walking the parentid index from the first entry to the end it walks
the parentid in depth first. So there is no need to check that the parent ID is already
present in IDL
fixes: #7558
Reviewed by: Pierre Rogier (Thanks !!)
- - - - -
9bc67fed by Viktor Ashirov at 2026-06-15T12:39:34+02:00
Issue 7573 - Post-import cache autotuning does not recompute entry cache size (#7574)
Bug Description:
When a new empty backend is created, and an online import is completed,
`dbmdb_start_autotune()` runs but doesn’t apply recomputed cache values.
A server restart is required for the new cache sizes to take effect.
Fix Description:
Always apply autotuning when autosize > 0.
Fixes: https://github.com/389ds/389-ds-base/issues/7573
Relates: https://github.com/389ds/389-ds-base/issues/6805
Reviewed by: @progier389 (Thanks!)
- - - - -
ec027200 by Mark Reynolds at 2026-06-15T10:21:12-04:00
Issue 7576 - Fix leak of temporary attribute syntax hash tables after schema reload
Description:
After attr_syntax_swap_ht() promotes the tmp tables to live use and sets
oid2asi_tmp and name2asi_tmp to NULL, attr_syntax_init() was recreating
them on every attr_syntax_read_lock() call (e.g. from LDAP searches via
slapi_filter_schema_check), leaking PL_NewHashTable allocations.
Create the tmp tables lazily with attr_syntax_init_tmp() only during
schema reload, and discard them with attr_syntax_destroy_tmp() on reload
start, failure, or before rebuilding. attr_syntax_init() now initializes
only the live oid2asi and name2asi tables.
relates: https://github.com/389ds/389-ds-base/issues/7576
co-authored by: Cursor
Reviewed by: spichugi(Thanks!)
- - - - -
06211300 by Simon Pichugin at 2026-06-15T17:49:46-07:00
Issue 7490 - Enable USDT probes by default in RPM (#7491)
Description: STAP_PROBE points exist in the source tree
but production RPMs are built without --enable-systemtap
and don't pull in systemtap-sdt-devel, so operators
cannot attach bpftrace or stap to a live ns-slapd
without rebuilding.
Default the RPM build to USDT-on. Rename the configure
flag to --enable-usdt (SystemTap is one of several
consumers). Add five work-queue probes: work_q__enqueue,
work_q__dequeue, worker__busy, worker__idle,
work__blocked. Ship paired bpftrace .bt scripts.
Fixes: https://github.com/389ds/389-ds-base/issues/7490
Assisted by (writing tests): Claude Code
Reviewed by: @mreynolds389 (Thanks!)
- - - - -
36073835 by James Chapman at 2026-06-17T12:59:49+01:00
Issue 7531 - Fix LMDB replication regression_m2 failures and core dumps (#7575)
Description:
During a nested rename, _entryrdn_append_childidl walks the entryrdn
index to collect descendant entry IDs. On LMDB it recursed into child
subtrees inside the bulk_nextdata loop, which repositions the shared
cursor before all duplicates under the parent key are read. That
corrupts the affected IDList and crashes in idl_append_extend. The fix
is to collect direct children into a temp LDList during the bulk loop,
and recurse when it completes.
Fixes: https://github.com/389ds/389-ds-base/issues/7531
Reviewed by: @progier389, @droideck (Thank you)
- - - - -
150a1a61 by Lenka Doudova at 2026-06-17T14:31:49+02:00
Issue 6753 - Port ticket 48392 test (#7523)
Description:
Port ticket 48362 test to dirsrvtests/tests/suites/plugins/dna_repl_test.py using lib389 API.
Relates: #6753
Author: Lenka Doudova
Assisted by: Cursor
Reviewer: @mreynolds389 (Thanks!)
- - - - -
325456fc by progier389 at 2026-06-17T16:15:39+02:00
Issue 7534 - CI - Fix resource_limits fdlimits failures in BDB and LMDB (#7585)
Change CI test to compute the limit from the ns-slapd process rather than relying on systemd one.
Issue: #7534
Reviewed by: @droideck (Thanks!)
Summary by Sourcery
Tests:
Adjust fdlimits tests to read RLIMIT_NOFILE from the server process via /proc rather than systemd LimitNOFILE, and base assertions on the process-specific max descriptor value.
- - - - -
862d0296 by IliaKash1 at 2026-06-17T20:12:32-07:00
Issue 7541 - heap-buffer-overflows in __aclp__normalize_acltxt() (#7542)
Bug description:
Various heap-buffer-overflows can be triggered with a specific input
passed to acl_parse().
Fix description:
Additional checks are added to prevent OOB memory access.
Fixes: https://github.com/389ds/389-ds-base/issues/7541
Author: Ilia Kashintsev
Reviewed by: @progier389, @droideck (Thanks!)
- - - - -
49613417 by Akshay Adhikari at 2026-06-18T18:03:45+05:30
Issue 7529 - Fix WebUI CI failure cascade and missing screenshots (#7566)
Description: Fix Firefox iframe crash that broke retry loop and cascaded
failures. Add cleanup fallback and upload .playwright-screenshots in CI.
Disable AppArmor unix-chkpwd profile on ubuntu-24.04 runners to fix
Cockpit PAM authentication. Update tuning test to match UI changes
from Issue 7507 that removed the ExpandableSection.
Fixes: #7529
Reviewed by: @droideck, @jchapma (Thanks!)
Assisted by: Claude
- - - - -
87a5c0a0 by Mark Reynolds at 2026-06-18T11:26:34-04:00
Issue 7521 - UI - make changes for cockpit API updates
Description:
Previously we used cockpit.spawn superuser argument as:
cockpit.spawn(cmd, { superuser: true, err: "message" })
But the API changed and now instead of "true" the value should be "require":
cockpit.spawn(cmd, { superuser: "require", err: "message" })
relates: https://github.com/389ds/389-ds-base/issues/7521
Authored-by: Cursor
Reviewed by: mreynolds & spichugi(Thanks!)
- - - - -
b90d03e0 by Mark Reynolds at 2026-06-18T12:13:06-04:00
Issue 7554 - UI - Revise local password policy layout
Description:
Editing and creating local policies uses a "tabs" approach, but it's confusing
about editing/creating policies. Move the edit & create pages to modals and
revise how the "saving" works to usea single button for all categories.
Other various/minor spacing and layout changes were also made.
relates: https://github.com/389ds/389-ds-base/issues/7454
Assisted-by: Cursor
Reviewed by: spichugi(Thanks!)
- - - - -
2323aa66 by Simon Pichugin at 2026-06-22T18:46:21-07:00
Issue 7541 - Add invalid ACL text header regression test (#7591)
Description: Malformed ACI values with missing or too-short
ACL text headers should be rejected during syntax validation.
Add parameterized coverage for empty ACL text headers, short
headers, and headers without an ACL name. The test verifies
these values fail with invalid syntax and ASAN doesn't crash.
Related: https://github.com/389ds/389-ds-base/issues/7541
Reviewed by: @mirielka (Thanks!)
- - - - -
f4f3095a by Simon Pichugin at 2026-06-22T18:50:48-07:00
Issue 7263 - UI - Use cockpit.file API for temporary file writes (#7590)
Description: Replace shell-based echo writes with cockpit.file().replace()
for pasted certificate imports and temporary instance setup INF files.
This avoids shell quoting issues, keeps sensitive file contents out of
command logs, and resets setup INF permissions after atomic replacement
before running dscreate.
Fixes: https://github.com/389ds/389-ds-base/issues/7263
Reviewed by: @mreynolds389 (Thanks!)
- - - - -
ecf33a59 by Simon Pichugin at 2026-06-22T18:58:14-07:00
Issue 3555 - UI - Fix audit issue with npm - ws, js-yaml, babel/core (#7599)
Description: Run npm audit fix to address the vulnerability
in ws, js-yaml, babel/core.
Relates: https://github.com/389ds/389-ds-base/issues/3555
Reviewed by: @mreynolds389 (Thanks!)
- - - - -
dd168130 by James Chapman at 2026-06-23T10:07:00+01:00
Issue 7593 - Reject invalid SASL packet length values in sasl_io_start_packet (#7594)
Description:
While processing SASL encrypted traffic, sasl_io_start_packet() reads a
4-byte length from the connection and adds sizeof(uint32_t) before resizing
the read buffer. Certain large length values can wrap in uint32_t, causing
incorrect buffer sizing when malformed SASL data is received on an
established connection.
Fixes: https://github.com/389ds/389-ds-base/issues/7593
Reviewed by: @tbordaz, @progier389 (Thank you)
- - - - -
9652a30e by tbordaz at 2026-06-23T11:41:01+02:00
Issue 7567 - Content Sync plugin unbounded queue growth and race conditions (#7568)
Bug description:
Main issue is that the queue of each syncrepl persistent search is not limited.
Also fixing some race condition cases
Fix description:
Support of two new configuration attributes for the sync repl configuration
entry (cn=Content Synchronization,cn=plugins,cn=config)
- syncrepl-max-concurrent (default 10)
that was previously configured with nsslapd-pluginarg0
- syncrepl_queue_max-size (default 10000)
that is the maximum size of the queue of the updated entries
Also changing the access to 'thread_count' and 'plugin_closing'
fixes: #7567
Assisted by: Cursor
Reviewed by: Simon Pichugin (Thanks !!)
- - - - -
e83bc3fd by James Chapman at 2026-06-23T15:14:53+01:00
Issue 7530 - CI - Stabilize DNA plugin replication tests timing out in CI (#7572)
Description:
dna_interval_test.py failed in teardown with NameError for DSEldif, leaving
standalone1 stopped and causing later tests in the module to fail with
SERVER_DOWN. Add pause replication around accpol_test restarts to avoid
release_replica timeouts, and acknowledge endReplication on the consumer
when no session is active.
Fixes: https://github.com/389ds/389-ds-base/issues/7530
Reviewed by: @droideck, @tbordaz, @progier389 (Thank you)
- - - - -
fc0d2817 by Viktor Ashirov at 2026-06-24T16:12:43+02:00
Issue 7583 - Compressed logs are prematurely deleted (#7584)
Bug Description:
When log compression is enabled and the full path to a rotated
compressed log file exceeds 75 characters, the server fails to read the
actual compressed file size and falls back to the uncompressed
maxlogsize value 100 MB. This causes the maxdiskspace deletion check to
use incorrect sizes, triggering log deletion before the configured disk
space limit is reached.
Fix Description:
Use `sizeof(logfile)` instead of `sizeof(tbuf)` to construct the
compressed filename.
Fixes: https://github.com/389ds/389-ds-base/issues/7583
Reviewed by: @progier389, @droideck (Thanks!)
- - - - -
58e126ec by James Chapman at 2026-06-25T10:45:21+01:00
Issue 7593 - Fix testimony docstring for SASL overflow test (#7606)
Description:
The test added in #7594 failed testimony validation because the docstring
summary was not separated from the metadata fields with a blank line.
Relates: https://github.com/389ds/389-ds-base/issues/7593
Reviewed by: @progier389 (Thank you)
- - - - -
40e8c13a by James Chapman at 2026-06-25T10:53:50+01:00
Issue 7537 - CI - Fix replication log monitoring parser/timing failures (#7592)
Description:
During repl total init on LMDB, a duplicate suffix DN was mishandled and
could trigger DNRC_NOPARENT_DN, aborting bulk import and crashing the joining
supplier.
Fix:
Treat repeat suffix entries as DNRC_BAD_SUFFIX_ID and skip that case.
Add a case for DNRC_NOPARENT_DN in dbmdb_bulk_producer, instead of
defaulting to abort and generating a coredump.
Fixes: https://github.com/389ds/389-ds-base/issues/7537
Reviewed by: @droideck (Thank you)
- - - - -
13023a2a by progier389 at 2026-06-25T16:24:39+02:00
Issue 7147 - entrycache_eviction_test CI test is failing (#7607)
* Issue 7147 - entrycache_eviction_test CI test is failing
Fix entry cache LRU list corruption by preventing pinned_add to add the entry in the LRU if it is already there
Issue: #7147
Reviewed by: @tbordaz (Thanks!)
Assisted by: Claude Ai
- - - - -
575ca72c by Lenka Doudova at 2026-06-29T17:21:49+02:00
Issue 7380 - Automated test for negative wtime (#7616)
Description:
Adding automated test to check access log does not contain negative wtime values when retrochangelog plugin is enabled.
Relates: #7380
Author: Lenka Doudova
Assisted by: Cursor
Reviewer: @progier389 (Thanks!)
- - - - -
4b7fec95 by Simon Pichugin at 2026-06-29T17:11:04-07:00
Issue 7602 - CI - lib389 user compare fails due to parentid mismatch (#7603)
Description: Fix UserAccount.compare() failures between replicated entries
where backend-local parentid values differ across suppliers. Treat parentid
like entryid by excluding it from generic DSLdapObject compare attributes,
since it is an internal database operational attribute generated per
instance. Add regression coverage to ensure replicated user comparison does
not include parentid.
Fixes: https://github.com/389ds/389-ds-base/issues/7602
Reviewed by: progier389 (Thanks!)
- - - - -
835ed496 by progier389 at 2026-07-02T16:40:31+02:00
Issue 7617 - Fix wrong PR_ASSERT about entry cache (#7618)
Fix crash in debug build.
Issue: #7617
Reviewed by: @mreynolds389 (Thanks!)
- - - - -
74a782c3 by Simon Pichugin at 2026-07-02T23:08:14-07:00
Issue 7529 - Fix WebUI local policy availability test (#7609)
Description: Update the local password policy WebUI test to match the
current table and modal workflow. Check empty and populated table states,
open the Create New Local Policy modal, and verify the edit action only
when editable policies are present.
Fixes: https://github.com/389ds/389-ds-base/issues/7529
Reviewed by: @mreynolds389 (Thanks!)
- - - - -
dd63a589 by progier389 at 2026-07-03T17:05:49+02:00
Issue 7610 - Still some lib389.topologies in CI tests (#7612)
* Issue 7610 - Still some lib389.topologies in CI tests
Some CI tests still import lib389.topologies instead of test389.topologies
Issue: #7610
Reviewed by: @mreynolds389, @vashirov (Thanks!)
Co-authored-by: Viktor Ashirov <vashirov at redhat.com>
---------
Co-authored-by: Viktor Ashirov <vashirov at redhat.com>
- - - - -
9bd4a111 by progier389 at 2026-07-03T17:45:53+02:00
Issue 7536 - CI - Fix backup_task_after_failure race (#7588)
Avoid the Directory Not Empty exception by ensuring that os.rename target directory is always new
Issue: #7536
Reviewed by: @tbordaz, @droideck (Thanks!)
- - - - -
9b46b6cc by Simon Pichugin at 2026-07-05T20:30:15-07:00
Issue 7569 - Add CodeQL advanced setup workflow (#7570)
Bug Description:
We have Coverity static analysis but no GitHub-native CodeQL/code
scanning workflow. Adding CodeQL would provide PR-visible security
and quality analysis for C/C++ and Python without relying on Coverity
credentials or external dashboard access.
Fix Description:
Add a focused CodeQL advanced setup workflow for C/C++ and Python.
The workflow follows the existing Fedora/autotools CI pattern, uses manual
build mode for C/C++ analysis, enables the security-and-quality query suite,
uploads useful build/config artifacts, and requires only GitHub code
scanning permissions.
Related: https://github.com/389ds/389-ds-base/issues/7533
Fixes: https://github.com/389ds/389-ds-base/issues/7569
Reviewed by: progier389 (Thanks!)
- - - - -
38d4da2f by Mark Reynolds at 2026-07-06T16:56:49-04:00
Issue 7623 - Heap Buffer Overflow in 389-ds-base Audit Log Password Masking
Description:
When password storage scheme is set to CLEAR and you set a password that is
less than 23-bytes then a possible heap overflow is possible.
Replace the unsafe `strcpy` with a bounded copy that respects the available
space in the buffer
Severity: Low (CVSS 3.3)
CWE: CWE-122 (Heap-based Buffer Overflow)
relates: https://github.com/389ds/389-ds-base/issues/7623
Reviewed by: progier(Thanks!)
- - - - -
5609f0ef by Mark Reynolds at 2026-07-06T17:04:24-04:00
Issue 7621 - Stack Buffer Overflow in Password checkPrefix
Description:
A stack buffer overflow in checkPrefix() function allows a Directory Manager to
crash the LDAP server by storing a reversible-encrypted attribute with an
oversized algorithm ID.
Add a bounds check before the `memcpy` at `pw.c:466` to prevent the overflow.
relates: https://github.com/389ds/389-ds-base/issues/7621
Reviewed by: progier(Thanks!)
- - - - -
5d575d37 by Simon Pichugin at 2026-07-07T17:26:30-07:00
Issue 7406 - Fix ldap-agent SNMP stats file loading (#7630)
Description: Fix ldap-agent stats file path construction so it opens the
instance .stats file instead of the truncated .stat path.
Move SNMP counter slot allocation after the configured worker thread count
is available so per-thread SNMP counter slots are created.
Add SNMP test that checks bindSecurityErrors updates in cn=snmp,cn=monitor
and verifies ldap-agent loads the instance stats file used for SNMP counters.
Fixes: https://github.com/389ds/389-ds-base/issues/7406
Reviewed by: @progier389 (Thanks!)
- - - - -
95201a81 by Lenka Doudova at 2026-07-08T14:39:38+02:00
Issue 7284 - Automated test for creating local password policy with incorrect passwordInHistory value (#7608)
Description:
Adding automated test for creating local password policy with incorrect passwordInHistory value
Relates: #7284
Author: Lenka Doudova
Assisted by: Cursor
Reviewer: @progier389
- - - - -
ceca3138 by James Chapman at 2026-07-09T16:32:21+01:00
Issue 7635 - Integer Underflow in {SMD5} Password Comparison (#7636)
Description;
smd5_pw_cmp() does not validate the decoded length of a stored {SMD5} hash
before computing the salt offset and length. Truncated hashes could produce
an incorrect salt length during password comparison.
Fix:
Add a length check in smd5_pwd.c to reject decoded hashes shorter than
MD5_LENGTH. Added CI test for validation.
Fixes: https://github.com/389ds/389-ds-base/issues/7635
Reviewed by: @tbordaz (Thank you)
- - - - -
814a5ee2 by Simon Pichugin at 2026-07-10T18:16:44-07:00
Issue 7147 - Fix DN cache ownership during online reindex (#7641)
Description: dncache_find_id() treated any nonzero ep_state as
unavailable. This could hide valid DN cache entries and cause online
reindex/export to recompose a DN, release it after a cache collision,
and use it again.
Treat cached DNs as missing only when they are deleted, incomplete, or invalid.
Valid entries queued in the LRU remain available for lookup.
Give db2index, db2ldif, and upgradedn producers independent DN ownership
after CACHE_RETURN.
Replace stale upgradedn cache entries after conflict renames, release
parent-cache references on hits, and log cache-owned values before
releasing their entries.
In the test, wait for the concurrent reindex task to finish
and require a successful exit code before performing the final checks.
Fixes: https://github.com/389ds/389-ds-base/issues/7147
Reviewed by: @progier389 (Thanks!)
- - - - -
1c26f955 by Simon Pichugin at 2026-07-10T18:17:40-07:00
Issue 7558 - Total init sends the suffix entry twice (#7640)
Description: Exclude the suffix entry from the depth-first parentid
walk because total init sends it separately.
Preserve NEW_IDL_NO_ALLID across all parentid fetches and honor it in
the LMDB fetch path to maintain parent-first ordering.
Update LMDB reindex handling so entries with an explicit parentid are
treated as regular entries when their RDN matches the suffix.
Add a regression test with a wide moved subtree that verifies entry order
and ensures the suffix is sent only once.
Fixes: https://github.com/389ds/389-ds-base/issues/7558
Fixes: https://github.com/389ds/389-ds-base/issues/7604
Reviewed by: progier389 (Thanks!)
- - - - -
7af85d57 by Simon Pichugin at 2026-07-10T20:40:57-07:00
Issue 7595 - Reduce Actions queue saturation (#7596)
Description: Limit the pytest matrix workflows with max-parallel so large
runs release jobs in smaller batches while preserving full coverage.
Scope broad push triggers to main and 389-ds-base-* release branches to
avoid duplicate push and pull_request runs for in-repo PR branches. Add
manual dispatch where needed for odd branches.
Also fix the GCC Strict compile matrix name and ignore cache/hidden suite
directories in the pytest matrix generator.
Related: https://github.com/389ds/389-ds-base/issues/7595
Reviewed by: progier389 (Thanks!)
- - - - -
f29e1e6a by Akshay Adhikari at 2026-07-13T09:23:30-04:00
Issue 7535 - Fix race in test_schema_update_policy_reject
Description: Removed temporary_oc2 fixture that added OC2 before
the reject policy was active. Moved OC2 creation after the policy
is set and supplier1 is restarted.
Fixes: #7535
Reviewed by: @droideck, @mreynolds389, @tbordaz (Thanks!)
Assisted by: Claude
- - - - -
4ce7a495 by James Chapman at 2026-07-13T15:19:41+01:00
Issue 7611 - PBKDF2 password verification should reject invalid iteration count (#7613)
Description:
The C PBKDF2 password verification code does not validate the extracted
iteration count before invoking PBKDF2 hash function.
Fix:
Reject hashes whose iteration count is outside the supported range before
before performing password verification.
Fixes: https://github.com/389ds/389-ds-base/issues/7611
Reviewed by: @tbordaz, @progier389 (Thank you)
- - - - -
6e1e9337 by Simon Pichugin at 2026-07-13T20:17:23-07:00
Issue 7569 - Reduce noisy CodeQL false-positive alerts (#7629)
Description: Add a CodeQL configuration file and wire the
workflow to use it. Keep code scanning security-focused by
switching to the security-extended query suite and ignoring
noisy non-product areas such as dirsrvtests, lib389 tests,
Cockpit node_modules, and vendored dependencies.
Related: https://github.com/389ds/389-ds-base/issues/7569
Reviewed by: @progier389 (Thanks!)
- - - - -
b813b5b9 by IliaKash1 at 2026-07-16T10:50:53+02:00
Issue 7545 - Heap buffer overflow in str2entry_state_information_from_type() (#7546)
Bug description:
Heap buffer overflow in str2entry_state_information_from_type() can be triggered with a specific input, since ';' is supposed to precede enough symbols.
Fix description:
Additional strlen() check before accessing specific symbols is added.
Fixes: #7545
Reviewed by: @progier389 (thanks!)
Author: Ilia Kashintsev
- - - - -
1253246a by IliaKash1 at 2026-07-16T10:53:02+02:00
Issue 7543 - buffer overflow in slapi_dn_find_parent_ext() (#7544)
Bug description:
Buffer overflow can be triggered in slapi_dn_find_parent_ext() if the input ends with a separator.
Fix description:
Additional check is implemented to prevent the for loop from going to the next iteration when that results in a crash.
Fixes: #7543
Reviewed by: @progier389 (Thanks!)
Author: Ilia Kashintsev
- - - - -
6bb1ccc8 by Ilia Kashintsev at 2026-07-16T15:51:48-04:00
Issue 7547 - Heap buffer overflow in ldap_utf8prev()
Bug description:
Heap buffer overflow in ldap_utf8prev() can be triggered via str2simple if '=' is not preceded by proper symbols.
Fix description:
Additional checks are added to account for '=' being preceded by nothing
or by non-ASCII bytes.
Fixes: #7547
Author: Ilia Kashintsev
Reviewed by: @progier389 (Thanks!)
- - - - -
0e3b0496 by Simon Pichugin at 2026-07-16T22:59:41-07:00
Issue 7611 - Preserve legacy PBKDF2 hash compatibility (#7649)
Description: Use a fixed 50,000-round verification ceiling
so legacy C PBKDF2_SHA256 hashes continue to authenticate across
upgrades and restarts.
Cap generated legacy hashes at the configured ceiling, fall back
safely on invalid configuration, and keep the optional object-class
upgrade non-fatal.
Exercise migration from the legacy underscore scheme to a separately
configured modern PBKDF2-SHA256 scheme at 600,000 rounds, without
changing the legacy verification ceiling.
Keep the regression coverage self-contained and restore modified server state.
Relates: https://github.com/389ds/389-ds-base/issues/7611
Reviewed by: @tbordaz (Thanks!)
- - - - -
05a17d0c by Simon Pichugin at 2026-07-19T22:15:12-07:00
Issue 7633 - RFE - Add offline diagnostics for thread pool saturation (#7634)
Description: When the worker pool is fully saturated, cn=monitor cannot be used
for diagnostics because the monitor search itself needs a worker thread.
Add offline thread-pool status reporting by publishing pool gauges and
per-worker activity into a hardened memory-mapped file under the instance run
directory. The new dsctl thread-pool-status command reads this file directly,
without an LDAP connection, so admins can inspect the pool even when worker
threads are exhausted.
cn=monitor also exposes a sanitized threadpoolworker attribute backed by the
same data source. The feature is enabled by default and can be disabled with
the new nsslapd-thread-pool-stats cn=config attribute. Changing this setting
requires a restart.
Fixes: https://github.com/389ds/389-ds-base/issues/7633
Reviewed by: @jchapma, @tbordaz, @mreynolds389 (Thanks!!!)
- - - - -
b4c2cc24 by Lenka Doudova at 2026-07-20T08:40:04+02:00
Issue 7327 - Unify topology naming in tests (#7650)
Description:
Unify topology naming in dirsrvtests/tests/suites/memberof_plugin/memberof_include_scopes_test.py so that the used name always reflects topology import in the file.
Relates: #7327
Author: Lenka Doudova
Reviewer: @progier389 (Thanks!)
- - - - -
12454265 by renovate[bot] at 2026-07-20T14:25:38+02:00
Update Rust crate openssl to v0.10.80 [SECURITY]
- - - - -
5f66a033 by renovate[bot] at 2026-07-21T12:42:25+02:00
Update actions/checkout action to v7
- - - - -
bd9cae36 by renovate[bot] at 2026-07-22T09:53:06+02:00
Pin dependencies
Modify renovate config to ignore image dependencies
- - - - -
990fad42 by renovate[bot] at 2026-07-22T14:06:40+02:00
Update rust-dependencies (#7472)
Update rust-dependencies
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Lenka Doudova <mirielka at users.noreply.github.com>
- - - - -
8ce124e7 by Viktor Ashirov at 2026-07-23T09:58:40+02:00
Issue 7200 - repl-agmt create doesn't set some parameters (#7663)
Bug Description:
The `add_agmt()` function in the dsconf CLI silently ignored flow
and timeout parameters:
--conn-timeout
--protocol-timeout
--wait-async-results
--busy-wait-time
--session-pause-time
--flow-control-window
--flow-control-pause
The CLI args and attribute mappings existed, but the properties dict was
never populated with these values during agreement creation.
Fix Description:
Add the missing args-to-properties assignments.
Fixes: https://github.com/389ds/389-ds-base/issues/7200
Reviewed by: @mreynolds389 (Thanks!)
- - - - -
773f7c7e by James Chapman at 2026-07-27T09:58:51+01:00
Issue 7284 - Creating local password policy succeeds with incorrect passwordInHistory value (#7662)
Description:
Creating a local password policy accepts invalid passwordrInHistory values.
Updating an existing policy via dsconf localpwp set correctly rejects the
same values with Constraint violation.
Fine grained password policy validation ran only on the modify path. Local
policy create uses the add path, which wasnt updated, so invalid values were
accepted.
Fix:
Add fine grained password policy attribute validation to the ADD path,
sharing the same checks used by MODIFY.
Fixes: https://github.com/389ds/389-ds-base/issues/7284
Reviewed by: @mreynolds389 (Thank you)
- - - - -
de165641 by progier389 at 2026-07-28T15:44:31+02:00
Issue 7652 - change bind result with password but no dn (#7653)
Reject bind operation with password and no dn whose behavior is not defined in RFC 4513
Issue: #7652
Reviewed by: @tbordaz , @mreynolds389 (Thanks!)
- - - - -
1a48ac3d by Simon Pichugin at 2026-07-28T19:58:46-07:00
Issue 7670 - BDB range searches intermittently fail with err=1 under write load (#7671)
Description: Since #7125 index cursor walks run inside DB_TXN_NOWAIT transactions,
so under concurrent write load a range scan such as SSSD's "(entryUSN>=N)"
fails immediately with DB_LOCK_DEADLOCK, surfaced as DBI_RC_RETRY (-12795).
The equality lookup path retries since #7126, but the range path did not:
every conflict failed the whole search with err=1 and flooded the errors
log.
Retry the range fetch with the same bounded exponential backoff as the
equality path, skipping the retry in both paths when the fetch runs inside
a caller transaction that must be retried as a whole.
Log transient attempts at debug level and emit a single ERR line only when
the retry budget is exhausted and the search really fails.
Also document why serializable cursor isolation must not be weakened,
fix a NULL dereference on the idl_lmdb_range_fetch error path,
add the missing backoff to the old-idl and ldbm_back_seq loops, and
add a stress suite reproducing the entryusn workload.
Fixes: https://github.com/389ds/389-ds-base/issues/7670
Relates: #7124 #7126 #7462
Reviewed by: @vashirov, @progier389, @tbordaz (Thanks!!!)
- - - - -
0c03102c by James Chapman at 2026-07-29T15:33:58+01:00
Issue 7675 - memory leak in test_libslapd_csngen_clock_failure- #7676 #7676
Description:
The csn_free() calls were missing in error handling paths within the CSN unit test code.
This leak only occurs when running the test suite with ASAN, it does not affect production.
Fix:
Free csn if allocated on error path
Fixes: https://github.com/389ds/389-ds-base/issues/7675
Reviewed by: @tbordaz, @progier389 (Thank you)
- - - - -
55470d38 by renovate[bot] at 2026-07-31T07:36:23+02:00
Update github/codeql-action digest to f205ea1
- - - - -
9e6d975d by Lenka Doudova at 2026-07-31T08:58:22+02:00
Issue 7652 - Fix acl_test after fixing anonymous bind with password (#7678)
Description:
Fixing acl test after bind result with NULL dn and non NULL password behavior was changed.
The test now also sets password to NULL in order to perform its actions as intended.
Relates: #7652
Author: Lenka Doudova
Reviewer: @droideck (Thanks!!!)
- - - - -
3e430848 by Mark Reynolds at 2026-07-31T09:50:57-04:00
Issue 7505 - RFE - CLI - add feature to determine which password policy applies to a user
Description:
Update CLI where you can enter a user's DN and find out what password policies
are apply to them (global or local) and the policy settings.
Design doc:
https://www.port389.org/docs/389ds/design/dsidm-user-get-pwp-design.html
Relates: https://github.com/389ds/389-ds-base/issues/7505
co-authored-by: Cursor
Reviewed by: progier & spichugi(Thanks!!)
- - - - -
b9075f94 by renovate[bot] at 2026-07-31T21:06:38+02:00
Update rust-dependencies (#7669)
* Update rust-dependencies
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Lenka Doudova <mirielka at users.noreply.github.com>
- - - - -
a0d7251e by renovate[bot] at 2026-08-03T19:12:13+02:00
Update rust-dependencies
- - - - -
9361a3ac by Viktor Ashirov at 2026-08-03T19:12:13+02:00
Migrate pwdchan to base64 0.23 Engine API
- - - - -
00c4bb8a by Mark Reynolds at 2026-08-04T17:32:01-04:00
Issue 7466 - UI - Refactor all TextInput number types to NumberInput
Description:
TextInput "number" types allow for invalid values, while NumberInput
has built-in functionality to prevent this.
relates: https://github.com/389ds/389-ds-base/issues/7466
Assisted-by: Cursor
Reviewed by: spichugi(Thanks!)
- - - - -
417f3eeb by renovate[bot] at 2026-08-05T18:53:34+05:30
Update cockpit-389-ds-npm (#7565)
* Update cockpit-389-ds-npm and fix npm audit vulnerabilities
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Akshay Adhikari <aadhikar at redhat.com>
- - - - -
bdfceb57 by James Chapman at 2026-08-10T10:22:59+01:00
Backport Issue 7519 — ignore obsolete entrydn when entryrdn is in use (#7657)
Description:
Upgraded instances can retain leftover cn=entrydn while entryrdn is in use,
causing bad searches and reindex failures. Fixed on 2.8 by 539cad4 (#7519/#7526).
This adapts that fix for branches where nsslapd-subtree-rename-switch
was removed (Issue #6639).
Fix:
Always ignore leftover entrydn by index name, skip reindex and add
healthcheck DSBLE0008 + CI test.
Relates: https://github.com/389ds/389-ds-base/issues/7519
Fixes: https://github.com/389ds/389-ds-base/issues/7654
Reviewed by: @droideck (Thank you)
- - - - -
074c03b0 by Simon Pichugin at 2026-08-10T15:05:49-07:00
Issue 7528 - Retry the CI image pull instead of failing the job (#7691)
Bug Description: Test jobs die before pytest starts when the implicit
image pull of the bare 'docker run quay.io/389ds/ci-images:test' hits
a transient quay.io timeout (exit 125).
Fix Description: Pull the image explicitly before docker run, retrying
up to 5 times with increasing backoff, and fail the step only after
the last attempt. This covers a transient timeout, not a longer
registry outage.
Fixes: https://github.com/389ds/389-ds-base/issues/7528
Reviewed by: @progier389 (Thanks!)
- - - - -
81417b0e by Simon Pichugin at 2026-08-10T16:39:32-07:00
Issue 7605 - Harden CI test ports against ephemeral allocation (#7692)
Bug Description: Test jobs sometimes fail at topology setup because
ns-slapd can't bind one of the fixed lib389 test ports (38902, 39002, 39004,
39202 seen): PR_Bind returns EADDRINUSE and the whole module errors out.
Those ports are inside the kernel's default ephemeral range (32768-60999),
while the secure ports at 636xx sit outside it and have never failed,
so an outgoing connection briefly grabbing a test port is the likely cause.
Fix Description: Pass --sysctl net.ipv4.ip_local_reserved_ports=38900-39399
to the test container, covering all four lib389 role ranges. Reserved ports are
skipped when the kernel picks a source port but can still be bound explicitly,
so the listeners are unaffected.
Fixes: https://github.com/389ds/389-ds-base/issues/7605
Reviewed by: @progier389 (Thanks!)
- - - - -
77fb31d7 by James Chapman at 2026-08-11T13:01:46+01:00
Issue 7468 - RFE - HIBP password breach validation (#7492)
Description:
Integrate the HIBP HTTP client into password policy. Adds config,
schema, and password validation logic to check passwords against
the HIBP breach database during password add and modify operations.
Depends on the HIBP client PR.
- Schema: passwordBreachCheck, passwordBreachDbUrl, passwordBreachDbTimeout
- Config: Config setters in libglobs.c
- Validation: Check passwords on add/modify for both admin and non-admin users
- rootDN: Also validates nsslapd-rootpw changes against breach database
Dependencies:
- Issue 7468 - RFE - Add HIBP HTTP client
Relates: https://github.com/389ds/389-ds-base/issues/7468
Reviewed by: @mreynolds389, @droideck (Thank you)
- - - - -
3d7b599c by Mark Reynolds at 2026-08-11T12:25:16-04:00
Issue 7578 - schema - attribute refcount is not maintained properly
Description:
The refcount mechanism for attributes is not correctly used, and this prevents
its use for synchronizing hashtable access. We increment the refcount, but we
don't decrement it correctly. This can potentially cause a rare race condition
with schema reload task and heap-use-after-free with searches running at the
same time as the reload task.
**CWE**: CWE-416 (Use After Free) via CWE-362 (Race Condition)
CI test assisted by: Cursor
relates: https://github.com/389ds/389-ds-base/issues/7578
Reviewed by: progier, tbordaz, and spichugi(Thanks!!!)
- - - - -
b9b8c4f3 by Firstyear at 2026-08-12T12:56:42+10:00
Issue 7685 - BUG - Avoid ioblocktimeout (#7687)
Bug Description: In some cases, the fd will trigger on poll which causes it to
move to the active list. This then leads to connection_read_operation attempting
a PR_Poll and then assuming that the ioblock might be occuring even if no data
was actually received.
Fix Description: Instead of calling a second PR_Poll with the ioblocktimeout
immediately, if we are a new operation and there is no buffered data available
then we immediately shortcut out to prevent the extra delay.
fixes: https://github.com/389ds/389-ds-base/issues/7685
Author: William Brown <william at blackhats.net.au>
Review by: @progier389
- - - - -
aa377a64 by Mark Reynolds at 2026-08-13T09:38:49-04:00
Issue 7637 - UI - Using Arrow Keys in New Object Wizard Resulted in DOM Reload
Description:
When creating a new entry, or adding COS, the arrow keys did not work properly
because the component would reload/remount and it would lose focus on the radio
button group making it impossible to use the arrow keys to select different
radio buttons.
The radios are controlled via isChecked={selected === '...'}, so React only
shows a selection when state changes. Arrow keys moved focus in the DOM, but
PatternFly’s onChange doesn’t run for keyboard navigation.
We need to revise how the state is ahndled to keep focus on the button group.
Assisted-by: Cursor
relates: https://github.com/389ds/389-ds-base/issues/7637
Reviewed by: spichugi(Thanks!)
- - - - -
46ad8035 by Mark Reynolds at 2026-08-13T10:50:16-04:00
Issue 7710 - MemberOf deferred update - Use condvar instead of sleep loop
Description:
Currently we use a while/sleep loop to check if a deferred update is complete.
Better to use a condition variable instead.
Deferred updates also needs to skip special backends:
- cn=config
- cn=schema
- cn=changelog
relates: https://github.com/389ds/389-ds-base/issues/7710
Assisted-by: Cursor
Reviewed by: tbordaz(Thanks!)
- - - - -
7046a144 by Mark Reynolds at 2026-08-13T12:52:54-04:00
Issue 7658 - Heap Buffer Overflow in sasl_io_recv() via Padded SASL UNBIND
Description:
In sasl_io.c, function sasl_io_recv(), when sasl_io_start_packet() returns
SASL_IO_BUFFER_NOT_ENCRYPTED (triggered by sending an unencrypted LDAP UNBIND
after SASL layer setup) there is no check that
sp->encrypted_buffer_count <= len before the memcpy
relates: https://github.com/389ds/389-ds-base/issues/7658
Reviewed by: jchapman & spichugi(Thanks!)
- - - - -
710e6a20 by Mark Reynolds at 2026-08-14T11:20:43-04:00
Issue 7714 - UI - sass import rules are deprecated
Description:
Sass no longer supports @import, and we need to use "@use" or "@forward"
relates: https://github.com/389ds/389-ds-base/issues/7714
Reviewed by: jchapman(Thanks!)
- - - - -
571fa959 by Mark Reynolds at 2026-08-14T12:03:17-04:00
Issue 7709 - Add EPEL 10 target to Packit COPR builds
Description:
Add epel-10 to Packit copr build targets, and bundle libdb
tarball unconditionally
relates: https://github.com/389ds/389-ds-base/issues/7709
Co-authored-by: vashirov
Reviewed by: vashirov & mreynolds
- - - - -
ad3d8dad by Barbora Simonova at 2026-08-14T20:26:22+02:00
Issue 7273 - In a chaining environment binding as remote user causes an invalid error in the logs
Description:
Add a CI test to check binding as remote user
in a chaining environment does not log a warning message
Relates: https://github.com/389ds/389-ds-base/issues/7273
Assisted by: Cursor
Reviewed by: @progier389 (Thanks!)
- - - - -
8b8fb27f by Viktor Ashirov at 2026-08-17T10:15:12+02:00
Issue 7645 - Add runtime LeakSanitizer leak check (#7646)
Description:
If the server is built with ASAN or LD_PRELOADed with libasan,
a recoverable leak check can be triggered at runtime by sending
SIGUSR1 to ns-slapd.
Before calling LeakSanitizer, a fork+ptrace probe verifies that ptrace
is permitted. Without this check, LeakSanitizer calls exit(1) when
ptrace is denied by SELinux or suid_dumpable restrictions.
Fixes: https://github.com/389ds/389-ds-base/issues/7645
Reviewed by: @progier389, @droideck (Thanks!)
- - - - -
a23cd2dc by Viktor Ashirov at 2026-08-17T10:23:21+02:00
Issue 7666 - Replication performance degradation during total init on high-latency storage (#7667)
Bug Description:
During replication total init the consumer's LMDB writer thread commits
transactions with fsync on each commit. This causes progressive
performance degradation as the database grows. This is especially
noticeable on network-attached storage, for example AWS EBS, where fsync
latency is high and grows under sustained write load.
The offline LDIF import sets MDB_NOSYNC on the LMDB environment during
import, which skips per-commit fsync, and only flushes at the end via
mdb_env_sync. But the online total init doesn't do that.
Additionally, the nsslapd-db-durable-transactions config parameter was
not honored by the LMDB backend (only BDB checked it).
Fix Description:
- Add nsslapd-mdb-online-import-nosync config parameter (default: off)
that sets MDB_NOSYNC on the LMDB environment during online import, same
as offline LDIF import. The final mdb_env_sync() in the writer thread
ensures all data is flushed when import completes.
- Honor nsslapd-db-durable-transactions for the LMDB backend by
setting MDB_NOSYNC when the environment is opened if this parameter
is set to off. Previously this config was only effective for BDB.
Fixes: https://github.com/389ds/389-ds-base/issues/7666
Reviewed by: @progier389, @jchapma, @droideck (Thanks!)
- - - - -
8d994c0b by Viktor Ashirov at 2026-08-17T11:52:46+02:00
Issue 7709 - Add EPEL 10 target to Packit COPR builds (#7721)
Bug Description:
Build fails when libdb tarball is missing, it's only downloaded when
BUNDLE_LIBDB=1 is used.
Fix Description:
Make libdb tarball download and copy unconditional in rpm.mk.
Replace epel-10 with epel-10-all to cover latest and branched releases.
Add `preserve_project: true` to keep copr available more than 60 days.
Fixes: https://github.com/389ds/389-ds-base/issues/7709
Reviewed by: @mirielka (Thanks!)
- - - - -
90d41217 by renovate[bot] at 2026-08-17T12:53:21+02:00
Update github-actions
- - - - -
34867127 by Akshay Sakure at 2026-08-17T12:55:45-04:00
Issue 6419 - Error: name 'cockpit_present' is not defined (#7719)
Description:
PR #5615 removed cockpit enable check for cockpit package
but open-firewall, close-firewall, and disable still called it,
causing NameError. Drop those leftover checks as well so
dsctl cockpit commands work again.
Fixes: https://github.com/389ds/389-ds-base/issues/6419
Signed-off-by: Akshay Sakure <asakure at redhat.com>
Reviewed by: mreynolds
- - - - -
380dd695 by Akshay Sakure at 2026-08-17T12:56:44-04:00
Issue 7711 - Fix typo in accountpolicy --login-history-size help text (#7713)
Description: This patch corrects the typo in help text for
--login-history-size argument in the Account Policy plugin CLI.
It currently references lastLoginHistSize, which is not a valid
attribute name. The correct attribute name is lastLoginHistorySize.
It also removes an extra stray closing parenthesis in the same string.
Fixes: https://github.com/389ds/389-ds-base/issues/7711
Signed-off-by: Akshay Sakure <asakure at redhat.com>
Reviewed by: mreynolds
- - - - -
48f1c2ad by Simon Pichugin at 2026-08-17T17:20:59-07:00
Issue 7698 - Fix silent entry loss in LMDB bulk import waiter handling (#7699)
Bug Description: During an online total init the LMDB bulk producer parks
an entry processed before its parent on waitingq. A tombstone waits on
its parent's nsuniqueid, but the release loop only matched the parent's ndn,
so such a tombstone was never released and was freed silently at producer exit:
the init reported success while the entry was missing on the consumer.
Fix Description: Release waiters by the processed entry's nsuniqueid too,
using the same guard and key format as the private-db registration in
dbmdb_import_entry_info_by_param(), so a parked tombstone is recognized
when its parent is processed.
On a clean producer exit with a non-empty waitingq, log a bounded sample
of the stranded DNs with a total count and abort, so the loss is visible
instead of silent.
Also fix a pre-existing leak of a released waiter's key buffer.
The regression test drives the total update extended operations directly,
which is the only way to control the nsuniqueid that a plain add discards.
Relates: https://github.com/389ds/389-ds-base/issues/7698
Reviewed by: @progier389, @tbordaz (Thanks!!)
- - - - -
eec15618 by Simon Pichugin at 2026-08-17T17:43:31-07:00
Issue 7705 - With memberOfEntryScope set, deferred memberOf skips MODIFY operations (#7706)
Description: deferred_mod_func checks the entry scope against a pre-op entry
it never reads from the task pblock. With memberOfEntryScope set the check
always fails, so the memberOf fanout of every grouping attribute MODIFY
is silently skipped, for direct and replicated operations alike.
Possibly, a regression from the issue 7035 scoping refactor.
Read the post-op entry the way the direct modify path does, and add
a regression test.
Fixes: https://github.com/389ds/389-ds-base/issues/7705
Reviewed by: @tbordaz (Thanks!)
- - - - -
3ed5b407 by Firstyear at 2026-08-18T15:14:11+10:00
Issue 7688 - BUG - partial address leak in sso token (#7689)
Bug Description: A pointer was incorrectly passed to ber_printf rather
than a ber_int_t
Fix Description: Use the direct rc value without a pointer
fixes: https://github.com/389ds/389-ds-base/issues/7688
Author: William Brown <william at blackhats.net.au>
Review by: ???
- - - - -
30fcdc39 by Simon Pichugin at 2026-08-18T20:05:29-07:00
Issue 7679 - Add layered agent docs, task skills, and guides (#7686)
Description: Introduce a layered contributor workflow for coding agents.
Keep repository-wide invariants and navigation in AGENTS.md, place detailed
area-specific guidance under docs/agents/, and add task-focused recipes under
.agents/skills/. Expose the skills to Claude Code, route Cursor through the
same guidance, and add scoped AGENTS.md files for major source areas.
Route verification through environment-provided build and test skills so
agents do not run 389 Directory Server builds in unsupported or unprepared
environments.
Modernize dirsrvtests/create_test.py to emit the standard test preamble,
delegate cleanup and timeout handling to create_topology(request=request),
and resolve the test tree relative to the script so UUID checks work from
any directory.
Relates: https://github.com/389ds/389-ds-base/issues/7679
Assisted by: Claude
Reviewed by: @mreynolds389 (Thanks!)
- - - - -
fb58b116 by Masahiro Matsuya at 2026-08-19T10:31:10+02:00
Issue 7707 - lib389: set nsDS5ReplicaBindDNGroup before ensure_agreement() in join_supplier/hub/consumer (#7708)
Bug Description:
join_supplier(), join_hub(), and join_consumer() set nsDS5ReplicaBindDNGroup
on the consumer after calling ensure_agreement(). The supplier's replication
thread starts immediately when the agreement is created and may send a
startReplication request before the bind DN group is configured, causing
check_replica_auth() to reject it with LDAP_INSUFFICIENT_ACCESS and entering
a permanent 'requires administrator action' state with no retry.
Fix Description:
Move nsDS5ReplicaBindDNGroup before ensure_agreement() in all three call sites
and add an explanatory comment to prevent future regressions.
Fixes: https://github.com/389ds/389-ds-base/issues/7707
Author: Masahiro Matsuya <mmatsuya at redhat.com>
Reviewed by: @tbordaz, @mreynolds389
Signed-off-by: Masahiro Matsuya <mmatsuya at redhat.com>
- - - - -
4dab7ff6 by Simon Pichugin at 2026-08-20T08:37:25+02:00
Issue 3555 - UI - Fix audit issue with npm - fast-uri, js-yaml, nanoid (#7700)
Description: Run npm audit fix to address the vulnerability
in fast-uri, js-yaml, nanoid.
Relates: https://github.com/389ds/389-ds-base/issues/3555
Reviewed by: @mirielka
- - - - -
e4d6eec8 by renovate[bot] at 2026-08-20T15:00:42+02:00
Update rust-dependencies
- - - - -
55211817 by progier389 at 2026-08-20T15:45:55+02:00
Issue 7733 - Typo about nsuniqueid in tombstone_to_conflict (#7734)
tombstone_to_conflict tries to retrieve "nsuiqueid" instead of "nsuniqueid"
So there is a risk that the internal modify get applied on a wrong entry (because nscpdn is used instead of uuid)
Note as it impacts the tombstone/conflict entry handling, (which are usually hidden) there are fair chance that the issue never got noticed
Issue: #7733
Reviewed by: @mreynolds389
- - - - -
986ff15b by Mark Reynolds at 2026-08-20T11:06:19-04:00
Issue 7735 - Heap overflow when parsing objectclass superior (#7736)
Description:
When adding/parsing an objectclass the superior or parent objectclass is not
properly calculated into the buffer size and can lead to a buffer overflow if
the superior value is too large.
Relates: https://github.com/389ds/389-ds-base/issues/7735
Reviewed by: progier, spichugi, mirielka(Thanks!!)
- - - - -
b64b9409 by Simon Pichugin at 2026-08-20T09:01:26-07:00
Issue 7631 - Don't install bpftrace by default (#7726)
Description: bpftrace is needed only for debugging, it doesn't need to be
installed on every production system.
It also pulls in a compiler which is also prohibited on most production systems.
Use Suggests instead of Recommend.
Fixes: https://github.com/389ds/389-ds-base/issues/7631
Reviewed by: @mreynolds389 (Thanks!)
- - - - -
47319865 by Simon Pichugin at 2026-08-20T13:59:39-07:00
Issue 7595 - Skip redundant CI runs to relieve the Actions queue (#7717)
Description:
The org's free plan allows 20 concurrent Actions jobs, while each
push/PR event schedules ~222 (111 suites x 2 backends). Full runs take
40+ hours; backport sweeps take days. Remove the runs whose result is
already known:
- Drop push triggers from the test workflows: backports already pass
full PR CI. A nightly dispatcher instead runs each release branch
(X.Y and X.Y.Z) that changed in the last 30 days, once per head
commit. (Push runs use the workflow on the pushed ref, so this needs
backporting to active branches to fully take effect.)
- Skip main's nightly when HEAD already passed the previous one.
- Ignore doc-only paths (markdown, docs/agents, docs/design, LICENSE,
.packit.yaml) in the test and CodeQL workflows. docs/slapi.doxy.in
and the doxygen assets stay CI-visible because make all consumes
them.
- Run only the webui suite for PRs that touch nothing outside
src/cockpit/389-console; renamed files count both their old and new
path.
- Fix the pytest_tests default: "false" made bare manual dispatches
run an empty matrix. The dispatcher also passes explicit empty
inputs so older branch workflows run in full.
Gates fail open, including on gate job failure, and there are no
required status checks, so skipped workflows cannot block merges.
Relates: https://github.com/389ds/389-ds-base/issues/7595
Assisted by: Claude
Reviewed by: @progier389 (Thanks!)
- - - - -
afcba8d3 by Mark Reynolds at 2026-08-20T17:18:25-04:00
Issue 7639 - Move log compression outside of global write lock
Description:
Add a dedicated log maintenance worker thread that compresses rotated log
archives and runs retention cleanup outside the per-stream write locks.
During rotation, compress jobs are staged on a per-stream pending list
under the write lock and moved to a global FIFO when the lock is released,
so gzip work no longer blocks active log writes.
Update logging_compression_test.py for background compression and add
async_log_compress_chain_uaf_test.py to exercise rapid rotation, logdir
changes, and empty-.gz regression coverage. Drain maintenance jobs during
server shutdown before final log flush.
Design doc: https://www.port389.org/docs/389ds/design/log-async-compress-delete-design.html
relates: https://github.com/389ds/389-ds-base/issues/7639
Co-authored-by: Cursor
Reviewed by: spichugi(Thanks!)
- - - - -
b23597b7 by apeddire-wq at 2026-08-21T15:34:23+02:00
Issue 7728 - bdb: Fix nsslapd-db-compactdb-interval: 0 not disabling auto compaction
* bdb: Fix nsslapd-db-compactdb-interval: 0 not disabling auto compaction
Setting nsslapd-db-compactdb-interval to 0 is documented to disable
automatic database compaction, but bdb_checkpoint_threadmain() and
bdb_compact() never check for interval == 0 before scheduling or
running compaction. This causes auto-compaction to keep running once
a day, and nsslapd-db-compactdb-starttime to keep drifting on every
restart, even when the admin has disabled the feature.
Added two regression tests covering the startup race and the
already-queued-event race.
Fixes #7728
* Address review feedback: lower log level, speed up tests
- Lower the disabled-compaction log message in bdb_compact() from
NOTICE to DEBUG, since it fires during expected admin behavior
(intentionally disabling auto-compaction), not an error condition.
- Replace long blind time.sleep() calls in the new regression tests
with short polling helpers that fail fast as soon as an unexpected
log line appears, instead of waiting out the full duration before
checking. Also shrink the compactdb-time offsets from 90s/60s down
to 15s, since the checkpoint thread re-evaluates scheduling every
~2.5s (DBLAYER_SLEEP_INTERVAL * 10) regardless of any configured
interval, so the original margins were far more conservative than
necessary.
---------
Co-authored-by: Abhinay Reddy Peddireddy <apeddire-wq at users.noreply.github.com>
- - - - -
c96ab110 by Simon Pichugin at 2026-08-21T11:16:43-07:00
Issue 7723 - Range search returns an empty result when its start key is removed (#7724)
Bug Description: idl_new_range_fetch positions on its start key with an
exact match. A concurrent modify can delete that key, so the walk fails
with DBI_RC_NOTFOUND, logs "Error is -12797", and the search silently
returns an empty result.
Fix Description: When the exact match misses, seek to the nearest key
on the same cursor and transaction and resume the walk there. Fix
strict '>' dropping its first candidate when the bound key is absent,
at the initial seek and in index_range_next_key's deleted-key fallback.
Extend the stress suite with a stale start key test, assert -12797 and
impossible empty results never appear, and count rare, logged retry
exhaustion as load shedding.
Fixes: https://github.com/389ds/389-ds-base/issues/7723
Relates: https://github.com/389ds/389-ds-base/issues/7670
Reviewed by: @progier389 (Thanks!)
- - - - -
70dcccaf by renovate[bot] at 2026-08-22T07:11:34+02:00
Update cockpit-389-ds-npm
- - - - -
2b00aac5 by renovate[bot] at 2026-08-24T07:21:59+02:00
Update github/codeql-action digest to db488dd
- - - - -
847025a7 by James Chapman at 2026-08-24T12:15:36+01:00
Issue 4701 - Fix UAF when excluding attrs from retro changelog (#7730)
Description:
When exclude attributes are configured for the retro changelog plugin,
add and delete operations remove the excluded attributes from the
operation entry. This deletes an entry still in use and could cause a
use after free when slapi_entry2str() walks the entry attribute list.
Fix:
Add slapi_entry2str_exclude_attrs() to filter out excluded attributes at
serialisation time, without modifying the entry.
Fixes: https://github.com/389ds/389-ds-base/issues/4701
Reviewed by: @mreynolds389 (Thank you)
- - - - -
02d7941a by Viktor Ashirov at 2026-08-24T15:21:33+02:00
Issue 7764 - Remove stale Cargo.lock (#7765)
Bug Description:
`src/librslapd/Cargo.lock` is a stale per-crate lock file left over
before the workspace-level src/Cargo.lock was introduced.
Fix Description:
Delete `src/librslapd/Cargo.lock` and update `Makefile.am`.
Fixes: https://github.com/389ds/389-ds-base/issues/7764
Reviewed by: @mirielka (Thanks!)
- - - - -
9cc69f2f by renovate[bot] at 2026-08-24T18:05:09+02:00
Update rust-dependencies to v1.4.4
- - - - -
45f8b23c by Mark Reynolds at 2026-08-24T16:12:01-04:00
Issue 7760 - CI - harden dsconf_task_test.py
Description:
Tasks were finishing too fast. Increase the workload so the tasks run longer
Relates: https://github.com/389ds/389-ds-base/issues/7760
Reviewed by: mirielka(Thanks!)
- - - - -
25cc9af6 by Simon Pichugin at 2026-08-24T14:28:25-07:00
Issue 7595 - Run PR tests when the nightly gate is skipped (#7766)
Bug Description: The gate job only exists to dedupe nightlies, so it
is intentionally limited to schedule events and reports skipped on
every pull_request and workflow_dispatch run. The BDB Test and LMDB
Test jobs carry no explicit if condition, so they use the implicit
success() status check, and that check is false whenever any job in
the transitive needs chain was skipped (actions/runner#491). Since
commit 4731986 those runs built the RPMs but skipped all pytest
suites, while still reporting overall success.
Fix Description: Give both test jobs an explicit condition that
depends on the build result alone, so the skipped gate no longer
propagates past the build job. Nightly runs are unchanged: there the
gate runs and succeeds, and a failed or cancelled build still skips
the tests.
Relates: https://github.com/389ds/389-ds-base/issues/7595
Reviewed by: @mirielka (Thanks!)
- - - - -
03729b25 by progier389 at 2026-08-26T10:54:10+02:00
Security fix for CVE-2026-11770
Description:
Add authentication checks for all replication extended operations
and implement LDAP injection protection for REPL_CLEANRUV_CHECK_STATUS_OID.
- Check that binddn is accepted by a replica for cleanruv and
start replication session extended operations:
REPL_CLEANRUV_OID
REPL_ABORT_CLEANRUV_OID
REPL_CLEANRUV_GET_MAXCSN_OID
REPL_CLEANRUV_CHECK_STATUS_OID
REPL_START_NSDS50_REPLICATION_REQUEST_OID
REPL_START_NSDS90_REPLICATION_REQUEST_OID
- Check that an active replication session is associated with the
connection for session-related operations:
REPL_END_NSDS50_REPLICATION_REQUEST_OID
REPL_NSDS50_REPLICATION_ENTRY_REQUEST_OID
REPL_NSDS71_REPLICATION_ENTRY_REQUEST_OID
- Implement LDAP injection protection for CleanRUV filters
- Fix isdigit() undefined behavior for non-ASCII characters
- Use safer replica iteration to avoid deadlocks in callbacks
- Add comprehensive test suite (38+ test cases)
References:
- https://access.redhat.com/security/cve/CVE-2026-11770
- https://bugzilla.redhat.com/show_bug.cgi?id=2484802
- - - - -
b4748cd3 by Viktor Ashirov at 2026-08-26T10:55:13+02:00
CVE-2026-11770 - Fix StartReplicationRequest auth gate response format
Bug Description:
The CVE-2026-11770 fix sends a bare `slapi_send_ldap_result()` when
`check_replica_auth()` rejects an authenticated bind DN in
StartNSDS50ReplicationRequest. The supplier expects a BER-encoded extop
response, cannot parse the bare LDAP error, and treats it as a fatal
non-retryable failure. This breaks total init when
nsDS5ReplicaBindDNGroup is set after the agreement is created.
Fix Description:
For authenticated connections, send a proper BER-encoded extop response
with NSDS50_REPL_PERMISSION_DENIED so the supplier retries. Keep the
bare LDAP error for anonymous connections (no legitimate supplier binds
anonymously).
Reviewed by: @progier (Thanks!)
- - - - -
cd502369 by Viktor Ashirov at 2026-08-26T15:21:14+02:00
Issue 7770 - Testimony failure in test_cleanruv_extop_security.py (#7771)
Bug Description:
`test_cleanruv_extop_security.py` fails testimony validation.
It also should be renamed to `cleanruv_extop_security_test.py` to be
picked up by pytest test discovery.
Fix Description:
Remove unsupported docstring section, rename the file.
Fixes: https://github.com/389ds/389-ds-base/issues/7770
Reviewed by: @mirielka (Thanks!)
- - - - -
5b248a97 by Viktor Ashirov at 2026-08-27T13:11:35+02:00
Issue 7774 - Add backport action (#7775)
Bug Description:
Manual backports are prone to errors (merge conflicts, missing test
results). All commits should go through PRs and have green pipelines
before merging.
Fix Description:
Add a GitHub Actions workflow that automatically creates backport PRs
when a merged PR has `backport/<version>` labels (e.g. `backport/3.1`).
Fixes: https://github.com/389ds/389-ds-base/issues/7774
Reviewed by: @mirielka (Thanks!)
- - - - -
25801b68 by Viktor Ashirov at 2026-08-27T15:31:20+02:00
Issue 6176 - Add sysusers.d support and modernize systemd path detection (#7776)
Bug Description:
The `dirsrv` user/group was created by downstream packaging using
sysusers config rather than shipped upstream.
Several systemd directory paths were detected using fragile methods:
`tmpfiles.d` relied on a filesystem check at configure time and
defaulted to the wrong location (`/etc/tmpfiles.d` instead of
`/usr/lib/tmpfiles.d`), `sysctldir` was hardcoded in `Makefile.am`, and
`systemdsystemunitdir/confdir` required explicit `--with-*` flags
because the auto-detection only worked when `yes` was passed.
Fix Description:
Add a sysusers.d config file to the upstream source and install it when
systemd is enabled.
Modernize all systemd directory detection to use `pkg-config` with
fallbacks.
Fixes: https://github.com/389ds/389-ds-base/issues/6176
Reviewed by: @progier389 (Thanks!)
- - - - -
d390133a by Viktor Ashirov at 2026-08-27T15:42:19+02:00
Issue 7722 - Switch to `logconv.py` as default (#7778)
Description:
Move `logconv.pl` and its Perl dependencies to a new
`389-ds-base-logconv-perl` subpackage. The subpackage is marked as
deprecated and won't be build after Fedora >= 46 and RHEL >= 11.
`logconv.py` is the recommended replacement.
Fixes: https://github.com/389ds/389-ds-base/issues/7722
Reviewed by: @progier389 (Thanks!)
- - - - -
fa7f2662 by Bernhard M. Wiedemann at 2026-08-27T09:50:17-04:00
Fix expiration time check (#7718)
Issue 7718 - Fix pwp expiration time check
A misplaced bracket caused a bool to be passed to difftime instead of a timestamp.
Signed-off-by: @bmwiedemann
Reviewed by: mreynolds
relates: https://github.com/389ds/389-ds-base/issues/7769
- - - - -
6c056281 by Andrew Rukin at 2026-08-27T14:45:34-04:00
Reject mismatched cn in dynamic certificate add requests (#7680)
Issue 7780 - Reject mismatched cn in dynamic certificate add request
Description: Reject mismatched cn in dynamic certificate add requests
Signed-off-by: Andrew Rukin <9697001+drewrukin at users.noreply.github.com>
Reviewed by: mreynolds
- - - - -
bac0fa0d by renovate[bot] at 2026-08-31T12:38:07+02:00
Update github-actions
- - - - -
93b2c1e8 by renovate[bot] at 2026-08-31T12:38:51+02:00
Update dependency eslint to v10.9.1
- - - - -
ba50e492 by renovate[bot] at 2026-08-31T12:39:37+02:00
Update Rust crate uuid to v1.26.0
- - - - -
a5e819af by progier389 at 2026-08-31T18:38:12+02:00
Issue 7769 - Password may wrongly be reported as expired (#7777)
Added AccountUsabilityControl class in lib389 to easily send the control and decode its result
And added tests to verify the account availability control behavior
Issue: #7769
Reviewed by: @mreynolds389
Assisted by: Claude AI
- - - - -
989e1389 by Viktor Ashirov at 2026-08-31T21:59:26+02:00
Issue 2779 - Streamline SPEC file for potential inclusion in Fedora (#7784)
Bug Description:
For the integration with Packit we need to have a single spec file that
can be reused for downstream release promotion between Fedora, CentOS
Stream, and RHEL.
Fix Description:
Streamline `389-ds-base.spec.in` so that a single spec file works
across Fedora, CentOS Stream, and RHEL builds.
Update `rpm/bundle-rust-npm.py` to correctly insert Provides.
Fixes: https://github.com/389ds/389-ds-base/issues/2779
Fixes: https://github.com/389ds/389-ds-base/issues/7485
Reviewed by: @progier389 (Thanks!)
- - - - -
e0d4e289 by Viktor Ashirov at 2026-08-31T21:59:49+02:00
Issue 7785 - Downstream release automation using Packit (#7786)
Bug Description:
Add Packit integration to automate the upstream-to-Fedora release
pipeline.
Fix Description:
Add new Packit jobs:
- propose_downstream: on every GitHub release, Packit generates the
tarball, updates the spec with bundled crate/npm Provides, uploads the
tarball to the Fedora lookaside cache, and opens a dist-git PR against
the appropriate Fedora branches.
- koji_build: automatically triggers a Koji build when the dist-git PR
is merged.
- bodhi_update: automatically creates a Bodhi update for branched
Fedora after a successful Koji build.
Fixes: https://github.com/389ds/389-ds-base/issues/7785
Reviewed by: @progier389 (Thanks!)
- - - - -
293b88c9 by James Chapman at 2026-09-01T10:20:27+01:00
Issue 7611 - PBKDF2 password verification should reject invalid iteration counts (#7632)
Description:
The Rust pwdchan PBKDF2 password verification code does not validate the
extracted iteration count before invoking the PBKDF2 hash function.
Fix:
Add nsslapd-pwdPBKDF2AcceptMaxIterations configuration for each PBKDF2
plugin variant and reject stored hashes whose iteration count is below the
minimum or above the configured accept maximum before password verification.
Add lib389 and dsconf support to get, set, and delete the accept max setting.
Depends on the schema change adding nsslapd-pwdPBKDF2AcceptMaxIterations
to pwdPBKDF2PluginConfig.
Fixes: https://github.com/389ds/389-ds-base/issues/7611
Assisted by: Cursor
Reviewed by: @droideck (Thank you)
- - - - -
89ad82cc by Simon Pichugin at 2026-09-02T19:48:57-07:00
Issue 7595 - Remove the nightly dedup gate and fix dispatched test runs (#7792)
Description: The Gate job skipped main's nightly at an unchanged head,
which is when a nightly is useful... (since the test image is rebuilt
from Fedora every night)
It never fired for the pytest workflows and switched the cargo nightly
off entirely. Every dispatched release-branch run that got past
the build also failed in the tmate step, because the dispatcher's empty
debug_enabled input resolved to the string "false", which is true in
the step condition.
Drop the gate from all three workflows, require debug_enabled == 'true',
let the dispatcher rely on each branch's workflow defaults, fail the
Build job on an unknown pytest_tests value, and document the dispatch
inputs and the unconditional nightly in building.md.
Relates: https://github.com/389ds/389-ds-base/issues/7595
Reviewed by: @vashirov (Thanks!)
- - - - -
251bb3ff by dependabot[bot] at 2026-09-03T12:28:50+02:00
Bump fast-uri from 3.1.5 to 3.1.7 in /src/cockpit/389-console
Bumps [fast-uri](https://github.com/fastify/fast-uri) from 3.1.5 to 3.1.7.
- [Release notes](https://github.com/fastify/fast-uri/releases)
- [Commits](https://github.com/fastify/fast-uri/compare/v3.1.5...v3.1.7)
---
updated-dependencies:
- dependency-name: fast-uri
dependency-version: 3.1.7
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support at github.com>
- - - - -
badfae6a by Mark Reynolds at 2026-09-04T10:42:05-04:00
Issue 7808 - CI - harden online_import_nosync_test (#7809)
Description:
dirsrvtests/tests/suites/replication/online_import_nosync_test.py can be flaky
and run too fast. Need to increase the load to properly measure the performance
relates: https://github.com/389ds/389-ds-base/issues/7808
Reviewed by: progier(Thanks!)
- - - - -
c7c998d2 by Viktor Ashirov at 2026-09-04T16:52:18+02:00
Issue 7806 - Preserve dsEntryDN case on modify (#7807)
Bug Description:
`id2entry_add_ext()` unconditionally overwrites dsEntryDN every time an
entry is written to the database. When an entry is loaded from disk with
`nsslapd-return-original-entrydn` is off, the DN is rebuilt from the
entryrdn index in normalized form. A plain modify then permanently
replaces the original-case dsEntryDN with this normalized value.
Fix Description:
Compare the existing dsEntryDN with the current entry DN before
overwriting.
If they refer to the same entry, keep the stored value.
If the DN changed (MODRDN) or is not set yet (ADD), update it.
Fixes: https://github.com/389ds/389-ds-base/issues/7806
Reviewed by: @mreynolds389, @droideck (Thanks!)
- - - - -
82476f96 by Viktor Ashirov at 2026-09-07T11:36:16+02:00
Security fix for CVE-2026-18355
Description:
A missing minimum-length validation in sasl_io_start_packet() allows an
authenticated SASL user to crash the 389 Directory Server by sending a
SASL-framed packet with a length field of 0, 1, or 2. This causes an
unsigned integer underflow in sasl_io_read_packet(), which then calls
PR_Recv() with a near-4 GB read size into a 1024-byte heap buffer,
resulting in heap corruption and a SIGSEGV crash.
This is the complementary fix to Issue 7593 (CVE-2026-11774), which
added a maximum overflow check but missed the minimum underflow check.
Fixes: https://github.com/389ds/389-ds-base/issues/7593
References:
- https://access.redhat.com/security/cve/CVE-2026-18355
- https://bugzilla.redhat.com/show_bug.cgi?id=2509186
- - - - -
350113ba by Viktor Ashirov at 2026-09-07T13:44:56+02:00
Security fix for CVE-2026-18453
Description:
A flaw was found in 389 Directory Server. The op_shared_search function
does not check for a NULL backend pointer when reusing a paged-results
slot in the USE_ONE_BACKEND control code path. An unauthenticated client
can crash ns-slapd by sending two SEARCH requests on the same
connection: the first stores NULL in a paged-results slot via a
non-existent backend name, the second dereferences it through
slapi_be_Rlock(NULL), causing a SIGSEGV. Paged results and anonymous
access are both enabled by default.
Fix:
- Reject allocating a paged-results slot when the backend pointer is NULL
- Check pr_be for NULL before swapping be_single in the be_name code path
References:
- https://access.redhat.com/security/cve/CVE-2026-18453
- https://bugzilla.redhat.com/show_bug.cgi?id=2509696
- - - - -
12e6d744 by Viktor Ashirov at 2026-09-07T13:44:59+02:00
Security fix for CVE-2026-18922
Description:
A failed one-shot SASL exchange (e.g. PLAIN with wrong password) leaves
stale identity data in the auxprop context from the canon_user callback
that ran before the credential check. Without resetting the context,
a subsequent successful bind on the same connection inherits the stale
identity, allowing privilege escalation to Directory Manager.
References:
- https://access.redhat.com/security/cve/CVE-2026-18922
- https://bugzilla.redhat.com/show_bug.cgi?id=2511388
- - - - -
8c7732a0 by James Chapman at 2026-09-07T13:44:59+02:00
Security fix for CVE-2026-19843
Description:
The LDAP editor can run ldapsearch as root through cockpit by concatenating the entry DN
into sh -c. Double quotes allow command substitution, DNs may contain $, (, and ). A user
who can create or rename an entry can plant that syntax in the DN, so when an admin later
opens the entry or manage ACIs, the host executes it as root.
Fix:
Spawn ldapsearch as an argv array instead, matching getBaseLevelEntryFullAttributes().
References:
- http://access.redhat.com/security/cve/CVE-2026-19843
- https://bugzilla.redhat.com/show_bug.cgi?id=2515965
- - - - -
bfa0c00c by Viktor Ashirov at 2026-09-07T13:44:59+02:00
Security fix for CVE-2026-76560
Description:
A flaw in ACL bind-rule evaluation allows anonymous clients to satisfy
SELFDN, USERDNATTR, or LDAPURL rules. An empty anonymous bind DN can match
empty attribute values or broad LDAP URL filters, granting unauthorized access.
Fix:
Reject anonymous clients before evaluating these bind rules.
References:
- https://access.redhat.com/security/cve/CVE-2026-76560
- https://bugzilla.redhat.com/show_bug.cgi?id=2519521
- - - - -
59009c84 by Viktor Ashirov at 2026-09-07T13:45:00+02:00
Bump version to 3.3.1
- - - - -
925 changed files:
- + .agents/skills/add-cli-option/SKILL.md
- + .agents/skills/add-cli-option/references/handler-patterns.md
- + .agents/skills/add-cli-option/references/new-noun.md
- + .agents/skills/add-config-attribute/SKILL.md
- + .agents/skills/add-config-attribute/references/core-config-chain.md
- + .agents/skills/add-config-attribute/references/new-plugin.md
- + .agents/skills/add-config-attribute/references/plugin-config.md
- + .agents/skills/commit-and-pr/SKILL.md
- + .agents/skills/touch-backend/SKILL.md
- + .agents/skills/ui-expose-attribute/SKILL.md
- + .agents/skills/ui-expose-attribute/references/new-page.md
- + .agents/skills/verify-changes/SKILL.md
- + .agents/skills/verify-changes/references/container-recipe.md
- + .agents/skills/write-test/SKILL.md
- + .agents/skills/write-test/references/cmocka.md
- + .claude/skills
- + .cursor/rules/agents.mdc
- + .github/codeql/codeql-config.yml
- + .github/renovate.json
- .github/scripts/generate_matrix.py
- + .github/scripts/pr_scope.py
- + .github/workflows/backport.yml
- .github/workflows/cargotest.yml
- + .github/workflows/codeql.yml
- .github/workflows/compile.yml
- .github/workflows/coverity.yml
- .github/workflows/lmdbpytest.yml
- + .github/workflows/nightly-dispatch.yml
- .github/workflows/npm.yml
- .github/workflows/pytest.yml
- .github/workflows/release.yml
- .github/workflows/validate.yml
- .gitignore
- + .packit.yaml
- + AGENTS.md
- + CLAUDE.md
- + GEMINI.md
- Makefile.am
- VERSION.sh
- configure.ac
- + dirsrvtests/AGENTS.md
- dirsrvtests/conftest.py
- dirsrvtests/create_test.py
- dirsrvtests/tests/data/ticket47953/__init__.py → dirsrvtests/lib/__init__.py
- + dirsrvtests/lib/test389/__init__.py
- src/lib389/lib389/perftools.py → dirsrvtests/lib/test389/perftools.py
- src/lib389/lib389/topologies.py → dirsrvtests/lib/test389/topologies.py
- + dirsrvtests/sanitizers/README.md
- + dirsrvtests/sanitizers/__init__.py
- + dirsrvtests/sanitizers/ds_sanitizer.te
- + dirsrvtests/sanitizers/setup_host.sh
- − dirsrvtests/tests/data/ticket47953/ticket47953.ldif
- dirsrvtests/tests/longduration/automembers_long_test.py
- dirsrvtests/tests/longduration/db_protect_long_test.py
- src/lib389/cli/dsrate → dirsrvtests/tests/perf/dsrate
- dirsrvtests/tests/perf/memberof_test.py
- dirsrvtests/tests/perf/ndncache_test.py
- dirsrvtests/tests/perf/search_performance_test.py
- dirsrvtests/tests/stress/backend/bdb_cursor_race_test.py
- + dirsrvtests/tests/stress/backend/range_deadlock_test.py
- dirsrvtests/tests/stress/cos/cos_scale_template_test.py
- dirsrvtests/tests/stress/reliabilty/reliab_conn_test.py
- dirsrvtests/tests/stress/search/simple.py
- dirsrvtests/tests/suites/acl/aci_excl_filter_test.py
- dirsrvtests/tests/suites/acl/aci_ip_restriction_test.py
- dirsrvtests/tests/suites/acl/acivattr_test.py
- dirsrvtests/tests/suites/acl/acl_deny_test.py
- dirsrvtests/tests/suites/acl/acl_test.py
- + dirsrvtests/tests/suites/acl/anonymous_default_aci_test.py
- dirsrvtests/tests/suites/acl/conftest.py
- dirsrvtests/tests/suites/acl/default_aci_allows_self_write_test.py
- dirsrvtests/tests/suites/acl/deladd_test.py
- dirsrvtests/tests/suites/acl/enhanced_aci_modrnd_test.py
- dirsrvtests/tests/suites/acl/globalgroup_part2_test.py
- dirsrvtests/tests/suites/acl/globalgroup_test.py
- dirsrvtests/tests/suites/acl/misc_test.py
- dirsrvtests/tests/suites/acl/modify_test.py
- dirsrvtests/tests/suites/acl/modrdn_test.py
- + dirsrvtests/tests/suites/acl/proxy_authz_test.py
- dirsrvtests/tests/suites/acl/repeated_ldap_add_test.py
- dirsrvtests/tests/suites/acl/roledn_test.py
- dirsrvtests/tests/suites/acl/search_real_part2_test.py
- dirsrvtests/tests/suites/acl/search_real_part3_test.py
- dirsrvtests/tests/suites/acl/search_real_test.py
- + dirsrvtests/tests/suites/acl/selfdn_anon_bypass_test.py
- dirsrvtests/tests/suites/acl/selfdn_permissions_test.py
- dirsrvtests/tests/suites/acl/syntax_test.py
- dirsrvtests/tests/suites/acl/userattr_test.py
- dirsrvtests/tests/suites/acl/valueacl_part2_test.py
- dirsrvtests/tests/suites/acl/valueacl_test.py
- dirsrvtests/tests/suites/attr_encryption/attr_encryption_test.py
- dirsrvtests/tests/suites/auth_token/basic_auth_test.py
- dirsrvtests/tests/suites/automember_plugin/automember_abort_test.py
- dirsrvtests/tests/suites/automember_plugin/automember_mod_test.py
- dirsrvtests/tests/suites/automember_plugin/automember_test.py
- dirsrvtests/tests/suites/automember_plugin/basic_test.py
- dirsrvtests/tests/suites/automember_plugin/configuration_test.py
- dirsrvtests/tests/suites/backups/backup_test.py
- dirsrvtests/tests/suites/basic/basic_test.py
- dirsrvtests/tests/suites/basic/ds_entrydn_test.py
- dirsrvtests/tests/suites/basic/haproxy_test.py
- + dirsrvtests/tests/suites/basic/modrdn_bulk_children_test.py
- dirsrvtests/tests/suites/basic/vlv_test.py
- dirsrvtests/tests/suites/betxns/betxn_test.py
- + dirsrvtests/tests/suites/betxns/entrycache_dn_hash_corruption_test.py
- dirsrvtests/tests/suites/chaining_plugin/anonymous_access_denied_basic_test.py
- + dirsrvtests/tests/suites/chaining_plugin/chaining_bind_pw_encoding_test.py
- dirsrvtests/tests/suites/chaining_plugin/paged_search_test.py
- dirsrvtests/tests/suites/clu/ca_cert_bundle_test.py
- dirsrvtests/tests/suites/clu/clu_test.py
- dirsrvtests/tests/suites/clu/dbgen_test.py
- dirsrvtests/tests/suites/clu/dbgen_usan_test.py
- dirsrvtests/tests/suites/clu/dbmon_test.py
- dirsrvtests/tests/suites/clu/dbscan_test.py
- dirsrvtests/tests/suites/clu/dbverify_test.py
- dirsrvtests/tests/suites/clu/dsconf_agmt_create_test.py
- + dirsrvtests/tests/suites/clu/dsconf_agmt_timeout_attrs_test.py
- dirsrvtests/tests/suites/clu/dsconf_backend_dynamic_lists_test.py
- dirsrvtests/tests/suites/clu/dsconf_config_test.py
- dirsrvtests/tests/suites/clu/dsconf_conflict_test.py
- + dirsrvtests/tests/suites/clu/dsconf_dsctl_security_cli_test.py
- dirsrvtests/tests/suites/clu/dsconf_logging_test.py
- dirsrvtests/tests/suites/clu/dsconf_memberof_test.py
- dirsrvtests/tests/suites/clu/dsconf_pta_add_url_test.py
- + dirsrvtests/tests/suites/clu/dsconf_pwstorage_scheme_test.py
- dirsrvtests/tests/suites/clu/dsconf_schema_superior_test.py
- dirsrvtests/tests/suites/clu/dsconf_tasks_test.py
- dirsrvtests/tests/suites/clu/dsconf_test.py
- dirsrvtests/tests/suites/clu/dsctl_acceptance_test.py
- dirsrvtests/tests/suites/clu/dsctl_dblib_test.py
- + dirsrvtests/tests/suites/clu/dsctl_tasks_test.py
- dirsrvtests/tests/suites/clu/dsctl_tls_test.py
- dirsrvtests/tests/suites/clu/dsidm_account_inactivity_test.py
- dirsrvtests/tests/suites/clu/dsidm_account_test.py
- dirsrvtests/tests/suites/clu/dsidm_bulk_update_test.py
- dirsrvtests/tests/suites/clu/dsidm_config_test.py
- dirsrvtests/tests/suites/clu/dsidm_group_test.py
- dirsrvtests/tests/suites/clu/dsidm_init_test.py
- dirsrvtests/tests/suites/clu/dsidm_organizational_unit_test.py
- dirsrvtests/tests/suites/clu/dsidm_posixgroup_test.py
- dirsrvtests/tests/suites/clu/dsidm_role_test.py
- dirsrvtests/tests/suites/clu/dsidm_services_test.py
- dirsrvtests/tests/suites/clu/dsidm_uniquegroup_test.py
- + dirsrvtests/tests/suites/clu/dsidm_user_get_pwp_test.py
- dirsrvtests/tests/suites/clu/dsidm_user_test.py
- dirsrvtests/tests/suites/clu/dsrc_test.py
- dirsrvtests/tests/suites/clu/fixup_test.py
- dirsrvtests/tests/suites/clu/repl_monitor_test.py
- dirsrvtests/tests/suites/clu/schema_test.py
- + dirsrvtests/tests/suites/clu/task_shutdown_test.py
- dirsrvtests/tests/suites/config/autotuning_test.py
- dirsrvtests/tests/suites/config/compact_test.py
- dirsrvtests/tests/suites/config/config_delete_attr_test.py
- dirsrvtests/tests/suites/config/config_test.py
- dirsrvtests/tests/suites/config/regression_test.py
- dirsrvtests/tests/suites/config/removed_config_49298_test.py
- dirsrvtests/tests/suites/cos/cos_test.py
- dirsrvtests/tests/suites/cos/indirect_cos_test.py
- dirsrvtests/tests/suites/disk_monitoring/disk_monitoring_divide_test.py
- dirsrvtests/tests/suites/disk_monitoring/disk_monitoring_test.py
- dirsrvtests/tests/suites/disk_monitoring/disk_space_test.py
- dirsrvtests/tests/suites/ds_logs/audit_log_test.py
- dirsrvtests/tests/suites/ds_logs/ds_logs_test.py
- dirsrvtests/tests/suites/ds_logs/regression_test.py
- dirsrvtests/tests/suites/ds_tools/logpipe_test.py
- dirsrvtests/tests/suites/ds_tools/replcheck_test.py
- dirsrvtests/tests/suites/dynamic_lists/dynamic_lists_test.py
- dirsrvtests/tests/suites/dynamic_plugins/dynamic_plugins_test.py
- dirsrvtests/tests/suites/dynamic_plugins/notice_for_restart_test.py
- dirsrvtests/tests/suites/entryuuid/basic_test.py
- dirsrvtests/tests/suites/entryuuid/replicated_test.py
- + dirsrvtests/tests/suites/export/export_reindex_tombstone_test.py
- dirsrvtests/tests/suites/export/export_test.py
- dirsrvtests/tests/suites/features/entrycache_eviction_test.py
- dirsrvtests/tests/suites/features/ldap_controls_test.py
- dirsrvtests/tests/suites/filter/basic_filter_test.py
- dirsrvtests/tests/suites/filter/bitw_filter_test.py
- dirsrvtests/tests/suites/filter/complex_filters_test.py
- dirsrvtests/tests/suites/filter/filter_aci_with_optimiser_test.py
- dirsrvtests/tests/suites/filter/filter_cert_test.py
- dirsrvtests/tests/suites/filter/filter_index_match_test.py
- dirsrvtests/tests/suites/filter/filter_indexing_test.py
- dirsrvtests/tests/suites/filter/filter_logic_test.py
- dirsrvtests/tests/suites/filter/filter_match_test.py
- dirsrvtests/tests/suites/filter/filter_onelevel_aci_test.py
- dirsrvtests/tests/suites/filter/filter_test.py
- dirsrvtests/tests/suites/filter/filter_with_non_root_user_test.py
- dirsrvtests/tests/suites/filter/filterscanlimit_test.py
- dirsrvtests/tests/suites/filter/inchain_test.py
- dirsrvtests/tests/suites/filter/large_filter_test.py
- dirsrvtests/tests/suites/filter/rfc3673_all_oper_attrs_test.py
- dirsrvtests/tests/suites/filter/schema_validation_test.py
- dirsrvtests/tests/suites/filter/vfilter_attribute_test.py
- dirsrvtests/tests/suites/filter/vfilter_simple_test.py
- dirsrvtests/tests/suites/fourwaymmr/fourwaymmr_test.py
- dirsrvtests/tests/suites/fractional/fractional_test.py
- dirsrvtests/tests/suites/get_effective_rights/acceptance_test.py
- dirsrvtests/tests/suites/gssapi/simple_gssapi_test.py
- dirsrvtests/tests/suites/gssapi_repl/gssapi_repl_test.py
- dirsrvtests/tests/suites/healthcheck/health_config_test.py
- dirsrvtests/tests/suites/healthcheck/health_repl_test.py
- dirsrvtests/tests/suites/healthcheck/health_security_test.py
- + dirsrvtests/tests/suites/healthcheck/health_skew_test.py
- dirsrvtests/tests/suites/healthcheck/health_system_indexes_test.py
- dirsrvtests/tests/suites/healthcheck/health_tunables_test.py
- dirsrvtests/tests/suites/healthcheck/healthcheck_test.py
- + dirsrvtests/tests/suites/import/bulk_import_test.py
- dirsrvtests/tests/suites/import/import_test.py
- dirsrvtests/tests/suites/import/import_warning_test.py
- dirsrvtests/tests/suites/import/regression_test.py
- dirsrvtests/tests/suites/indexes/entryrdn_test.py
- dirsrvtests/tests/suites/indexes/huge_index_key_test.py
- dirsrvtests/tests/suites/indexes/regression_test.py
- + dirsrvtests/tests/suites/indexes/reindex_abort_test.py
- + dirsrvtests/tests/suites/indexes/substring_index_test.py
- dirsrvtests/tests/suites/ldapi/ldapi_test.py
- dirsrvtests/tests/suites/lib389/config_compare_test.py
- dirsrvtests/tests/suites/lib389/dsldapobject/dn_construct_test.py
- dirsrvtests/tests/suites/lib389/idm/account_test.py
- dirsrvtests/tests/suites/lib389/idm/user_compare_i2_test.py
- dirsrvtests/tests/suites/lib389/idm/user_compare_m2Repl_test.py
- dirsrvtests/tests/suites/lib389/idm/user_compare_st_test.py
- + dirsrvtests/tests/suites/lib389/subsuffix_tree_test.py
- dirsrvtests/tests/suites/lib389/timeout_test.py
- + dirsrvtests/tests/suites/logging/access_fgot_test.py
- dirsrvtests/tests/suites/logging/access_json_logging_test.py
- + dirsrvtests/tests/suites/logging/async_log_compress_chain_uaf_test.py
- dirsrvtests/tests/suites/logging/audit_json_logging_test.py
- dirsrvtests/tests/suites/logging/audit_password_masking_test.py
- + dirsrvtests/tests/suites/logging/auditlog_pwd_mask_overflow_test.py
- dirsrvtests/tests/suites/logging/error_json_logging_test.py
- dirsrvtests/tests/suites/logging/log_flush_rotation_test.py
- dirsrvtests/tests/suites/logging/logconv_test.py
- dirsrvtests/tests/suites/logging/logging_compression_test.py
- dirsrvtests/tests/suites/logging/logging_config_test.py
- + dirsrvtests/tests/suites/logging/logging_long_path_compression_test.py
- dirsrvtests/tests/suites/logging/security_basic_test.py
- dirsrvtests/tests/suites/mapping_tree/acceptance_test.py
- dirsrvtests/tests/suites/mapping_tree/be_del_and_default_naming_attr_test.py
- dirsrvtests/tests/suites/mapping_tree/mt_cursed_test.py
- dirsrvtests/tests/suites/mapping_tree/referral_during_tot_init_test.py
- dirsrvtests/tests/suites/mapping_tree/regression_test.py
- dirsrvtests/tests/suites/memberof_plugin/conftest.py
- dirsrvtests/tests/suites/memberof_plugin/fixup_test.py
- dirsrvtests/tests/suites/memberof_plugin/memberof_deferred_lmdb_test.py
- dirsrvtests/tests/suites/memberof_plugin/memberof_deferred_repl_test.py
- + dirsrvtests/tests/suites/memberof_plugin/memberof_deferred_scope_test.py
- dirsrvtests/tests/suites/memberof_plugin/memberof_exclude_subtrees_test.py
- dirsrvtests/tests/suites/memberof_plugin/memberof_include_scopes_test.py
- + dirsrvtests/tests/suites/memberof_plugin/memberof_multi_backend_test.py
- dirsrvtests/tests/suites/memberof_plugin/memberof_skipnested_test.py
- dirsrvtests/tests/suites/memberof_plugin/memberof_specific_group_test.py
- dirsrvtests/tests/suites/memberof_plugin/nested_groups_test.py
- dirsrvtests/tests/suites/memberof_plugin/regression_test.py
- dirsrvtests/tests/suites/memory_leaks/MMR_double_free_test.py
- dirsrvtests/tests/suites/memory_leaks/allids_search_test.py
- dirsrvtests/tests/suites/memory_leaks/range_search_test.py
- dirsrvtests/tests/suites/migration/export_data_test.py
- dirsrvtests/tests/suites/migration/import_data_test.py
- dirsrvtests/tests/suites/monitor/db_locks_monitor_test.py
- dirsrvtests/tests/suites/monitor/monitor_test.py
- + dirsrvtests/tests/suites/monitor/threadpool_status_test.py
- dirsrvtests/tests/suites/openldap_2_389/migrate_hdb_test.py
- dirsrvtests/tests/suites/openldap_2_389/migrate_memberof_test.py
- dirsrvtests/tests/suites/openldap_2_389/migrate_monitor_test.py
- dirsrvtests/tests/suites/openldap_2_389/migrate_test.py
- dirsrvtests/tests/suites/openldap_2_389/password_migrate_test.py
- dirsrvtests/tests/suites/paged_results/paged_results_test.py
- dirsrvtests/tests/suites/password/password_TPR_policy_test.py
- dirsrvtests/tests/suites/password/password_policy_test.py
- dirsrvtests/tests/suites/password/password_test.py
- dirsrvtests/tests/suites/password/pbkdf2_upgrade_plugin_test.py
- dirsrvtests/tests/suites/password/pw_expired_access_test.py
- dirsrvtests/tests/suites/password/pwdAdmin_test.py
- dirsrvtests/tests/suites/password/pwdModify_test.py
- dirsrvtests/tests/suites/password/pwdPolicy_attribute_test.py
- + dirsrvtests/tests/suites/password/pwdPolicy_breach_test.py
- dirsrvtests/tests/suites/password/pwdPolicy_controls_sequence_test.py
- dirsrvtests/tests/suites/password/pwdPolicy_controls_test.py
- dirsrvtests/tests/suites/password/pwdPolicy_inherit_global_test.py
- dirsrvtests/tests/suites/password/pwdPolicy_logging_test.py
- dirsrvtests/tests/suites/password/pwdPolicy_syntax_test.py
- dirsrvtests/tests/suites/password/pwdPolicy_temporary_password_test.py
- dirsrvtests/tests/suites/password/pwdPolicy_token_test.py
- dirsrvtests/tests/suites/password/pwdPolicy_warning_test.py
- dirsrvtests/tests/suites/password/pwd_algo_test.py
- + dirsrvtests/tests/suites/password/pwd_check_prefix_crash_test.py
- dirsrvtests/tests/suites/password/pwd_crypt_asterisk_test.py
- dirsrvtests/tests/suites/password/pwd_lockout_bypass_test.py
- dirsrvtests/tests/suites/password/pwd_log_test.py
- dirsrvtests/tests/suites/password/pwd_upgrade_on_bind_test.py
- dirsrvtests/tests/suites/password/pwp_gracel_test.py
- dirsrvtests/tests/suites/password/pwp_history_local_override_test.py
- dirsrvtests/tests/suites/password/pwp_history_test.py
- dirsrvtests/tests/suites/password/pwp_test.py
- + dirsrvtests/tests/suites/password/pwpolicy_effective_test.py
- dirsrvtests/tests/suites/password/regression_of_bugs_test.py
- dirsrvtests/tests/suites/password/regression_test.py
- + dirsrvtests/tests/suites/password/uac_test.py
- dirsrvtests/tests/suites/plugins/acceptance_test.py
- dirsrvtests/tests/suites/plugins/account_policy_login_attr_test.py
- dirsrvtests/tests/suites/plugins/accpol_check_all_state_attrs_test.py
- dirsrvtests/tests/suites/plugins/accpol_test.py
- + dirsrvtests/tests/suites/plugins/addn_test.py
- dirsrvtests/tests/suites/plugins/alias_entries_test.py
- dirsrvtests/tests/suites/plugins/attr_nsslapd-pluginarg_test.py
- dirsrvtests/tests/suites/plugins/attruniq_test.py
- dirsrvtests/tests/suites/plugins/cos_test.py
- dirsrvtests/tests/suites/plugins/deref_aci_test.py
- dirsrvtests/tests/suites/plugins/dna_interval_test.py
- dirsrvtests/tests/suites/plugins/dna_repl_test.py
- dirsrvtests/tests/suites/plugins/dna_test.py
- dirsrvtests/tests/suites/plugins/entryusn_overflow_test.py
- dirsrvtests/tests/suites/plugins/entryusn_test.py
- dirsrvtests/tests/suites/plugins/linked_attributes_test.py
- dirsrvtests/tests/suites/plugins/managed_entry_test.py
- dirsrvtests/tests/suites/plugins/memberof_test.py
- dirsrvtests/tests/suites/plugins/modrdn_test.py
- dirsrvtests/tests/suites/plugins/pam_pta_test.py
- dirsrvtests/tests/suites/plugins/pluginpath_validation_test.py
- dirsrvtests/tests/suites/plugins/referint_test.py
- dirsrvtests/tests/suites/plugins/rootdn_plugin_test.py
- dirsrvtests/tests/suites/psearch/psearch_test.py
- dirsrvtests/tests/suites/pwp_storage/storage_test.py
- + dirsrvtests/tests/suites/referint_plugin/memberof_duplicate_test.py
- dirsrvtests/tests/suites/referint_plugin/rename_test.py
- dirsrvtests/tests/suites/replication/acceptance_test.py
- dirsrvtests/tests/suites/replication/acl_replication_test.py
- dirsrvtests/tests/suites/replication/cascading_test.py
- dirsrvtests/tests/suites/replication/changelog_encryption_test.py
- dirsrvtests/tests/suites/replication/changelog_test.py
- dirsrvtests/tests/suites/replication/changelog_trimming_test.py
- dirsrvtests/tests/suites/replication/cleanallruv_abort_certify_test.py
- dirsrvtests/tests/suites/replication/cleanallruv_abort_restart_test.py
- dirsrvtests/tests/suites/replication/cleanallruv_abort_test.py
- dirsrvtests/tests/suites/replication/cleanallruv_force_test.py
- dirsrvtests/tests/suites/replication/cleanallruv_fractional_test.py
- dirsrvtests/tests/suites/replication/cleanallruv_max_tasks_test.py
- dirsrvtests/tests/suites/replication/cleanallruv_multiple_force_test.py
- dirsrvtests/tests/suites/replication/cleanallruv_restart_test.py
- dirsrvtests/tests/suites/replication/cleanallruv_shutdown_crash_test.py
- dirsrvtests/tests/suites/replication/cleanallruv_stress_test.py
- dirsrvtests/tests/suites/replication/cleanallruv_test.py
- + dirsrvtests/tests/suites/replication/cleanruv_extop_security_test.py
- dirsrvtests/tests/suites/replication/conftest.py
- dirsrvtests/tests/suites/replication/encryption_cl5_test.py
- + dirsrvtests/tests/suites/replication/mmr_single_value_conflict_test.py
- dirsrvtests/tests/suites/replication/multiple_changelogs_test.py
- dirsrvtests/tests/suites/replication/numsubordinates_replication_test.py
- + dirsrvtests/tests/suites/replication/online_import_nosync_test.py
- dirsrvtests/tests/suites/replication/promote_demote_test.py
- dirsrvtests/tests/suites/replication/regression_i2_test.py
- dirsrvtests/tests/suites/replication/regression_m2_test.py
- dirsrvtests/tests/suites/replication/regression_m2c1_test.py
- dirsrvtests/tests/suites/replication/regression_m2c2_test.py
- dirsrvtests/tests/suites/replication/regression_m3_test.py
- dirsrvtests/tests/suites/replication/repl_agmt_bootstrap_test.py
- dirsrvtests/tests/suites/replication/repl_conflict_delete_modify_test.py
- dirsrvtests/tests/suites/replication/repl_log_monitoring_test.py
- dirsrvtests/tests/suites/replication/replica_config_test.py
- dirsrvtests/tests/suites/replication/replica_roles_test.py
- dirsrvtests/tests/suites/replication/replication_deadlock_test.py
- + dirsrvtests/tests/suites/replication/ruv_before_suffix_entryid_test.py
- dirsrvtests/tests/suites/replication/ruvstore_test.py
- dirsrvtests/tests/suites/replication/sasl_m2_test.py
- dirsrvtests/tests/suites/replication/selfdn_acl_replication_test.py
- dirsrvtests/tests/suites/replication/series_of_repl_bugs_test.py
- dirsrvtests/tests/suites/replication/single_master_test.py
- + dirsrvtests/tests/suites/replication/startrepl_auth_race_test.py
- dirsrvtests/tests/suites/replication/tls_client_auth_repl_test.py
- dirsrvtests/tests/suites/replication/tombstone_fixup_test.py
- dirsrvtests/tests/suites/replication/tombstone_repl_mods_test.py
- dirsrvtests/tests/suites/replication/tombstone_test.py
- dirsrvtests/tests/suites/replication/urp_test.py
- dirsrvtests/tests/suites/replication/virtual_attribute_replication_test.py
- dirsrvtests/tests/suites/replication/wait_for_async_feature_test.py
- dirsrvtests/tests/suites/resource_limits/fdlimits_test.py
- dirsrvtests/tests/suites/retrocl/basic_test.py
- + dirsrvtests/tests/suites/retrocl/regression_test.py
- dirsrvtests/tests/suites/retrocl/retrocl_indexing_test.py
- dirsrvtests/tests/suites/rewriters/adfilter_test.py
- dirsrvtests/tests/suites/rewriters/basic_test.py
- dirsrvtests/tests/suites/roles/basic_test.py
- dirsrvtests/tests/suites/sasl/allowed_mechs_test.py
- + dirsrvtests/tests/suites/sasl/io_overflow_asan_test.py
- dirsrvtests/tests/suites/sasl/plain_test.py
- dirsrvtests/tests/suites/sasl/regression_test.py
- + dirsrvtests/tests/suites/sasl/sasl_io_overflow_test.py
- + dirsrvtests/tests/suites/sasl/sasl_stale_identity_test.py
- dirsrvtests/tests/suites/schema/eduperson_test.py
- dirsrvtests/tests/suites/schema/schema_csn_replication_test.py
- + dirsrvtests/tests/suites/schema/schema_oc_sup_overflow_test.py
- + dirsrvtests/tests/suites/schema/schema_reload_heap_use_after_free_test.py
- dirsrvtests/tests/suites/schema/schema_reload_test.py
- dirsrvtests/tests/suites/schema/schema_replication_origin_test.py
- dirsrvtests/tests/suites/schema/schema_replication_test.py
- dirsrvtests/tests/suites/schema/schema_standard_update_test.py
- dirsrvtests/tests/suites/schema/schema_test.py
- dirsrvtests/tests/suites/schema/schema_update_policy_test.py
- dirsrvtests/tests/suites/schema/x_attribute_descr_oid_test.py
- dirsrvtests/tests/suites/session_tracking/session_test.py
- dirsrvtests/tests/suites/setup_ds/db_home_test.py
- dirsrvtests/tests/suites/setup_ds/remove_test.py
- dirsrvtests/tests/suites/slapi_memberof/basic_interface_test.py
- + dirsrvtests/tests/suites/snmp/regression_test.py
- dirsrvtests/tests/suites/state/mmt_state_test.py
- dirsrvtests/tests/suites/subentries/subentries_test.py
- dirsrvtests/tests/suites/syncrepl_plugin/__init__.py
- dirsrvtests/tests/suites/syncrepl_plugin/basic_test.py
- + dirsrvtests/tests/suites/syncrepl_plugin/clu_test.py
- dirsrvtests/tests/suites/syncrepl_plugin/openldap_test.py
- dirsrvtests/tests/suites/syntax/acceptance_test.py
- dirsrvtests/tests/suites/syntax/mr_test.py
- + dirsrvtests/tests/suites/threads/__init__.py
- + dirsrvtests/tests/suites/threads/thread_naming_test.py
- dirsrvtests/tests/suites/tls/cipher_test.py
- + dirsrvtests/tests/suites/tls/dynamic_certificates_test.py
- dirsrvtests/tests/suites/tls/ecdsa_test.py
- + dirsrvtests/tests/suites/tls/mldsa_test.py
- dirsrvtests/tests/suites/tls/ssl_version_test.py
- dirsrvtests/tests/suites/tls/tls_cert_namespace_test.py
- dirsrvtests/tests/suites/tls/tls_check_crl_test.py
- dirsrvtests/tests/suites/tls/tls_import_ca_chain_test.py
- dirsrvtests/tests/suites/tls/tls_ldaps_only_test.py
- + dirsrvtests/tests/suites/tls/tls_renegotiation_test.py
- dirsrvtests/tests/suites/tls/tls_repl_clientauth_test.py
- dirsrvtests/tests/suites/upgrade/upgrade_bdb2mdb_test.py
- + dirsrvtests/tests/suites/upgrade/upgrade_plugin_attribute.py
- dirsrvtests/tests/suites/upgrade/upgrade_repl_plugin_test.py
- dirsrvtests/tests/suites/upgrade/upgradednformat_test.py
- + dirsrvtests/tests/suites/usdt/__init__.py
- + dirsrvtests/tests/suites/usdt/_common.py
- + dirsrvtests/tests/suites/usdt/usdt_bpftrace_scripts_test.py
- + dirsrvtests/tests/suites/usdt/usdt_probes_test.py
- + dirsrvtests/tests/suites/usdt/usdt_stap_scripts_test.py
- + dirsrvtests/tests/suites/usdt/usdt_tracing_test.py
- dirsrvtests/tests/suites/vlv/regression_test.py
- dirsrvtests/tests/suites/webui/__init__.py
- dirsrvtests/tests/suites/webui/backup/backup_test.py
- dirsrvtests/tests/suites/webui/create/create_instance_test.py
- dirsrvtests/tests/suites/webui/database/database_test.py
- dirsrvtests/tests/suites/webui/ldap_browser/ldap_browser_test.py
- dirsrvtests/tests/suites/webui/login/login_test.py
- dirsrvtests/tests/suites/webui/monitoring/monitoring_test.py
- dirsrvtests/tests/suites/webui/plugins/plugins_test.py
- dirsrvtests/tests/suites/webui/replication/replication_test.py
- dirsrvtests/tests/suites/webui/schema/schema_test.py
- dirsrvtests/tests/suites/webui/server/server_test.py
- − dirsrvtests/tests/tickets/ticket47781_test.py
- − dirsrvtests/tests/tickets/ticket47953_test.py
- − dirsrvtests/tests/tickets/ticket47970_test.py
- − dirsrvtests/tests/tickets/ticket47976_test.py
- − dirsrvtests/tests/tickets/ticket47980_test.py
- − dirsrvtests/tests/tickets/ticket47981_test.py
- dirsrvtests/tests/tickets/ticket47988_test.py
- − dirsrvtests/tests/tickets/ticket48005_test.py
- − dirsrvtests/tests/tickets/ticket48013_test.py
- − dirsrvtests/tests/tickets/ticket48109_test.py
- − dirsrvtests/tests/tickets/ticket48170_test.py
- − dirsrvtests/tests/tickets/ticket48194_test.py
- dirsrvtests/tests/tickets/ticket48212_test.py
- − dirsrvtests/tests/tickets/ticket48214_test.py
- − dirsrvtests/tests/tickets/ticket48252_test.py
- − dirsrvtests/tests/tickets/ticket48265_test.py
- − dirsrvtests/tests/tickets/ticket48266_test.py
- − dirsrvtests/tests/tickets/ticket48270_test.py
- − dirsrvtests/tests/tickets/ticket48272_test.py
- − dirsrvtests/tests/tickets/ticket48312_test.py
- dirsrvtests/tests/tickets/ticket48325_test.py
- dirsrvtests/tests/tickets/ticket48342_test.py
- − dirsrvtests/tests/tickets/ticket48354_test.py
- − dirsrvtests/tests/tickets/ticket48362_test.py
- − dirsrvtests/tests/tickets/ticket48366_test.py
- − dirsrvtests/tests/tickets/ticket48383_test.py
- − dirsrvtests/tests/tickets/ticket48497_test.py
- dirsrvtests/tests/tickets/ticket48637_test.py
- dirsrvtests/tests/tickets/ticket48665_test.py
- − dirsrvtests/tests/tickets/ticket48745_test.py
- − dirsrvtests/tests/tickets/ticket48746_test.py
- dirsrvtests/tests/tickets/ticket48759_test.py
- dirsrvtests/tests/tickets/ticket48784_test.py
- dirsrvtests/tests/tickets/ticket48798_test.py
- dirsrvtests/tests/tickets/ticket48799_test.py
- dirsrvtests/tests/tickets/ticket48808_test.py
- dirsrvtests/tests/tickets/ticket48844_test.py
- dirsrvtests/tests/tickets/ticket48891_test.py
- dirsrvtests/tests/tickets/ticket48893_test.py
- − dirsrvtests/tests/tickets/ticket48896_test.py
- dirsrvtests/tests/tickets/ticket48906_test.py
- dirsrvtests/tests/tickets/ticket48916_test.py
- dirsrvtests/tests/tickets/ticket48944_test.py
- dirsrvtests/tests/tickets/ticket48956_test.py
- dirsrvtests/tests/tickets/ticket49020_test.py
- − dirsrvtests/tests/tickets/ticket49039_test.py
- dirsrvtests/tests/tickets/ticket49076_test.py
- dirsrvtests/tests/tickets/ticket49095_test.py
- dirsrvtests/tests/tickets/ticket49104_test.py
- dirsrvtests/tests/tickets/ticket49121_test.py
- dirsrvtests/tests/tickets/ticket49122_test.py
- dirsrvtests/tests/tickets/ticket49180_test.py
- dirsrvtests/tests/tickets/ticket49192_test.py
- dirsrvtests/tests/tickets/ticket49227_test.py
- dirsrvtests/tests/tickets/ticket49249_test.py
- dirsrvtests/tests/tickets/ticket49273_test.py
- − dirsrvtests/tests/tickets/ticket49287_test.py
- dirsrvtests/tests/tickets/ticket49290_test.py
- − dirsrvtests/tests/tickets/ticket49303_test.py
- − dirsrvtests/tests/tickets/ticket49412_test.py
- dirsrvtests/tests/tickets/ticket49441_test.py
- dirsrvtests/tests/tickets/ticket49460_test.py
- dirsrvtests/tests/tickets/ticket49471_test.py
- dirsrvtests/tests/tickets/ticket49623_2_test.py
- − dirsrvtests/tests/tickets/ticket49658_test.py
- dirsrvtests/tests/tickets/ticket49788_test.py
- dirsrvtests/tests/tickets/ticket50078_test.py
- dirsrvtests/tests/tickets/ticket50234_test.py
- − dirsrvtests/tests/tickets/ticket548_test.py
- + docs/agents/architecture.md
- + docs/agents/backends.md
- + docs/agents/building.md
- + docs/agents/c-server.md
- + docs/agents/cli.md
- + docs/agents/contributing.md
- + docs/agents/lib389.md
- + docs/agents/plugins.md
- + docs/agents/replication.md
- + docs/agents/rust.md
- + docs/agents/testing.md
- + docs/agents/ui.md
- + ldap/AGENTS.md
- + ldap/admin/src/389-ds-base.sysusers
- ldap/admin/src/defaults.inf.in
- ldap/admin/src/logconv.py
- ldap/ldif/template-dse-minimal.ldif.in
- ldap/ldif/template-dse.ldif.in
- ldap/schema/01core389.ldif
- ldap/schema/02common.ldif
- ldap/servers/plugins/acl/acl.c
- ldap/servers/plugins/acl/acllas.c
- ldap/servers/plugins/acl/aclparse.c
- ldap/servers/plugins/automember/automember.c
- ldap/servers/plugins/collation/orfilter.c
- ldap/servers/plugins/cos/cos_cache.c
- ldap/servers/plugins/deref/deref.c
- ldap/servers/plugins/dna/dna.c
- ldap/servers/plugins/linkedattrs/fixup_task.c
- ldap/servers/plugins/linkedattrs/linked_attrs.c
- ldap/servers/plugins/memberof/memberof.c
- ldap/servers/plugins/posix-winsync/posix-group-task.c
- ldap/servers/plugins/pwdstorage/pbkdf2_pwd.c
- ldap/servers/plugins/pwdstorage/pwdstorage.h
- ldap/servers/plugins/pwdstorage/smd5_pwd.c
- ldap/servers/plugins/referint/referint.c
- ldap/servers/plugins/replication/cl5_api.c
- ldap/servers/plugins/replication/cl5_clcache.c
- ldap/servers/plugins/replication/cl5_config.c
- ldap/servers/plugins/replication/cl5_test.c
- ldap/servers/plugins/replication/repl5.h
- ldap/servers/plugins/replication/repl5_agmtlist.c
- ldap/servers/plugins/replication/repl5_inc_protocol.c
- ldap/servers/plugins/replication/repl5_init.c
- ldap/servers/plugins/replication/repl5_protocol.c
- ldap/servers/plugins/replication/repl5_replica.c
- ldap/servers/plugins/replication/repl5_replica_config.c
- ldap/servers/plugins/replication/repl5_tot_protocol.c
- ldap/servers/plugins/replication/repl5_total.c
- ldap/servers/plugins/replication/repl_cleanallruv.c
- ldap/servers/plugins/replication/repl_extop.c
- ldap/servers/plugins/replication/urp_tombstone.c
- ldap/servers/plugins/replication/windows_protocol_util.c
- ldap/servers/plugins/retrocl/retrocl.c
- ldap/servers/plugins/retrocl/retrocl.h
- ldap/servers/plugins/retrocl/retrocl_po.c
- ldap/servers/plugins/retrocl/retrocl_trim.c
- ldap/servers/plugins/roles/roles_cache.c
- ldap/servers/plugins/schema_reload/schema_reload.c
- ldap/servers/plugins/sync/sync.h
- ldap/servers/plugins/sync/sync_init.c
- ldap/servers/plugins/sync/sync_persist.c
- ldap/servers/plugins/sync/sync_util.c
- ldap/servers/plugins/syntaxes/string.c
- ldap/servers/plugins/syntaxes/validate_task.c
- ldap/servers/plugins/uiduniq/uid.c
- ldap/servers/plugins/usn/usn_cleanup.c
- ldap/servers/plugins/views/views.c
- ldap/servers/slapd/abandon.c
- ldap/servers/slapd/accesslog.c
- ldap/servers/slapd/add.c
- ldap/servers/slapd/attr.c
- ldap/servers/slapd/attrsyntax.c
- ldap/servers/slapd/auditlog.c
- ldap/servers/slapd/auth.c
- ldap/servers/slapd/back-ldbm/archive.c
- ldap/servers/slapd/back-ldbm/attrcrypt.h
- ldap/servers/slapd/back-ldbm/back-ldbm.h
- ldap/servers/slapd/back-ldbm/backentry.c
- ldap/servers/slapd/back-ldbm/cache.c
- ldap/servers/slapd/back-ldbm/db-bdb/bdb_import.c
- ldap/servers/slapd/back-ldbm/db-bdb/bdb_import_threads.c
- ldap/servers/slapd/back-ldbm/db-bdb/bdb_layer.c
- ldap/servers/slapd/back-ldbm/db-bdb/bdb_ldif2db.c
- ldap/servers/slapd/back-ldbm/db-mdb/mdb_config.c
- ldap/servers/slapd/back-ldbm/db-mdb/mdb_import.c
- ldap/servers/slapd/back-ldbm/db-mdb/mdb_import_threads.c
- ldap/servers/slapd/back-ldbm/db-mdb/mdb_instance.c
- ldap/servers/slapd/back-ldbm/db-mdb/mdb_layer.c
- ldap/servers/slapd/back-ldbm/db-mdb/mdb_layer.h
- ldap/servers/slapd/back-ldbm/db-mdb/mdb_ldif2db.c
- ldap/servers/slapd/back-ldbm/db-mdb/mdb_misc.c
- ldap/servers/slapd/back-ldbm/filterindex.c
- ldap/servers/slapd/back-ldbm/id2entry.c
- ldap/servers/slapd/back-ldbm/idl_common.c
- ldap/servers/slapd/back-ldbm/idl_new.c
- ldap/servers/slapd/back-ldbm/import.c
- ldap/servers/slapd/back-ldbm/import.h
- ldap/servers/slapd/back-ldbm/index.c
- ldap/servers/slapd/back-ldbm/instance.c
- ldap/servers/slapd/back-ldbm/ldbm_add.c
- ldap/servers/slapd/back-ldbm/ldbm_attr.c
- ldap/servers/slapd/back-ldbm/ldbm_attrcrypt.c
- ldap/servers/slapd/back-ldbm/ldbm_config.c
- ldap/servers/slapd/back-ldbm/ldbm_config.h
- ldap/servers/slapd/back-ldbm/ldbm_delete.c
- ldap/servers/slapd/back-ldbm/ldbm_entryrdn.c
- ldap/servers/slapd/back-ldbm/ldbm_index_config.c
- ldap/servers/slapd/back-ldbm/ldbm_modify.c
- ldap/servers/slapd/back-ldbm/ldbm_modrdn.c
- ldap/servers/slapd/back-ldbm/ldbm_search.c
- ldap/servers/slapd/back-ldbm/misc.c
- ldap/servers/slapd/back-ldbm/nextid.c
- ldap/servers/slapd/back-ldbm/proto-back-ldbm.h
- ldap/servers/slapd/back-ldbm/seq.c
- ldap/servers/slapd/back-ldbm/vlv.c
- ldap/servers/slapd/bind.c
- ldap/servers/slapd/charray.c
- ldap/servers/slapd/compare.c
- ldap/servers/slapd/configdse.c
- ldap/servers/slapd/connection.c
- ldap/servers/slapd/control.c
- ldap/servers/slapd/csngen.c
- ldap/servers/slapd/daemon.c
- ldap/servers/slapd/dn.c
- ldap/servers/slapd/dyncerts.c
- ldap/servers/slapd/dyncerts.h
- ldap/servers/slapd/entry.c
- ldap/servers/slapd/entrywsi.c
- ldap/servers/slapd/eventq-deprecated.c
- ldap/servers/slapd/eventq.c
- ldap/servers/slapd/extendop.c
- ldap/servers/slapd/fe.h
- ldap/servers/slapd/fedse.c
- ldap/servers/slapd/generation.c
- ldap/servers/slapd/globals.c
- ldap/servers/slapd/haproxy.c
- + ldap/servers/slapd/hibp.h
- + ldap/servers/slapd/hibp_client.c
- ldap/servers/slapd/house.c
- ldap/servers/slapd/ldaputil.c
- ldap/servers/slapd/libglobs.c
- ldap/servers/slapd/log.c
- ldap/servers/slapd/log.h
- ldap/servers/slapd/main.c
- ldap/servers/slapd/mapping_tree.c
- ldap/servers/slapd/modify.c
- ldap/servers/slapd/modrdn.c
- ldap/servers/slapd/monitor.c
- ldap/servers/slapd/operation.c
- ldap/servers/slapd/opshared.c
- ldap/servers/slapd/pagedresults.c
- ldap/servers/slapd/passwd_extop.c
- ldap/servers/slapd/pblock.c
- ldap/servers/slapd/pblock_v3.h
- ldap/servers/slapd/plugin.c
- ldap/servers/slapd/plugin_internal_op.c
- ldap/servers/slapd/proto-slap.h
- ldap/servers/slapd/psearch.c
- ldap/servers/slapd/pw.c
- ldap/servers/slapd/pw.h
- ldap/servers/slapd/pw_mgmt.c
- ldap/servers/slapd/pw_retry.c
- ldap/servers/slapd/result.c
- ldap/servers/slapd/sasl_io.c
- ldap/servers/slapd/saslbind.c
- ldap/servers/slapd/schema.c
- ldap/servers/slapd/search.c
- ldap/servers/slapd/slap.h
- ldap/servers/slapd/slapi-memberof.c
- ldap/servers/slapd/slapi-plugin.h
- ldap/servers/slapd/slapi-private.h
- ldap/servers/slapd/ssl.c
- ldap/servers/slapd/str2filter.c
- ldap/servers/slapd/task.c
- ldap/servers/slapd/test-plugins/sampletask.c
- ldap/servers/slapd/thread_data.c
- + ldap/servers/slapd/threadpool_stats.c
- + ldap/servers/slapd/threadpool_stats.h
- ldap/servers/slapd/time.c
- ldap/servers/slapd/tools/dbscan.c
- ldap/servers/slapd/tools/ldclt/ldapfct.c
- ldap/servers/slapd/upgrade.c
- ldap/servers/slapd/util.c
- ldap/servers/slapd/vattr.c
- ldap/servers/snmp/main.c
- m4/systemd.m4
- + profiling/bpftrace/probe_do_search_detail.bt
- + profiling/bpftrace/probe_log_access_detail.bt
- + profiling/bpftrace/probe_op_shared_search.bt
- + profiling/bpftrace/probe_work_queue.bt
- profiling/stap/probe_do_search_detail.stp
- profiling/stap/probe_log_access_detail.stp
- profiling/stap/probe_op_shared_search.stp
- + profiling/stap/probe_work_queue.stp
- rpm.mk
- rpm/389-ds-base.spec.in
- rpm/bundle-libdb.spec → rpm/bundle-libdb.spec.in
- rpm/bundle-rust-npm.py
- + rpm/jemalloc-5.3.0_throw_bad_alloc.patch
- src/Cargo.lock
- − src/cockpit/389-console/.eslintignore
- − src/cockpit/389-console/.eslintrc.json
- src/cockpit/389-console/.stylelintrc.json
- + src/cockpit/389-console/AGENTS.md
- + src/cockpit/389-console/eslint.config.js
- src/cockpit/389-console/package-lock.json
- src/cockpit/389-console/package.json
- src/cockpit/389-console/pkg/lib/hooks.js
- src/cockpit/389-console/pkg/lib/patternfly/patternfly-5-cockpit.scss
- src/cockpit/389-console/po/ja.po
- src/cockpit/389-console/src/LDAPEditor.jsx
- src/cockpit/389-console/src/css/ds.css
- src/cockpit/389-console/src/database.jsx
- src/cockpit/389-console/src/ds.jsx
- src/cockpit/389-console/src/dsBasicComponents.jsx
- src/cockpit/389-console/src/dsModals.jsx
- src/cockpit/389-console/src/lib/database/attrEncryption.jsx
- src/cockpit/389-console/src/lib/database/backups.jsx
- src/cockpit/389-console/src/lib/database/chaining.jsx
- src/cockpit/389-console/src/lib/database/databaseConfig.jsx
- src/cockpit/389-console/src/lib/database/databaseModal.jsx
- src/cockpit/389-console/src/lib/database/databaseTables.jsx
- src/cockpit/389-console/src/lib/database/globalPwp.jsx
- src/cockpit/389-console/src/lib/database/indexes.jsx
- src/cockpit/389-console/src/lib/database/localPwp.jsx
- + src/cockpit/389-console/src/lib/database/pwpFixupTasks.tsx
- + src/cockpit/389-console/src/lib/database/pwpValidation.jsx
- src/cockpit/389-console/src/lib/database/referrals.jsx
- src/cockpit/389-console/src/lib/database/suffix.jsx
- src/cockpit/389-console/src/lib/database/suffixConfig.jsx
- src/cockpit/389-console/src/lib/database/vlvIndexes.jsx
- + src/cockpit/389-console/src/lib/dsNumberInput.jsx
- + src/cockpit/389-console/src/lib/ldap_editor/effectivePwpModal.jsx
- src/cockpit/389-console/src/lib/ldap_editor/lib/constants.jsx
- src/cockpit/389-console/src/lib/ldap_editor/lib/utils.jsx
- src/cockpit/389-console/src/lib/ldap_editor/search.jsx
- src/cockpit/389-console/src/lib/ldap_editor/treeView.jsx
- src/cockpit/389-console/src/lib/ldap_editor/wizards/cos.jsx
- src/cockpit/389-console/src/lib/ldap_editor/wizards/newEntry.jsx
- src/cockpit/389-console/src/lib/ldap_editor/wizards/operations/aciNew.jsx
- src/cockpit/389-console/src/lib/ldap_editor/wizards/operations/addCosDefinition.jsx
- src/cockpit/389-console/src/lib/ldap_editor/wizards/operations/addGroup.jsx
- src/cockpit/389-console/src/lib/ldap_editor/wizards/operations/addLdapEntry.jsx
- src/cockpit/389-console/src/lib/ldap_editor/wizards/operations/addRole.jsx
- src/cockpit/389-console/src/lib/ldap_editor/wizards/operations/addUser.jsx
- src/cockpit/389-console/src/lib/ldap_editor/wizards/operations/editGroup.jsx
- src/cockpit/389-console/src/lib/ldap_editor/wizards/operations/genericUpdate.jsx
- src/cockpit/389-console/src/lib/ldap_editor/wizards/operations/renameEntry.jsx
- src/cockpit/389-console/src/lib/monitor/accesslog.jsx
- src/cockpit/389-console/src/lib/monitor/auditfaillog.jsx
- src/cockpit/389-console/src/lib/monitor/auditlog.jsx
- src/cockpit/389-console/src/lib/monitor/dbMonitor.jsx
- src/cockpit/389-console/src/lib/monitor/errorlog.jsx
- src/cockpit/389-console/src/lib/monitor/monitorModals.jsx
- src/cockpit/389-console/src/lib/monitor/monitorTables.jsx
- src/cockpit/389-console/src/lib/monitor/replLogAnalysis.jsx
- src/cockpit/389-console/src/lib/monitor/replMonAgmts.jsx
- src/cockpit/389-console/src/lib/monitor/replMonConflict.jsx
- src/cockpit/389-console/src/lib/monitor/replMonWinsync.jsx
- src/cockpit/389-console/src/lib/monitor/replMonitor.jsx
- src/cockpit/389-console/src/lib/monitor/securitylog.jsx
- src/cockpit/389-console/src/lib/monitor/serverMonitor.jsx
- src/cockpit/389-console/src/lib/monitor/suffixMonitor.jsx
- src/cockpit/389-console/src/lib/notifications.jsx
- src/cockpit/389-console/src/lib/plugins/accountPolicy.jsx
- src/cockpit/389-console/src/lib/plugins/attributeUniqueness.jsx
- src/cockpit/389-console/src/lib/plugins/autoMembership.jsx
- src/cockpit/389-console/src/lib/plugins/dna.jsx
- src/cockpit/389-console/src/lib/plugins/linkedAttributes.jsx
- src/cockpit/389-console/src/lib/plugins/managedEntries.jsx
- src/cockpit/389-console/src/lib/plugins/memberOf.jsx
- src/cockpit/389-console/src/lib/plugins/pamPassThru.jsx
- src/cockpit/389-console/src/lib/plugins/passthroughAuthentication.jsx
- src/cockpit/389-console/src/lib/plugins/pluginBasicConfig.jsx
- src/cockpit/389-console/src/lib/plugins/referentialIntegrity.jsx
- src/cockpit/389-console/src/lib/plugins/retroChangelog.jsx
- src/cockpit/389-console/src/lib/plugins/rootDNAccessControl.jsx
- src/cockpit/389-console/src/lib/plugins/usn.jsx
- src/cockpit/389-console/src/lib/plugins/winsync.jsx
- src/cockpit/389-console/src/lib/replication/replAgmts.jsx
- src/cockpit/389-console/src/lib/replication/replChangelog.jsx
- src/cockpit/389-console/src/lib/replication/replConfig.jsx
- src/cockpit/389-console/src/lib/replication/replModals.jsx
- src/cockpit/389-console/src/lib/replication/replSuffix.jsx
- src/cockpit/389-console/src/lib/replication/replTasks.jsx
- src/cockpit/389-console/src/lib/replication/winsyncAgmts.jsx
- src/cockpit/389-console/src/lib/security/certificateManagement.jsx
- src/cockpit/389-console/src/lib/security/ciphers.jsx
- + src/cockpit/389-console/src/lib/security/encryptionModules.jsx
- src/cockpit/389-console/src/lib/security/securityModals.jsx
- src/cockpit/389-console/src/lib/security/securityTables.jsx
- src/cockpit/389-console/src/lib/server/accessLog.jsx
- src/cockpit/389-console/src/lib/server/auditLog.jsx
- src/cockpit/389-console/src/lib/server/auditfailLog.jsx
- src/cockpit/389-console/src/lib/server/errorLog.jsx
- src/cockpit/389-console/src/lib/server/ldapi.jsx
- src/cockpit/389-console/src/lib/server/sasl.jsx
- src/cockpit/389-console/src/lib/server/securityLog.jsx
- src/cockpit/389-console/src/lib/server/serverModals.jsx
- src/cockpit/389-console/src/lib/server/settings.jsx
- src/cockpit/389-console/src/lib/server/tuning.jsx
- src/cockpit/389-console/src/lib/tools.jsx
- src/cockpit/389-console/src/monitor.jsx
- src/cockpit/389-console/src/plugins.jsx
- src/cockpit/389-console/src/replication.jsx
- src/cockpit/389-console/src/schema.jsx
- src/cockpit/389-console/src/security.jsx
- src/cockpit/389-console/src/server.jsx
- + src/cockpit/389-console/tsconfig.json
- + src/lib389/AGENTS.md
- src/lib389/cli/dscontainer
- src/lib389/cli/dsctl
- src/lib389/cli/dsidm
- src/lib389/doc/source/paths.rst
- src/lib389/doc/source/replica.rst
- src/lib389/lib389/__init__.py
- src/lib389/lib389/_constants.py
- src/lib389/lib389/_controls.py
- src/lib389/lib389/_mapped_object.py
- src/lib389/lib389/_mapped_object_lint.py
- src/lib389/lib389/backend.py
- + src/lib389/lib389/cert_manager.py
- src/lib389/lib389/cli_base/__init__.py
- src/lib389/lib389/cli_conf/backend.py
- src/lib389/lib389/cli_conf/backup.py
- src/lib389/lib389/cli_conf/monitor.py
- src/lib389/lib389/cli_conf/plugins/accountpolicy.py
- src/lib389/lib389/cli_conf/plugins/attruniq.py
- src/lib389/lib389/cli_conf/plugins/contentsync.py
- src/lib389/lib389/cli_conf/plugins/pwstorage.py
- src/lib389/lib389/cli_conf/plugins/retrochangelog.py
- src/lib389/lib389/cli_conf/pwpolicy.py
- src/lib389/lib389/cli_conf/replication.py
- src/lib389/lib389/cli_conf/security.py
- src/lib389/lib389/cli_ctl/cockpit.py
- src/lib389/lib389/cli_ctl/dbtasks.py
- src/lib389/lib389/cli_ctl/health.py
- + src/lib389/lib389/cli_ctl/threadpool.py
- src/lib389/lib389/cli_ctl/tls.py
- src/lib389/lib389/cli_idm/user.py
- src/lib389/lib389/config.py
- src/lib389/lib389/dirsrv_log.py
- src/lib389/lib389/dseldif.py
- + src/lib389/lib389/dseutils.py
- + src/lib389/lib389/dyncerts.py
- src/lib389/lib389/idm/services.py
- src/lib389/lib389/idm/user.py
- src/lib389/lib389/lint.py
- src/lib389/lib389/monitor.py
- src/lib389/lib389/nss_ssl.py
- src/lib389/lib389/password_plugins.py
- src/lib389/lib389/paths.py
- src/lib389/lib389/plugins.py
- src/lib389/lib389/properties.py
- src/lib389/lib389/pwpolicy.py
- src/lib389/lib389/replica.py
- src/lib389/lib389/repltools.py
- src/lib389/lib389/tasks.py
- src/lib389/lib389/tests/backend_test.py
- src/lib389/lib389/tests/cli/__init__.py
- src/lib389/lib389/tests/cli/conf_backend_test.py
- src/lib389/lib389/tests/cli/conf_backup_test.py
- src/lib389/lib389/tests/cli/conf_chaining_test.py
- src/lib389/lib389/tests/cli/conf_conflicts_test.py
- src/lib389/lib389/tests/cli/conf_pwpolicy_test.py
- src/lib389/lib389/tests/configurations/config_001003006_test.py
- src/lib389/lib389/tests/configurations/config_001004000_test.py
- src/lib389/lib389/tests/dirsrv_log_test.py
- src/lib389/lib389/tests/dseldif_test.py
- src/lib389/lib389/tests/healthcheck_test.py
- src/lib389/lib389/tests/idm/account_test.py
- src/lib389/lib389/tests/idm/services_test.py
- src/lib389/lib389/tests/idm/user_and_group_test.py
- src/lib389/lib389/tests/index_test.py
- src/lib389/lib389/tests/mapped_object_test.py
- src/lib389/lib389/tests/nss_ssl_test.py
- src/lib389/lib389/tests/plugins/memberof_test.py
- src/lib389/lib389/tests/plugins/referint_test.py
- src/lib389/lib389/tests/plugins/usn_test.py
- src/lib389/lib389/tests/referral_test.py
- src/lib389/lib389/tests/replica_test.py
- src/lib389/lib389/tests/schema_test.py
- src/lib389/lib389/tests/tls_external_test.py
- src/lib389/lib389/tunables.py
- src/lib389/lib389/utils.py
- src/lib389/pyproject.toml
- src/lib389/requirements.txt
- src/librnsslapd/Cargo.toml
- − src/librslapd/Cargo.lock
- src/librslapd/Cargo.toml
- src/plugins/entryuuid/Cargo.toml
- src/plugins/entryuuid_syntax/Cargo.toml
- src/plugins/entryuuid_syntax/src/lib.rs
- src/plugins/pwdchan/Cargo.toml
- src/plugins/pwdchan/src/lib.rs
- src/slapd/Cargo.toml
- src/slapi_r_plugin/Cargo.toml
- src/slapi_r_plugin/src/value.rs
- src/svrcore/src/systemd-ask-pass.c
- + test/libslapd/csngen/clock_error.c
- + test/libslapd/hibp/parse.c
- test/libslapd/test.c
- test/plugins/pwdstorage/pbkdf2.c
- test/plugins/test.c
- test/test_slapd.h
- wrappers/systemd-snmp.service.in
- wrappers/systemd.template.service.in
The diff was not included because it is too large.
View it on GitLab: https://salsa.debian.org/freeipa-team/389-ds-base/-/compare/09a3408bd3512ea7da0c66231a1dd2b15cc93fbe...59009c84a7408948974688a78367505615cbf3d8
--
View it on GitLab: https://salsa.debian.org/freeipa-team/389-ds-base/-/compare/09a3408bd3512ea7da0c66231a1dd2b15cc93fbe...59009c84a7408948974688a78367505615cbf3d8
You're receiving this email because of your account on salsa.debian.org. Manage all notifications: https://salsa.debian.org/-/profile/notifications | Help: https://salsa.debian.org/help
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-freeipa-devel/attachments/20260909/1462c436/attachment-0001.htm>
More information about the Pkg-freeipa-devel
mailing list