Compare commits

...
Sign in to create a new pull request.

163 commits

Author SHA1 Message Date
Fedora Release Engineering
cd5135cf3a Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild 2026-01-16 02:25:37 +00:00
Viktor Ashirov
26f66fc9f3 Fix broken FreeIPA upgrade and replication issues
- Resolves: rhbz#2424132 Upgrade from freeipa-4.12.5-3 and 390-ds-base-3.1.3-10 to latest rawhide fails
2026-01-12 12:18:28 +01:00
Viktor Ashirov
e3abfab8ae Correct License: string for robdb-libs 2026-01-09 19:43:17 +01:00
Viktor Ashirov
6a9fe72ef8 Fix broken FreeIPA upgrade and replication issues
- Resolves: rhbz#2424132 Upgrade from freeipa-4.12.5-3 and 390-ds-base-3.1.3-10 to latest rawhide fails
- Fix jemalloc compilation issue with GCC 15
- Issue 7096 - During replication online total init the function idl_id_is_in_idlist is not scaling with large database
- Issue 7118 - Revise paged result search locking
- Issue 7108 - Fix shutdown crash in entry cache destruction

Use correct tarball from upstream.
2026-01-09 18:48:11 +01:00
Yaakov Selkowitz
0e19d9ccb9 Restore libdb in sources 2025-12-24 00:59:03 -05:00
Mark Reynolds
c134ea11db Issue 7147 - entrycache_eviction_test is failing (#7148)
Issue 1793 - RFE - Dynamic lists - UI and CLI updates
Issue 7119 - Fix DNA shared config replication test (#7143)
Issue 7081 - Repl Log Analysis - Implement data sampling with performance and timezone fixes (#7086)
Issue 1793 - RFE - Implement dynamic lists
Issue 7112 - dsctrl dblib bdb2mdb core dumps and won't allow conversion (#7144)
Issue 7053 - Remove memberof_del_dn_from_groups from MemberOf plugin (#7064)
Issue 7138 - test_cleanallruv_repl does not restart supplier3 (#7139)
Issue 6753 - Port ticket47921 test to indirect_cos_test using DSLdapObject (#7134)
Issue 7128 - memory corruption in alias entry plugin (#7131)
Issue 7091 - Duplicate local password policy entries listed (#7092)
Issue 7124 - BDB cursor race condition with transaction isolation (#7125)
Issue 6951 - Dynamic Certificate refresh phase 1 - Search support (#7117)
Issue 7132 - Keep alive entry updated too soon after an offline import (#7133)
Issue 7135 - Not enough space for tests on GH runner (#7136)
Issue 7121 - LeakSanitizer: various leaks during replication (#7122)
Issue 7115 - LeakSanitizer: leak in `slapd_bind_local_user()` (#7116)
Issue 7109 - AddressSanitizer: SEGV ldap/servers/slapd/csnset.c:302 in csnset_dup (#7114)
Issue 7119 - Harden DNA plugin locking for shared server list operations (#7120)
Issue 7084 - UI - schema - sorting attributes breaks expanded row
Issue 6753 - Port ticket47910 test to logconv_test using DSLdapObject (#7098)
Issue 6753 - Port ticket47920 test to ldap_controls_test using DSLdapObject (#7103)
Issue 7007 - Improve paged result search locking
Issue 7041 - Add WebUI test for group member management (#7111)
Issue 3555 - UI - Fix audit issue with npm - glob (#7107)
Issue 7089 - Fix dsconf certificate list (#7090)
Issue 7076, 6992, 6784, 6214 - Fix CI test failures (#7077)
Bump js-yaml from 4.1.0 to 4.1.1 in /src/cockpit/389-console (#7097)
Issue 7069 - Fix error reporting in HAProxy trusted IP parsing (#7094)
Issue 7049 - RetroCL plugin generates invalid LDIF
Issue 7055 - Online initialization of consumers fails with error -23 (#7075)
Issue 6753 - Remove ticket 47900 test (#7087)
Issue 6753 - Port ticket 49008 test (#7080)
Issue 7042 - Enable global_backend_lock when memberofallbackend is enabled (#7043)
Issue 7078 - audit json logging does not encode binary values
Issue 7069 - Add Subnet/CIDR Support for HAProxy Trusted IPs (#7070)
Issue 7056 - DSBLE0007 doesn't generate remediation steps for missing indexes
Issue 6660 - CLI, UI - Improve replication log analyzer usability (#7062)
Issue 7065 - A search filter containing a non normalized DN assertion does not return matching entries (#7068)
Issue 7071 - search filter (&(cn:dn:=groups)) no longer returns results
Issue 7073 - Add NDN cache size configuration and enforcement tests (#7074)
Issue 6753 - Removing ticket 47871 test and porting to DSLdapObject (#7045)
Issue 7041 - CLI/UI - memberOf - no way to add/remove specific group filters
Issue 6753 - Port ticket 48228 test (#7067)
Issue 7029 - Add test case to measure ndn cache performance impact (#7030)
Issue 7061 - CLI/UI - Improve error messages for dsconf localpwp list
Issue 7059 - UI - unable to upload pem file
Issue 7032 - The new ipahealthcheck test ipahealthcheck.ds.backends.BackendsCheck raises CRITICAL issue (#7036)
Issue 7047 - MemberOf plugin logs null attribute name on fixup task completion (#7048)
Issue 7044 - RFE - index sudoHost by default (#7046)
Issue 6846 - Attribute uniqueness is not enforced with modrdn (#7026)
Issue 6784 - Support of Entry cache pinned entries (#6785)
Issue 6979 - Improve the way to detect asynchronous operations in the access logs (#6980)
Issue 6753 - Port ticket 47931 test (#7038)
Issue 7035 - RFE - memberOf - adding scoping for specific groups
CLI/UI - Add option to delete all replication conflict entries
Issue 7033 - lib389 -  basic plugin status not in JSON
Issue 7023 - UI - if first instance that is loaded is stopped it breaks parts of the UI
Issue 6753 - Removing ticket 47714 test and porting to DSLdapObject (#6946)
Issue 7027 - 389-ds-base OpenScanHub Leaks Detected (#7028)
Issue 6753 - Removing ticket 47676 test and porting to DSLdapObject (#6938)
Issue 6966 - On large DB, unlimited IDL scan limit reduce the SRCH performance (#6967)
Issue 6660 - UI - Improve replication log analysis charts and usability (#6968)
Issue 6753 - Removing ticket 47653MMR test and porting to DSLdapObject (#6926)
Issue 7021 - Units for changing MDB max size are not consistent across different tools (#7022)
Issue 6753 - Removing ticket 49463 test and porting to DSLdapObject (#6899)
Issue 6954 - do not delete referrals on chain_on_update backend
Issue 6982 - UI - MemberOf shared config does not validate DN properly (#6983)
Issue 6740 - Fix FIPS mode test failures in syncrepl, mapping tree, and resource limits (#6993)
Issue 7018 - BUG - prevent stack depth being hit (#7019)
Issue 7014 - memberOf - ignored deferred updates with LMDB
Issue 7002 - restore is failing. (#7003)
Issue 6758 - Fix WebUI monitoring test failure due to FormSelect component deprecation (#7004)
Issue 6753 - Removing ticket 47869 test and porting to DSLdapObject (#7001)
Issue 6753 - Port ticket 49073 test (#7005)
Issue 7016 - fix NULL deref in send_referrals_from_entry() (#7017)
Issue 6753 - Port ticket 47815 test (#7000)
Issue 7010 - Fix certdir underflow in slapd_nss_init() (#7011)
Issue 7012 - improve dscrl dbverify result when backend does not exists (#7013)
Issue 6753 - Removing ticket 477828 test and porting to DSLdapObject (#6989)
Issue 6753 - Removing ticket 47721 test and porting to DSLdapObject (#6973)
Issue 6992 - Improve handling of mismatched ldif import (#6999)
Issue 6997 - Logic error in get_bdb_impl_status prevents bdb2mdb execution (#6998)
Issue 6810 - Deprecate PAM PTA plugin configuration attributes in base entry - fix memleak (#6988)
Issue 6971 - bundle-rust-npm.py: TypeError: argument of type 'NoneType' is not iterable (#6972)
Fix overflow in certmap filter/DN buffers (#6995)
Issue 6753 - Port ticket 49386 test (#6987)
Issue 6753 - Removing ticket 47787 test and porting to DSLdapObject (#6976)
Issue 6753 - Port ticket 49072 test (#6984)
Issue 6990 - UI - Replace deprecated Select components with new TypeaheadSelect (#6996)
Issue 6990 - UI - Fix typeahead Select fields losing values on Enter keypress (#6991)
Issue 6887 - Enhance logconv.py to add support for JSON access logs (#6889)
Issue 6985 - Some logconv CI tests fail with BDB (#6986)
Issue 6891 - JSON logging - add wrapper function that checks for NULL
Issue 4835 - dsconf display an incomplete help with changelog setting (#6769)
Issue 6753 - Port ticket 47963 & 49184 tests (#6970)
Issue 6753 - Port ticket 47829 & 47833 tests
Issue 6977 - UI - Show error message when trying to use unavailable ports (#6978)
Issue 6956 - More UI fixes
Issue 6626 - Fix version
Issue 6900 - Rename test files for proper pytest discovery (#6909)
Issue 6947 - Revise time skew check in healthcheck tool and add option to exclude checks
Issue 6805 - RFE - Multiple backend entry cache tuning
Issue 6753 - Port and fix ticket 47823 tests
Issue 6843 - Add CI tests for logconv.py (#6856)
Issue 6933 - When deferred memberof update is enabled after the server crashed it should not launch memberof fixup task by default (#6935)
UI - update Radio handlers and LDAP entries last modified time
Issue 6810 - Deprecate PAM PTA plugin configuration attributes in base entry (#6832)
Issue 6660 - UI - Fix minor typo (#6955)
Issue 6753 - Port ticket 47808 test
Issue 6910 - Fix latest coverity issues
Issue 6753 - Removing ticket 50232 test and porting to DSLdapObject (#6861)
Issue 6919 - numSubordinates/tombstoneNumSubordinates are inconsisten… (#6920)
Issue 6430 - Fix build with bundled libdb
Issue 6342 - buffer owerflow in the function parseVariant (#6927)
Issue 6940 - dsconf monitor server fails with ldapi:// due to absent server ID (#6941)
Issue 6936 - Make user/subtree policy creation idempotent (#6937)
Migrate from PR_Poll to epoll and timerfd. (#6924)
Issue 6928 - The parentId attribute is indexed with improper matching rule
Issue 6753 - Removing ticket 49540 test and porting to DSLdapObject (#6877)
Issue 6904 - Fix config_test.py::test_lmdb_config
Issue 5120 - Fix compilation error
Issue 6929 - Compilation failure with rust-1.89 on Fedora ELN
Issue 6922 - AddressSanitizer: leaks found by acl test suite
Issue 6519 - Add basic dsidm account tests
Issue 6753 - Port ticket test 47573
Issue 6875 - Fix dsidm tests
Issues 6913, 6886, 6250 - Adjust xfail marks (#6914)
Issue 6768 - ns-slapd crashes when a referral is added (#6780)
Issue 6468 - CLI - Fix default error log level
Issue 6181 - RFE - Allow system to manage uid/gid at startup
Issue 6901 - Update changelog trimming logging - fix tests
Issue 6778 - Memory leak in roles_cache_create_object_from_entry part 2
Issue 6897 - Fix disk monitoring test failures and improve test maintainability (#6898)
Issue 6884 - Mask password hashes in audit logs (#6885)
Issue 6594 - Add test for numSubordinates replication consistency with tombstones (#6862)
Issue 6250 - Add test for entryUSN overflow on failed add operations (#6821)
Issue 6895 - Crash if repl keep alive entry can not be created
Issue 6663 - Fix NULL subsystem crash in JSON error logging (#6883)
Issue 6430 - implement read-only bdb (#6431)
Issue 6901 - Update changelog trimming logging
Issue 6880 - Fix ds_logs test suite failure
Issue 6352 - Fix DeprecationWarning
Issue 6800 - Rerun the check in verbose mode on failure
Issue 6893 - Log user that is updated during password modify extended operation
Issue 6772 - dsconf - Replicas with the "consumer" role allow for viewing and modification of their changelog. (#6773)
Issue 6829 - Update parametrized docstring for tests
Issue 6888 - Missing access JSON logging for TLS/Client auth
Issue 6878 - Prevent repeated disconnect logs during shutdown (#6879)
Issue 6872 - compressed log rotation creates files with world readable permission
Issue 6859 - str2filter is not fully applying matching rules
Issue 5733 - Remove outdated Dockerfiles
Issue 6800 - Check for minimal supported Python version
Issue 6868 - UI - schema attribute table expansion break after moving to a new page
Issue 6865 - AddressSanitizer: leak in agmt_update_init_status
Issue 6848 - AddressSanitizer: leak in do_search
Issue 6850 - AddressSanitizer: memory leak in mdb_init
Issue 6854 - Refactor for improved data management (#6855)
Issue 6756 - CLI, UI - Properly handle disabled NDN cache (#6757)
Issue 6857 - uiduniq: allow specifying match rules in the filter
Issue 6852 - Move ds* CLI tools back to /sbin
Issue 6753 - Port ticket tests 48294 & 48295
Issue 6753 - Add 'add_exclude_subtree' and 'remove_exclude_subtree' methods to Attribute uniqueness plugin
Issue 6841 - Cancel Actions when PR is updated
Issue 6838 - lib389/replica.py is using nonexistent datetime.UTC in Python 3.9
Issue 6822 - Backend creation cleanup and Database UI tab error handling (#6823)
Issue 6782 - Improve paged result locking
Issue 6829 - Update parametrized docstring for tests
2025-12-16 15:24:48 -05:00
Python Maint
0fbd2343c9 Rebuilt for Python 3.14.0rc3 bytecode 2025-09-19 12:06:10 +02:00
Yaakov Selkowitz
8a64e863ed Fix build --with-bundle-libdb, enable for ELN
While the goal is to ship no BDB backend in RHEL 11, this currently cannot
be built without one.  As such, building with a bundled libdb and then
dropping the -bdb subpackage from ELN CRB gets us as close as possible to
that state for now.

https://github.com/389ds/389-ds-base/issues/6944
https://github.com/389ds/389-ds-base/pull/6945
2025-08-20 17:44:50 -04:00
Python Maint
a4238f09da Rebuilt for Python 3.14.0rc2 bytecode 2025-08-15 15:24:07 +02:00
Viktor Ashirov
f4f2109f94 Rebuild for https://fedoraproject.org/wiki/Changes/389_Directory_Server_3.2.0 2025-08-11 13:38:41 +02:00
František Zatloukal
11a2e08521 Rebuilt for icu 77.1 2025-08-06 09:52:20 +02:00
Fedora Release Engineering
ad5313fd73 Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-23 15:39:11 +00:00
Yaakov Selkowitz
c01eeaf809 Fix checksum of libdb sources
[skip changelog]
2025-07-09 12:48:07 -04:00
Viktor Ashirov
53a2fcc07b Remove old patches
[skip changelog]
2025-07-08 09:46:38 +02:00
Viktor Ashirov
a800aa34d1 Update sources file 2025-06-30 11:57:30 +02:00
Viktor Ashirov
5ed75f148c Update to 3.1.3 2025-06-30 11:49:06 +02:00
Viktor Ashirov
9c09966b8b Resolves: Issue 6776 - Enabling audit log makes slapd coredump 2025-06-16 14:20:58 +02:00
Python Maint
7ab459a547 Rebuilt for Python 3.14 2025-06-03 13:57:04 +02:00
Miro Hrončok
250f86dedd python3-lib389: Remove manually specified runtime Requires
The requires are automatically generated
and their manual repetition is forbidden by packaging guidelines.

> Automatically determined dependencies MUST NOT be duplicated by manual dependencies.

https://docs.fedoraproject.org/en-US/packaging-guidelines/#_package_dependencies

Even further:

> Packages SHOULD NOT have an explicit runtime dependency on python3.

https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/#_dependencies

I kept the Requires for python3-libselinux as it is not generated.
I have not checked whether or not this dependency is actually required.

---

My main motivation is this: https://github.com/389ds/389-ds-base/pull/6719

Once released upstream,
the runtime dependency on python3-setuptools will be redundant.
By deleting it now,
I reduce the risk of having it in the spec even after the upstream change lands.
2025-04-02 12:18:27 +02:00
Yaakov Selkowitz
07e8a882bc Fix build of bundled libdb with GCC 15
GCC 15 defaults to C23.  libdb is obsolete and the last release was over a
decade ago, and therefore cannot be expected to compile to the latest
standards.
2025-03-05 08:14:45 -05:00
Viktor Ashirov
1e3c90db19 Update to 3.1.2-5
- Resolves: Issue 6489 - After log rotation refresh the FD pointer
- Resolves: Issue 6554 - During import of entries without nsUniqueId, a supplier generates duplicate nsUniqueId (LMDB only)
- Resolves: Issue 6555 - Potential crash when deleting a replicated backend
2025-02-14 14:43:03 +01:00
Zbigniew Jędrzejewski-Szmek
6343e0d443 Drop call to %sysusers_create_compat
After https://fedoraproject.org/wiki/Changes/RPMSuportForSystemdSysusers,
rpm will handle this automatically.
2025-02-08 16:34:03 +01:00
Björn Esser
78d0143425
Add explicit BR: libxcrypt-devel
Signed-off-by: Björn Esser <besser82@fedoraproject.org>
2025-02-01 19:52:34 +01:00
Viktor Ashirov
ca8f74ff67 Replace python3-magic with python3-file-magic 2025-01-25 17:22:27 +01:00
Viktor Ashirov
c0a85dde2d Update to 3.1.2 2025-01-24 15:00:02 +01:00
Fedora Release Engineering
16dbfc769e Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-20 07:16:14 +00:00
Fedora Release Engineering
409e247670 Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-16 08:19:55 +00:00
Pete Walter
cc3b929de3 Rebuild for ICU 76 2024-12-08 22:02:34 +00:00
Viktor Ashirov
fc8a2a3a6f Fix source URL 2024-10-30 11:46:51 +01:00
Miroslav Suchý
0082bb49b0 Add exception to GPL license in license tag
See https://gitlab.com/fedora/legal/fedora-license-data/-/issues/517
2024-10-29 22:25:15 +00:00
Viktor Ashirov
6ee4494a7a Resolves: VLV errors in Fedora 40 with RSNv3 and pruning enabled (rhbz#2317851) 2024-10-15 13:28:42 +02:00
Viktor Ashirov
9d411e6f98 Replace lmdb with lmdb-libs in Requires 2024-07-30 13:51:33 +02:00
Viktor Ashirov
315706ba43 Update to 3.1.1
...
- Resolves: CVE-2024-1062 (rhbz#2261884)
- Resolves: CVE-2024-2199 (rhbz#2283632)
- Resolves: CVE-2024-3657 (rhbz#2283631)
- Resolves: CVE-2024-5953 (rhbz#2292109)
2024-07-30 11:58:16 +02:00
Fedora Release Engineering
1cf86bb6f0 Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-17 14:39:40 +00:00
Yaakov Selkowitz
0dd17702a8 Use bundled libdb on RHEL and ELN
Based on c10s:
8dfbbc21d0
2024-06-25 15:56:38 -04:00
Yaakov Selkowitz
46083690af Fix bundled libdb build with RPM 4.20
https://github.com/389ds/389-ds-base/pull/6235
2024-06-25 01:05:46 -04:00
Viktor Ashirov
291e311dd3 Drop pytest dependency 2024-06-17 09:58:18 +02:00
Viktor Ashirov
2303613243 Drop obsolete perl MODULE_COMPAT requirement 2024-06-13 16:51:14 +02:00
Miro Hrončok
60a22a6d73 Stop Providing libjemalloc.so.2()(64bit)
This was removed in eeb80bdccc
and it made 389-ds-base-libs and 389-ds-base Provides libjemalloc.so.2()(64bit).

Package Requiring it would install 389-ds-base-libs instead of jemalloc,
failing to execute with:

    $ nsupdate
    nsupdate: error while loading shared libraries: libjemalloc.so.2:
    cannot open shared object file: No such file or directory
2024-06-10 07:42:51 +02:00
Python Maint
27db1de21e Rebuilt for Python 3.13 2024-06-07 22:44:48 +02:00
Viktor Ashirov
ebbd5286c6 Exclude i686 architecture
[skip changelog]
2024-06-01 19:14:48 +02:00
Viktor Ashirov
eeb80bdccc Sync spec file with the upstream spec file 2024-05-31 22:05:00 +02:00
Viktor Ashirov
b308bcac8d Convert to %autorelease and %autochangelog
[skip changelog]
2024-05-31 21:47:30 +02:00
James Chapman
e6aa402601 Bump version to 3.1.0
Issue 6142 - Fix CI tests (#6161)
Issue 6157 - Cockipt crashes when getting replication status if topology contains an old 389ds version (#6158)
Issue 5105 - lmdb - Cannot create entries with long rdn - fix covscan (#6131)
Issue 6086 - Ambiguous warning about SELinux in dscreate for non-root user
Issue 6094 - Add coverity scan workflow
Issue 5962 - Rearrange includes for 32-bit support logic
Issue 6046 - Make dscreate to work during kickstart installations
Issue 6073 - Improve error log when running out of memory (#6084)
Issue 6071 - Instance creation/removal is slow
Issue 6010 - 389 ds ignores nsslapd-maxdescriptors (#6027)
Issue 6075 - Ignore build artifacts (#6076)
Issue 6068 - Add dscontainer stop function
2024-05-15 12:25:05 +01:00
Viktor Ashirov
51c0d48236 Drop unused patch 2024-04-24 14:25:10 +02:00
Viktor Ashirov
d4e20edc57 Enable CI gating 2024-04-24 14:23:54 +02:00
James Chapman
a78efd2e11 Bump version to 3.0.2
Issue 6082 - Remove explicit dependencies toward libdb - revert default (#6145)
Issue 6142 - [RFE] Add LMDB configuration related checks into Healthcheck tool (#6143)
Issue 6141 - freeipa test_topology_TestCASpecificRUVs is failing (#6144)
Issue 6136 - failure in freeipa tests (#6137)
Issue 6119 - Synchronise accept_thread with slapd_daemon (#6120)
Issue 6105 - lmdb - Cannot create entries with long rdn (#6130)
Issue 6082 - Remove explicit dependencies toward libdb (#6083)
Issue i6057 - Fix3 - Fix covscan issues (#6127)
Issue 6057 - vlv search may result wrong result with lmdb - Fix 2 (#6121)
Issue 6057 - vlv search may result wrong result with lmdb (#6091)
Issue 6092 - passwordHistory is not updated with a pre-hashed password (#6093)
Issue 6133 - Move slapi_pblock_set_flag_operation_notes() to slapi-plugin.h
Issue 6125 - dscreate interactive fails when chosing mdb backend (#6126)
Issue 6110 - Typo in Account Policy plugin message
Issue 6080 - ns-slapd crash in referint_get_config (#6081)
Issue 6117 - Fix the UTC offset print (#6118)
Issue 5305 - OpenLDAP version autodetection doesn't work
Issue 6112 - RFE - add new operation note for MFA authentications
Issue 5842 - Add log buffering to audit log
Issue 3527 - Support HAProxy and Instance on the same machine configuration (#6107)
Issue 6103 - New connection timeout error breaks errormap (#6104)
Issue 6096 - Improve connection timeout error logging (#6097)
Issue 6067 - Improve dsidm CLI No Such Entry handling (#6079)
Issue 6067 - Add hidden -v and -j options to each CLI subcommand (#6088)
Issue 6061 - Certificate lifetime displayed as NaN
2024-04-15 15:26:50 +01:00
Pete Walter
1e6b70d7c1 Rebuild for ICU 74 2024-01-31 19:11:29 +00:00
Simon Pichugin
e374e35b04 Bump version to 3.0.1
Issue 6043, 6044 - Enhance Rust and JS bundling and add SPDX licenses for both (#6045)
Issue 3555 - Remove audit-ci from dependencies (#6056)
Issue 6052 - Paged results test sets hostname to `localhost` on test collection
Issue 6051 - Drop unused pytest markers
Issue 6049 - lmdb - changelog is wrongly recreated by reindex task (#6050)
Issue 6047 - Add a check for tagged commits
Issue 6041 - dscreate ds-root - accepts relative path (#6042)
Switch default backend to lmdb and bump version to 3.0 (#6013)
Issue 6032 - Replication broken after backup restore (#6035)
Issue 6037 - Server crash at startup in vlvIndex_delete (#6038)
Issue 6034 - Change replica_id from str to int
Issue 6028 - vlv index keys inconsistencies (#6031)
Issue 5989 - RFE support of inChain Matching Rule (#5990)
Issue 6022 - lmdb inconsistency between vlv index and vlv cache names (#6026)
Issue 6015 - Fix typo remeber (#6014)
Issue 6016 - Pin upload/download artifacts action to v3
Issue 5939 - During an update, if the target entry is reverted in the entry cache, the server should not retry to lock it (#6007)
Issue 4673 - Update Rust crates
Issue 6004 - idletimeout may be ignored (#6005)
Issue 5954 - Disable Transparent Huge Pages
Issue 5997 - test_inactivty_and_expiration CI testcase is wrong (#5999)
Issue 5993 - Fix several race condition around CI tests (#5996)
Issue 5944 - Reversion of the entry cache should be limited to BETXN plugin failures (#5994)
Bump openssl from 0.10.55 to 0.10.60 in /src (#5995)
Issue 5980 - Improve instance startup failure handling (#5991)
Issue 5976 - Fix freeipa install regression with lmdb (#5977)
Issue 5984 - Crash when paged result search are abandoned - fix2 (#5987)
Issue 5984 - Crash when paged result search are abandoned (#5985)
Issue 5947 - CI test_vlv_recreation_reindex fails on LMDB (#5979)
2024-01-30 12:30:41 -08:00
Fedora Release Engineering
10d5e9ae35 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-29 10:42:17 +00:00
Fedora Release Engineering
bff8e54841 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-22 20:39:09 +00:00
Fedora Release Engineering
fd0449a448 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-19 09:04:49 +00:00
Fedora Release Engineering
fd4c2c06c1 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-18 11:59:55 +00:00
Viktor Ashirov
1f152da46b Bump version to 2.4.5
Issue 5989 - RFE support of inChain Matching Rule (#5990)
Issue 5939 - During an update, if the target entry is reverted in the entry cache, the server should not retry to lock it (#6007)
Issue 5944 - Reversion of the entry cache should be limited to BETXN plugin failures (#5994)
Issue 5954 - Disable Transparent Huge Pages
Issue 5984 - Crash when paged result search are abandoned - fix2 (#5987)
Issue 5984 - Crash when paged result search are abandoned (#5985)
2024-01-18 11:08:10 +01:00
James Chapman
66e8918336 Bump version to 2.4.4
Issue 5971 - CLI - Fix password prompt for repl status (#5972)
Issue 5973 - Fix fedora cop RawHide builds (#5974)
Revert "Issue 5761 - Worker thread dynamic management (#5796)" (#5970)
Issue 5966 - CLI - Custom schema object is removed on a failed edit (#5967)
Issue 5786 - Update permissions for Release workflow
Issue 5960 - Subpackages should have more strict interdependencies
Issue 3555 - UI - Fix audit issue with npm - babel/traverse (#5959)
Issue 4843 - Fix dscreate create-template issue (#5950)
bugfix for --passwd-file not working on latest version (#5934)
Issue 5843 - dsconf / dscreate should be able to handle lmdb parameters (#5943)
Bump postcss from 8.4.24 to 8.4.31 in /src/cockpit/389-console (#5945)
Issue 5938 - Attribute Names changed to lowercase after adding the Attributes (#5940)
issue 5924 - ASAN server build crash when looping opening/closing connections (#5926)
Issue 1925 - Add a CI test (#5936)
Issue 5732 - Localizing Cockpit's 389ds Plugin using CockpitPoPlugin (#5764)
Issue 1870 - Add a CI test (#5929)
Issue 843 - Add a warning to slapi_valueset_add_value_ext (#5925)
Issue 5761 - Worker thread dynamic management (#5796)
Issue 1802 - Improve ldclt man page (#5928)
Issue 1456 - Add a CI test that verifies there is no issue (#5927)
Issue 1317 - Add a CI test (#5923)
Issue 1081 - CI - Add more tests for overwriting x-origin issue (#5815)
Issue 1115 - Add a CI test (#5913)
Issue 5848 - Fix condition and add a CI test (#5916)
Issue 5848 - Fix condition and add a CI test (#5916)
Issue 5914 - UI - server settings page validation improvements and db index fixes
Issue 5909 - Multi listener hang with 20k connections (#5917)
Issue 5902 - Fix previous commit regression (#5919)
pass instance correctly to ds_is_older (#5903)
Issue 5909 - Multi listener hang with 20k connections (#5910)
Issue 5722 - improve testcase (#5904)
Issue 5203 - outdated version in provided metadata for lib389
Bug Description:
issue 5890 part 2 - Need a tester for testing multiple listening thread feature (#5897)
Issue i5846 - Crash when lmdb import is aborted (#5881)
Issue 5894 - lmdb import error fails with Could not store the entry (#5895)
Issue 5890 - Need a tester for testing multiple listening thread feature (#5891)
Issue 5082 - slugify: ModuleNotFoundError when running test cases
Issue 4551 - Part 2 - Fix build warning of previous PR (#5888)
Issue 5834 - AccountPolicyPlugin erroring for some users (#5866)
Issue 5872 - part 2 - fix is_dbi regression (#5887)
Issue 4758 - Add tests for WebUI
Issue 5848 - dsconf should prevent setting the replicaID for hub and consumer roles (#5849)
Issue 5883 - Remove connection mutex contention risk on autobind (#5886)
Issue 5872 - `dbscan()` in lib389 can return bytes
2024-01-18 10:32:47 +01:00
Mark Reynolds
298baaf1c0 Bump version to 2.4.3-1
Issue 5729 - Memory leak in factory_create_extension (#5814)
Issue 5870 - ns-slapd crashes at startup if a backend has no suffix (#5871)
Issue 5876 - CI Test random failure - Import (#5879)
Issue 5877 - test_basic_ldapagent breaks test_setup_ds_as_non_root* tests
Issue 5867 - lib389 should use filter for tarfile as recommended by PEP 706 (#5868)
Issue 5853 - Update Cargo.lock and fix minor warning (#5854)
Issue 5785 - CLI - arg completion is broken
Issue 5864 - Server fails to start after reboot because it's unable to access nsslapd-rundir
Issue 5856 - SyntaxWarning: invalid escape sequence '\,'
Issue 5859 - dbscan fails with AttributeError: 'list' object has no attribute 'extends'
Issue 3527 - UI - Add nsslapd-haproxy-trusted-ip to server setting (#5839)
Issue 4551 - Paged search impacts performance (#5838)
Issue 4758 - Add tests for WebUI
Issue 4169 - UI - Fix retrochangelog and schema Typeaheads (#5837)
issue 5833 - dsconf monitor backend fails on lmdb (#5835)
Issue 3555 - UI - Fix audit issue with npm - stylelint (#5836)
2023-08-03 16:21:10 -04:00
Mark Reynolds
66c7a2c53f Bump version to 2.4.3-1
Issue 5729 - Memory leak in factory_create_extension (#5814)
Issue 5870 - ns-slapd crashes at startup if a backend has no suffix (#5871)
Issue 5876 - CI Test random failure - Import (#5879)
Issue 5877 - test_basic_ldapagent breaks test_setup_ds_as_non_root* tests
Issue 5867 - lib389 should use filter for tarfile as recommended by PEP 706 (#5868)
Issue 5853 - Update Cargo.lock and fix minor warning (#5854)
Issue 5785 - CLI - arg completion is broken
Issue 5864 - Server fails to start after reboot because it's unable to access nsslapd-rundir
Issue 5856 - SyntaxWarning: invalid escape sequence '\,'
Issue 5859 - dbscan fails with AttributeError: 'list' object has no attribute 'extends'
Issue 3527 - UI - Add nsslapd-haproxy-trusted-ip to server setting (#5839)
Issue 4551 - Paged search impacts performance (#5838)
Issue 4758 - Add tests for WebUI
Issue 4169 - UI - Fix retrochangelog and schema Typeaheads (#5837)
issue 5833 - dsconf monitor backend fails on lmdb (#5835)
Issue 3555 - UI - Fix audit issue with npm - stylelint (#5836)
2023-08-03 14:57:06 -04:00
Mark Reynolds
70852658a4 Bump version to 2.4.2-5
Add the bash completion scripts to the appropriate files section
2023-07-24 15:32:49 -04:00
Fedora Release Engineering
59f217afda Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-19 10:53:12 +00:00
František Zatloukal
a0aa3a1e6a Rebuilt for ICU 73.2 2023-07-11 22:12:36 +02:00
Mark Reynolds
c7d3a6be63 Bump version to 2.4.2-2
Issue 5752 - RFE - Provide a history for LastLoginTime (#5807)
= Issue 4719 CI - Add dsconf add a PTA URL test
2023-07-10 13:31:58 -04:00
Mark Reynolds
41a274793a Bump version to 2.4.2
Issue 5793 - UI - fix suffix selection in export modal
Issue 5793 - UI - Fix minor crashes (#5827)
Issue 5825 - healthcheck - password storage scheme warning needs more info
Issue 5822 - Allow empty export path for db2ldif
Issue 5755 - Massive memory leaking on update operations (#5824)
Issue 5701 - CI - Add more tests for referral mode fix (#5810)
Issue 5551 - Almost empty and not loaded ns-slapd high cpu load
Issue 5755 - The Massive memory leaking on update operations (#5803)
Issue 2375 - CLI - Healthcheck - revise and add new checks
Bump openssl from 0.10.52 to 0.10.55 in /src
Issue 5793 - UI - movce from webpack to esbuild bundler
Issue 5752 - CI - Add more tests for lastLoginHistorySize RFE (#5802)
Issue 3527 - Fix HAProxy x390x compatibility and compiler warnings (#5801)
Issue 5798 - CLI - Add multi-valued support to dsconf config (#5799)
Issue 5781 - Bug handling return code of pre-extended operation plugin.
Issue 5785 - move bash completion to post section of specfile
Issue 5156 - (cont) RFE slapi_memberof reusing memberof values (#5744)
Issue 4758 - Add tests for WebUI
Issue 3527 - Add PROXY protocol support (#5762)
Issue 5789 - Improve ds-replcheck error handling
Issue 5786 - CLI - registers tools for bash completion
Issue 5786 - Set minimal permissions on GitHub Workflows (#5787)
Issue 5646 - Various memory leaks (#5725)
Issue 5778 - UI - Remove error message if .dsrc is missing
Issue 5751 - Cleanallruv task crashes on consumer (#5775)
2023-07-07 15:27:26 -04:00
Python Maint
47834ef75a Rebuilt for Python 3.12 2023-06-28 19:02:29 +02:00
Mark Reynolds
66643dd6cf Bump version to 2.4.1
Issue 5770 - RFE - Extend Password Adminstrators to allow skipping password info updates
Issue 5768 - CLI/UI - cert checks are too strict, and other issues
Issue 5722 - fix compilation warnings (#5771)
Issue 5765 - Improve installer selinux handling
Issue 152  - RFE - Add support for LDAP alias entries
Issue 5052 - BUG - Custom filters prevented entry deletion (#5060)
Issue 5752 - RFE - Provide a history for LastLoginTime (#5753)
Issue 5722 - RFE When a filter contains 'nsrole', improve response time by rewriting the filter (#5723)
Issue 5704 - crash in sync_refresh_initial_content (#5720)
Issue 5738 - RFE - UI - Read/write replication monitor info to .dsrc file
Issue 5156 - build warnings (#5758)
Issue 5749 - RFE - Allow Account Policy Plugin to handle inactivity and expiration at the same time
Issue 5743 - Disabling replica crashes the server (#5746)
Issue 2562 - Copy config files into backup directory
Issue 5156 - fix build breakage from slapi-memberof commit
Issue 4758 - Add tests for WebUI
2023-05-18 10:11:38 -04:00
Mark Reynolds
4278187fdb Bump version to 2.4.0
Issue 5156 - RFE that implement slapi_memberof (#5694)
Issue 5734 - RFE - Exclude pwdFailureTime and ContextCSN (#5735)
Issue 5726 - ns-slapd crashing in ldbm_back_upgradednformat (#5727)
Issue 4758 - Add tests for WebUI
Issue 5718 - Memory leak in connection table (#5719)
Issue 5705 - Add config parameter to close client conns on failed bind (#5712)
Issue 4758 - Add tests for WebUI
Issue 5643 - Memory leak in entryrdn during delete (#5717)
Issue 5714 - UI - fix typo, db settings, log settings, and LDAP editor paginations
Issue 5701 - CLI - Fix referral mode setting (#5708)
Bump openssl from 0.10.45 to 0.10.48 in /src (#5709)
Issue 5710 - subtree search statistics for index lookup does not report ancestorid/entryrdn lookups (#5711)
Issue 5697 - Obsolete nsslapd-ldapimaprootdn attribute (#5698)
Issue 1081 - Stop schema replication from overwriting x-origin
Issue 4812 - Listener thread does not scale with a high num of established connections (#5706)
Issue 4812 - Listener thread does not scale with a high num of established connections (#5681)
Bump webpack from 5.75.0 to 5.76.0 in /src/cockpit/389-console (#5699)
Issue 5598 - (3rd) In 2.x, SRCH throughput drops by 10% because of handling of referral (#5692)
Issue 5598 - (2nd) In 2.x, SRCH throughput drops by 10% because of handling of referral (#5691)
Issue 5687 - UI - sensitive information disclosure
Issue 5661 - LMDB hangs while Rebuilding the replication changelog RUV (#5676)
Issue 5554 - Add more tests to security_basic_test suite
Issue 4583 - Update specfile to skip checks of ASAN builds
Issue 4758 - Add tests for WebUI
Issue 3604 - UI - Add support for Subject Alternative Names in CSR
Issue 5600 - buffer overflow when enabling sync repl plugin when dynamic plugins is enabled
Issue 5640 - Update logconv for new logging format
Issue 5162 - CI - fix error message for invalid pem file
Issue 5598 - In 2.x, SRCH throughput drops by 10% because of handling of referral (#5604)
Issue 5671 - covscan - clang warning (#5672)
Issue 5267 - CI - Fix issues with nsslapd-return-original-entrydn
Issue 5666 - CLI - Add timeout parameter for tasks
Issue 5567 - CLI - make ldifgen use the same default ldif name for all options
Issue 5647 - Fix unused variable warning from previous commit (#5670)
Issue 5162 - Lib389 - verify certificate type before adding
Issue 5642 - Build fails against setuptools 67.0.0
Issue 5630 - CLI - need to add logging filter for stdout
Issue 5646 - CLI/UI - do not hardcode password storage schemes
Issue 5640 - Update logconv for new logging format
issue 5647 - covscan: memory leak in audit log when adding entries (#5650)
Issue 5658 - CLI - unable to add attribute with matching rule
Issue 5653 - covscan - fix invalid dereference
Issue 5652 - Libasan crash in replication/cascading_test (#5659)
Issue 5628 - Handle graceful timeout in CI tests (#5657)
Issue 5648 - Covscan - Compiler warnings (#5651)
Issue 5630 - CLI - error messages should goto stderr
Issue 2435 - RFE - Raise IDL Scan Limit to INT_MAX (#5639)
Issue 5632 - CLI - improve error handling with db2ldif
Issue 5517 - Replication conflict CI test sometime fails (#5518)
Issue 5634 - Deprecated warning related to github action workflow code (#5635)
Issue 5637 - Covscan - fix Buffer Overflows (#5638)
Issue 5624 - RFE - UI - export certificates, and import text base64 encoded certificates
Bump tokio from 1.24.1 to 1.25.0 in /src (#5629)
Issue 4577 - Add LMDB pytest github action (#5627)
Issue 4293 - RFE - CLI - add dsrc options for setting user and group subtrees
Remove stale libevent(-devel) dependency
Issue 5578 - dscreate ds-root does not normaile paths (#5613)
Issue 5497 - boolean attributes should be case insensitive
2023-04-25 16:18:53 -04:00
Viktor Ashirov
763153ab35 Add missing patch 2023-03-31 10:24:04 +02:00
Viktor Ashirov
cc94ca8b85 Fix build issue against setuptools 67.0.0 (#2183375) 2023-03-31 10:21:48 +02:00
Simon Pichugin
8550918238 Use systemd-sysusers for dirsrv user and group (#2173834) 2023-02-28 11:47:22 -08:00
Mark Reynolds
80aafdcae5 Bump version to 2.3.2
Issue 5547 - automember plugin improvements
Issue 5607, 5351, 5611 - UI/CLI - fix various issues
Issue 5610 - Build failure on Debian
Issue 5608 - UI - need to replace some "const" with "let"
Issue 5560 - dscreate run by non superuser set defaults requiring superuser privilege (#5579)
Issue 3604 - Create a private key/CSR with dsconf/Cockpit (#5584)
Issue 5605 - Adding a slapi_log_backtrace function in libslapd (#5606)
Issue 5602 - UI - browser crash when trying to modify read-only variable
Issue 5581 - UI - Support cockpit dark theme
Issue 5593 - CLI - dsidm account subtree-status fails with TypeError
Issue 5591 - BUG - Segfault in cl5configtrim with invalid confi (#5592)
Fix latest npm audit failures
Issue 5599 - CI - webui tests randomly fail
Issue 5348 - RFE - CLI - add functionality to do bulk updates to entries
Issue 5588 - Fix CI tests
Issue 5585 - lib389 password policy DN handling is incorrect (#5587)
Issue 5521 - UI - Update plugins for new split PAM and LDAP pass thru auth
Bump json5 from 2.2.1 to 2.2.3 in /src/cockpit/389-console
Issue 5236 - UI add specialized group edit modal
Issue 5550 - dsconf monitor crashes with Error math domain error (#5553)
Issue 5278 - CLI - dsidm asks for the old password on password reset
Issue 5531 - CI - use universal_lines in capture_output
Issue 5425 - CLI - add confirmation arg when deleting backend
Issue 5558 - non-root instance fails to start on creation (#5559)
Issue 5545 - A random crash in import over lmdb (#5546)
Issue 3615 - CLI - prevent virtual attribute indexing
Update specfile and rust crates
Issue 5413 - Allow mutliple MemberOf fixup tasks with different bases/filters
Issue 5554 - Add more tests to security_basic_test suite (#5555)
Issue 5561 - Nightly tests are failing
Issue 5521 - RFE - split pass through auth cli
Issue 5521 - BUG - Pam PTA multiple issues
Issue 5544 - Increase default task TTL
Issue 5526 - RFE - Improve saslauthd migration options (#5528)
Issue 5539 - Make logger's parameter name unified (#5540)
Issue 5541 - Fix typo in `lib389.cli_conf.backend._get_backend` (#5542)
Issue 3729 - (cont) RFE Extend log of operations statistics in access log (#5538)
Issue 5534 - Fix a rebase typo (#5537)
Issue 5534 - Add copyright text to the repository files
2023-01-23 09:22:09 -05:00
Fedora Release Engineering
a1e04f6d05 Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-01-18 19:34:04 +00:00
Pete Walter
ac53f0a2be Rebuild for ICU 72 2022-12-31 02:17:06 +00:00
Mark Reynolds
145cec1ec7 Bump version to 2.3.1
Issue 5532 - Make db compaction TOD day more robust.
Issue 3729 - RFE Extend log of operations statistics in access log (#5508)
Issue 5529 - UI - Fix npm vulnerability in loader-utils
Issue 5490 - tombstone in entryrdn index with lmdb but not with bdb (#5498)
Issue 5162 - Fix dsctl tls ca-certfiicate add-cert arg requirement
Issue 5510 - remove twalk_r dependency to build on RHEL8 (#5516)
Issue 5162 - RFE - CLI allow adding CA certificate bundles
Issue 5440 - memberof is slow on update/fixup if there are several 'groupattr' (#5455)
Issue 5512 - BUG - skip pwdPolicyChecker OC in migration (#5513)
Issue 3555 - UI - fix audit issue with npm loader-utils (#5514)
Issue 5505 - Fix compiler warning (#5506)
Issue 5469 - Increase the default value of nsslapd-conntablesize (#5472)
Issue 5408 - lmdb import is slow (#5481)
Issue 5429 - healthcheck - add checks for MemberOf group attrs being indexed
Issue 5502 - RFE - Add option to display entry attributes in audit log
Issue 5495 - BUG - Minor fix to dds skip, inconsistent attrs caused errors (#5501)
Issue 5367 - RFE - store full DN in database record
Issue 5495 - RFE - skip dds during migration. (#5496)
Issue 5491 - UI - Add rework and finish jpegPhoto functionality (#5492)
Issue 5368 - Retro Changelog trimming does not work (#5486)
Issue 5487 - Fix various issues with logconv.pl
Issue 5476 - RFE - add memberUid read aci by default (#5477)
Issue 5482 - lib389 - Can not enable replication with a mixed case suffix
Issue 5478 - Random crash in connection code during server shutdown (#5479)
Issue 3061 - RFE - Add password policy debug log level
Issue 5302 - Release tarballs don't contain cockpit webapp
Issue 5262 - high contention in find_entry_internal_dn on mixed load (#5264)
Issue 4324 - Revert recursive pthread mutex change (#5463)
Issue 5462 - RFE - add missing default indexes (#5464)
Issue 5465 - Fix dbscan linking (#5466)
Issue 5271 - Serialization of pam_passthrough causing high etimes (#5272)
Issue 5453 - UI/CLI - Changing Root DN breaks UI
Issue 5446 - Fix some covscan issues (#5451)
Issue 4308 - checking if an entry is a referral is expensive
Issue 5447 - UI - add NDN max cache size to UI
Issue 5443 - UI - disable save button while saving
Issue 5413 - Allow only one MemberOf fixup task at a time
Issue 4592 - dscreate error with custom dir_path (#5434)
Issue 5158 - entryuuid fixup tasks fails in replicated topology (#5439)
2022-11-18 08:43:03 -05:00
Mark Reynolds
b82c997263 Update specfile for pcre2-devel 2022-09-20 08:57:50 -04:00
Mark Reynolds
e4421eca14 Bump version to 2.3.0-2
Update old pcre-devel requirement to pcre2-devel
2022-09-20 08:52:26 -04:00
Mark Reynolds
165637f066 Bump version to 2.3.0
Issue 5012 - Migrate pcre to pcre2 - remove match limit
Issue 5356 - Make Rust non-optional and update default password storage scheme
Issue 5012 - Migrate pcre to pcre2
Issue 5428 - Fix regression with nscpEntryWsi computation
Fix missing 'not' in description (closes #5423) (#5424)
Issue 5421 - CI - makes replication/acceptance_test.py::test_modify_entry more robust (#5422)
Issue 3903 - fix repl keep alive event interval
Issue 5418 - Sync_repl may crash while managing invalid cookie (#5420)
Issue 5415 - Hostname when set to localhost causing failures in other tests
Issue 5412 - lib389 - do not set backend name to lowercase
Issue 5407 - sync_repl crashes if enabled while dynamic plugin is enabled (#5411)
Issue 5385 - LMDB - import crash in rdncache_add_elem (#5406)
Issue 5403 - Memory leak in conntection table mulit list (#5404)
Issue 3903 - keep alive update event starts too soon
Issue 5397 - Fix various memory leaks
Issue 5399 - UI - LDAP Editor is not updated when we switch instances (#5400)
Issue 3903 - Supplier should do periodic updates
Issue 5377 - Code cleanup: Fix Covscan invalid reference (#5393)
Issue 5394 - configure doesn't check for lmdb and json-c
Issue 5392 - dscreate fails when using alternative ports in the SELinux hi_reserved_port_t label range
Issue 5386 - BUG - Update sudoers schema to correctly support UTF-8 (#5387)
Issue 5388 - fix use-after-free and deadcode
Issue 5383 - UI - Various fixes and RFE's for UI
Issue 4656 - Remove problematic language from source code
Issue 5380 - Separate cleanAllRUV code into new file
Issue 5322 - optime & wtime on rejected connections is not properly set
Issue 5335 - RFE - Add Security Audit Log
Issue 5375 - CI - disable TLS hostname checking
Issue 981  - Managed Entries betxnpreoperation - transaction not aborted on managed entry failure (#5369)
Issue 5373 - dsidm user get_dn fails with search_ext() argument 1 must be str, not function
Issue 5371 - Update npm and cargo packages
Issue 3069 - Support ECDSA private keys for TLS (#5365)
Issue 5290 - Importing certificate chain files via "import-server-key-cert" no longer works (#5293)
2022-09-01 15:50:20 -04:00
František Zatloukal
d9d24b0ede Rebuilt for ICU 71.1 2022-08-01 15:02:07 +02:00
Fedora Release Engineering
3ff5ed12ac Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-07-20 18:22:29 +00:00
Mark Reynolds
459f9c8265 Bump version to 2.2.2
Issue 5221 - fix covscan (#5359)
Issue 5294 - Report Portal 5 is not processing an XML file with (#5358)
Issue 5353 - CLI - dsconf backend export breaks with multiple backends
Issue 5346 - New connection table fails with ASAN failures (#5350)
Issue 5345 - BUG - openldap migration fails when ppolicy is active (#5347)
Issue 5323 - BUG - improve skipping of monitor db (#5340)
Issue 5329 - Improve replication extended op logging
Issue 5343 - Various improvements to winsync
Issue 4932 - CLI - add parser aliases to long arg names
Issue 5332 - BUG - normalise filter as intended
Issue 5327 - Validate test metadata
Issue 4812 - Scalability with high number of connections (#5090)
Issue 4348 - Add tests for dsidm
Issue 5333 - 389-ds-base fails to build with Python 3.11
2022-07-05 12:21:18 -04:00
Python Maint
c3f89a86c3 Rebuilt for Python 3.11 2022-06-16 17:58:54 +02:00
Mark Reynolds
1d58aef426 Bump version to 2.2.1-3
Issue 5332 - BUG - normalise filter as intended
Issue 5327 - Validate test metadata
Issue 4348 - Add tests for dsidm
Bump crossbeam-utils from 0.8.6 to 0.8.8 in /src
Issue 5333 - 389-ds-base fails to build with Python 3.11
2022-06-15 13:45:44 -04:00
Python Maint
7fe71f3ded Rebuilt for Python 3.11 2022-06-13 20:39:22 +02:00
Mark Reynolds
9f03f8a232 Bump version to 2.2.1
Issue 5323 - BUG - Fix issue in mdb tests with monitor (#5326)
Issue 5170 - BUG - incorrect behaviour of filter test (#5315)
Issue 5324 - plugin acceptance test needs hardening
Issue 5319 - dsctl_tls_test.py fails with openssl-3.x
Issue 5323 - BUG - migrating database for monitoring interface lead to crash (#5321)
Issue 5304 - Need a compatibility option about sub suffix handling (#5310)
Issue 5313 - dbgen test uses deprecated -h HOST and -p PORT options for ldapmodify
Issue 5311 - Missing Requires for acl in the spec file
Issue 5305 - OpenLDAP version autodetection doesn't work
Issue 5307 - VERSION_PREREL is not set correctly in CI builds
Issue 5302 - Release tarballs don't contain cockpit webapp
Issue 5170 - RFE - improve filter logging to assist debugging (#5301)
Issue 5299 - jemalloc 5.3 released
Issue 5175 - Remove stale zlib-devel dependency declaration (#5173)
Issue 5294 - Report Portal 5 is not processing test results XML file
Issue 5170 - BUG - ldapsubentries were incorrectly returned (#5285)
Issue 5291 - Harden ReplicationManager.wait_for_replication (#5292)
Issue  379 - RFE - Compress rotated logs (fix linker)
Issue  379 - RFE - Compress rotated logs
Issue 5281 - HIGH - basic test does not run
Issue 5284 - Replication broken after password change (#5286)
Issue 5279 - dscontainer: TypeError: unsupported operand type(s) for /: 'str' and 'int'
Issue 5170 - RFE - Filter optimiser (#5171)
Issue 5276 - CLI - improve task handling
Issue 5126 - Memory leak in slapi_ldap_get_lderrno (#5153)
Issue 3 - ansible-ds - Prefix handling fix (#5275)
Issue 5273 - CLI - add arg completer for instance name
Issue 2893 - CLI - dscreate - add options for setting up replication
Issue 4866 - CLI - when enabling replication set changelog trimming by default
Issue 5241 - UI - Add account locking missing functionality (#5251)
Issue 5180 - snmp_collator tries to unlock NULL mutex (#5266)
Issue 4904 - Fix various small issues
lib389 prerequisite for ansible-ds (#5253)
Issue 5260 - BUG - OpenLDAP allows multiple names of memberof overlay (#5261)
Issue 5252 - During DEL, vlv search can erroneously return NULL candidate (#5256)
Issue 5254 - dscreate create-template regression due to 5a3bdc336 (#5255)
Issue 5210 - Python undefined names in lib389
Issue 5065 - Crash in suite plugins - test_dna_max_value (#5108)
Issue 5247 - BUG - Missing attributes in samba schema (#5248)
Issue 5242- Craft message may crash the server (#5243)
Issue 4775 -plugin entryuuid failing (#5229)
Issue 5239 - Nightly copr builds are broken
Issue 5237 - audit-ci: Cannot convert undefined or null to object
Issue 5234 - UI - rename Users and Groups tab
Issue 5227 - UI - No way to move back to Get Started step (#5233)
Issue 5217 - Simplify instance creation and administration by non root user (#5224)
2022-06-03 14:06:50 -04:00
Viktor Ashirov
0aaf5d460b Remove unused relprefix and prerel macros that break rpmdev-bumpspec logic
During mass rebuilds NVR is bumped by rpmdev-bumpspec. But it can't
handle complex Release: fields such as ours, that has  %{prerel} and
%{relprefix} macros. It adds .1 after the %{dist} macro instead of
increasing the release number.
The issue for rpmdev-bumpspec is unsolved since 2012:
https://pagure.io/rpmdevtools/issue/18

These macros are unused by us and only cause issues when NVR is bumped.
So let's remove them.
2022-06-02 10:26:54 +02:00
Viktor Ashirov
0853e355f9 Update tests.yml
Change upstream repo URL and remove 389-ds-base-legacy-tools package
that is no longer present.
2022-06-02 10:03:30 +02:00
Mark Reynolds
e34784505a Bump version to 2.1.1
Issue 5230 - Race condition in RHDS disk monitoring functions
Issue 4299 - UI - Add CoS funtionality (#5196)
Issue 5225 - UI - impossible to manually set entry cache
Issue 5186 - UI - Fix SASL Mapping regex test feature
Issue 5221 - User with expired password can still login with full privledges
Issue 5218 - double-free of the virtual attribute context in persistent search (#5219)
Issue 5193 - Incomplete ruv occasionally returned from ruv search (#5194)
Issue 5200 - dscontainer should use environment variables with DS_ prefix
Issue 5189 - memberOf plugin exclude subtree not cleaning up groups on modrdn
Issue 5051 - RFE - ADSync flatten tree (#5192)
Issue 5188 - UI - LDAP editor - add entry and group types
Issue 5184 - memberOf does not work correctly with multiple include scopes
Issue 5162 - BUG - error on importing chain files (#5164)
Issue 5186 - UI - Fix SASL Mapping regex validation and other minor improvements
Issue 5048 - Support for nsslapd-tcp-fin-timeout and nsslapd-tcp-keepalive-time (#5179)
Issue 5122 - dsconf instance backend suffix set doesn't accept backend name (#5178)
Issue 5032 - Fix configure option in specfile (#5174)
Issue 5176 - CI rewriter fails when libslapd.so.0 does not exist (#5177)
Issue 5160 - BUG - x- prefix in descr-oid can confuse oid parser (#5161)
Issue 5137 - RFE - improve sssd conf output (#5138)
Issue 5102 - BUG - container may fail with bare uid/gid (#5140)
Issue 5145 - Fix covscan errors
Issue 4721 - UI - attribute uniqueness crashes UI when there are no configs
Issue 5155 - RFE - Provide an option to abort an Auto Member rebuild task
Issue 4299 - UI - Add Role funtionality (#5163)
Issue 5050 - bdb bulk op fails if fs page size > 8K (#5150)
Issue 5149 - Build failure on EL8 - undefined reference to `twalk_r'
Issue 5142 - CLI - dsctl dbgen is broken
Issue 4678 - Added test cases
2022-03-23 11:44:28 -04:00
Mark Reynolds
7a69d01ec0 Bump version to 2.2.0-1
Issue 5230 - Race condition in RHDS disk monitoring functions
Issue 5193 - Incomplete ruv occasionally returned from ruv search (#5194)
Issue 4970 - Add support for recursively deleting subentries
Issue 4299 - UI - Add CoS funtionality (#5196)
Issue 5225 - UI - impossible to manually set entry cache
Issue 5186 - UI - Fix SASL Mapping regex test feature
Issue 5221 - User with expired password can still login with full privledges
Issue 5218 - double-free of the virtual attribute context in persistent search (#5219)
Issue 5214 - CI Test tests/suites/replication/virtual_attribute_replication_test.py (#5215)
Issue 5197 - Build break in lib389 with INSTALL_PREFIX (#5198)
Issue 5200 - dscontainer should use environment variables with DS_ prefix
Issue 5189 - memberOf plugin exclude subtree not cleaning up groups on modrdn
Issue 5051 - RFE - ADSync flatten tree (#5192)
Issue 5188 - UI - LDAP editor - add entry and group types
Issue 5184 - memberOf does not work correctly with multiple include scopes
Issue 5162 - BUG - error on importing chain files (#5164)
Issue 5186 - UI - Fix SASL Mapping regex validation and other minor improvements
Issue 5048 - Support for nsslapd-tcp-fin-timeout and nsslapd-tcp-keepalive-time (#5179)
Issue 5122 - dsconf instance backend suffix set doesn't accept backend name (#5178)
Issue 5032 - Fix configure option in specfile (#5174)
Issue 5176 - CI rewriter fails when libslapd.so.0 does not exist (#5177)
Issue 5160 - BUG - x- prefix in descr-oid can confuse oid parser (#5161)
Issue 5137 - RFE - improve sssd conf output (#5138)
Issue 5102 - BUG - container may fail with bare uid/gid (#5140)
Issue 5145 - Fix covscan errors
Issue 4721 - UI - attribute uniqueness crashes UI when there are no configs
Issue 5155 - RFE - Provide an option to abort an Auto Member rebuild task
Issue 4299 - UI - Add Role funtionality (#5163)
Issue 5050 - bdb bulk op fails if fs page size > 8K (#5150)
Issue 5149 - Build failure on EL8 - undefined reference to `twalk_r'
Issue 5142 - CLI - dsctl dbgen is broken
Issue 4678 - Added test cases
2022-03-23 10:49:59 -04:00
Mark Reynolds
04994aacbb Bump version to 2.1.0-1
Issue 4299 - UI - fix minor issues with ldap editor (table view)
Issue 4299 - UI - fix minor issues with ldap editor
Issue 5103 - UI - Add support for TPR to web console (#5111)
Issue 2790 - RFE - set db home directory to /dev/shm by default
Issue 5127 - ds_selinux_restorecon.sh: always exit 0
Issue 5135 - UI - Disk monitoring threshold does update properly
Issue 5129 - BUG - Incorrect fn signature in add_index (#5130)
Issue 5132 - Update Rust crate lru to fix CVE
Issue 3555 - UI - fix audit issue with npm nanoid
Issue 4299 - UI - Add ACI editing features
Issue 5127 - run restorecon on /dev/shm at server startup
Issue 5124 - dscontainer fails to create an instance
Issue 5098 - Multiple issues around replication and CI test test_online_reinit_may_hang (#5109)
Issue 4939 - Redesign LMDB import (#5071)
Issue 5113 - Increase timestamp precision for development builds
Issue 5115 - AttributeError: type object 'build_manpages' has no attribute 'build_manpages'
Issue 5117 - Revert skipif line from CI test (#5118)
Issue 5102 - BUG - container may fail with bare uid/gid (#5110)
Issue 5077 - UI - Add retrocl exclude attribute functionality (#5078)
Issue 5105 - During a bind, if the target entry is not reachable the operation may complete without sending result (#5107)
Issue 5074 - retro changelog cli updates (#5075)
Issue 3584 - Add is_fips check to password tests (#5100)
Issue 5095 - sync-repl with openldap may send truncated syncUUID (#5099)
Issue 5032 - Fix OpenLDAP version check (#5091)
Issue 5080 - BUG - multiple index types not handled in openldap migration (#5094)
Issue 2929 - Fix github warnings
Issue 5053 - Improve GitHub Actions debugging
Issue 5088 - dsctl dblib broken because of a merge issue (#5089)
Issue 5079 - BUG - multiple ways to specific primary (#5087)
Issue 5085 - Race condition about snmp collator at startup (#5086)
Issue 5082 - slugify: ModuleNotFoundError when running test cases
Issue 4959 - Invalid /etc/hosts setup can cause isLocalHost to fail (#5003)
Issue 5037 - in OpenQA changelog trimming can crashes (#5070)
Issue 5049 - ns-slapd crash in replication/acceptance_test.py (#5063)
Issue 4890 - Need cli to easely get simple performance statistics (#4891)
Issue 5011 - test_replica_backup_and_restore random failure (#5066)
Issue 4299 - UI LDAP editor - add "edit" and "rename" functionality
Issue 5018 - RFE - openSUSE systemd hardening (#5019)
Issue 4962 - Fix various UI bugs - Database and Backups (#5044)
Issue 5055 - Improve core dump detection and collection in PR CI
Issue 4994 - Revert retrocl dependency workaround (#4995)
Issue 5046 - BUG - update concread (#5047)
Issue 5043 - BUG - Result must be used compiler warning (#5045)
Issue 4312 - performance search rate: contention on global monitoring counters (#4940)
Issue 5034 - is_dbi contains an invalid debug message that trigger failure in import_tests (#5035)
Issue 5029 - Unbind generates incorrent closed error message (#5030)
Issue 4165 - Don't apply RootDN access control restrictions to UNIX connections
Issue 4931 - RFE: dsidm - add creation of service accounts
Issue 5024 - BUG - windows ro replica sigsegv (#5027)
Issue 4758 - Add tests for WebUI
Issue 5032 - OpenLDAP is not shipped with non-threaded version of libldap (#5033)
Issue 5038 - BUG - dsconf tls may fail due to incorrect cert path (#5039)
Issue 5020 - BUG - improve clarity of posix win sync logging (#5021)
Issue 5011 - test_replica_backup_and_restore random failure (#5028)
Issue 5025 - RFE - remove useless logging (#5026)
Issue 5008 - If a non critical plugin can not be loaded/initialized, bootstrap should succeeds (#5009)
Issue 4962 - Fix various UI bugs - Settings and Monitor (#5016)
Issue 4976 - Failure in suites/import/import_test.py::test_fast_slow_import (#5017)
Issue 5014 - UI - Add group creation to LDAP editor
Issue 5006 - UI - LDAP editor tree not being properly updated
Issue 4923 - issue about LMDB dbi versus txn handling (#4924)
Issue 5001 - Update CI test for new availableSASLMechs attribute
Issue 4959 - Invalid /etc/hosts setup can cause isLocalHost to fail.
Issue 5001 - Fix next round of UI bugs:
Issue 4962 - Fix various UI bugs - dsctl and ciphers (#5000)
Issue 4734 - ldif2db - import of entry with no parent doesnt generate a warning
Issue 4778 - [RFE] Schedule execution of "compactdb" at specific date/time
Issue 4978 - use more portable python command for checking containers
Issue 4990 - CI tests: improve robustness of fourwaymmr (#4991)
Issue 4992 - BUG - slapd.socket container fix (#4993)
Issue 4984 - BUG - pid file handling (#4986)
Issue 4460 - python3-lib389 ignore the configuration parameters from … (#4906)
Issue 4982 - BUG - missing inttypes.h (#4983)
Issue 4758 - Add tests for WebUI
Issue 4972 - gecos with IA5 introduces a compatibility issue with previous (#4981)
Issue 4096 - Missing perl dependencies for logconv.pl
Issue 4758 - Add tests for WebUI
Issue 4978 - make installer robust
Issue 4898 - Implement bdb to lmdb CLI migration tools (#4952)
Issue 4976 - Failure in suites/import/import_test.py::test_fast_slow_import
Issue 4973 - update snmp to use /run/dirsrv for PID file
Issue 4973 - installer changes permissions on /run
Issue 4959 - BUG - Invalid /etc/hosts setup can cause isLocalHost (#4960)
Issue 4962 - Fix various UI bugs - Plugins (#4969)
Issue 4092 - systemd-tmpfiles warnings
Issue 4956 - Automember allows invalid regex, and does not log proper error
Issue 4731 - Promoting/demoting a replica can crash the server
Issue 4962 - Fix various UI bugs part 1
Issue 3584 - Fix PBKDF2_SHA256 hashing in FIPS mode (#4949)
Issue 4943 - Fix csn generator to limit time skew drift (#4946)
Issue 4954 - pytest is killed by OOM killer when the whole test suite is executed
Issue 2790 - Set db home directory by default
Issue 4299 - Merge LDAP editor code into Cockpit UI
Issue 4938 - max_failure_count can be reached in dscontainer on slow machine with missing debug exception trace
Issue 4921 - logconv.pl -j: Use of uninitialized value (#4922)
Issue 4896 - improve CI tests report in case of SERVER_DOWN exception (#4897)
Issue 4678 - RFE automatique disable of virtual attribute checking (#4918)
Issue 4847 - BUG - potential deadlock in replica (#4936)
Issue 4513 - fix ACI CI tests involving ip/hostname rules
Issue 4925 - Performance ACI: targetfilter evaluation result can be reused (#4926)
Issue 4916 - Memory leak in ldap-agent
Issue 4656 DS Remove problematic language from CLI tools and UI (#4893)
Issue 4908 - Updated several dsconf --help entries (typos, wrong descriptions, etc.)
Issue 4912 - Account Policy plugin does not set the config entry DN
Issue 4863 - typoes in logconv.pl
Issue 4796 - Add support for nsslapd-state to CLI & UI
Issue 4894 - IPA failure in ipa user-del --preserve (#4907)
Issue 4914 - BUG - resolve duplicate stderr with clang (#4915)
Issue 4912 - dsidm command crashing when account policy plugin is enabled
Issue 4910 - db reindex corrupts RUV tombstone nsuiqueid index
Issue 4577 - Add GitHub actions
Issue 4901 - Add COPR integration
Issue 4869 - Fix retro cl trimming misuse of monotonic/realtime clocks
Issue 4889 - bdb lock deadlock while reindex/import vlv index (#4892)
Issue 4773 - Extend CI tests for DNA interval assignment
Issue 4887 - UI - fix minor regression from camelCase fixup
Issue 4887 - UI - Update webpack.config.js and package.json
Issue 4725 [RFE] DS - Update the password policy to support Temporary Password Rules (#4853)
Issue 4149 - UI - Migrate the remaining components to PF4
Issue 4169 - Migrate Replication & Schema tabs to PF4
Issue 4875 - CLI - Add some verbosity to installer
Issue 4884 - server crashes when dnaInterval attribute is set to zero
Issue 4880: Revert removed_config_49298_test.py wrongly modified by issue 4699 (#4881)
Issue 4699 - backend redesign phase 4 - db-mdb plugin implementation (#4716)
Issue 4877 - RFE - EntryUUID to validate UUIDs on fixup (#4878)
Issue 4872 - BUG - entryuuid enabled by default causes replication issues (#4876)
Issue 4775 - Add entryuuid CLI and Fixup (#4776)
Issue 4763 - Attribute Uniqueness Plugin uses wrong subtree on ModRDN (#4871)
Issue 4851 - Typos in "dsconf pwpolicy set --help" (#4867)
Issue 4096 - Missing perl dependencies for logconv.pl
Issue 4736 - lib389 - fix regression in certutil error checking
2022-02-02 13:52:00 -05:00
Adam Williamson
2ad9ed3121 Add patch file missing from last commit 2022-01-27 12:31:35 -08:00
Adam Williamson
1611a2fcbf Backport #5141, fix startup when directory doesn't exist (#2047323) 2022-01-27 11:21:43 -08:00
Viktor Ashirov
0dd8948e7c Use Rust 2018 edition for concread on EL8 2022-01-25 16:25:35 +01:00
Mark Reynolds
0074e3f5ba Bump version to 2.0.13
Issue 5132 - Update Rust crate lru to fix CVE
Issue 3555 - UI - fix audit issue with npm nanoid
Issue 4299 - UI - Add ACI editing features
Issue 4299 - UI - LDAP editor - add "edit" and "rename" functionality
Issue 5127 - run restorecon on /dev/shm at server startup
Issue 5124 - dscontainer fails to create an instance
Issue 4312 - fix compiler warnings
Issue 5115 - AttributeError: type object 'build_manpages' has no attribute 'build_manpages'
Issue 4312 - performance search rate: contention on global monitoring counters (#4940)
Issue 5105 - During a bind, if the target entry is not reachable the operation may complete without sending result (#5107)
Issue 5095 - sync-repl with openldap may send truncated syncUUID (#5099)
Issue 3584 - Add is_fips check to password tests (#5100)
Issue 5074 - retro changelog cli updates (#5075)
Issue 4994 - Revert retrocl dependency workaround (#4995)
2022-01-24 14:00:05 -05:00
Fedora Release Engineering
c532bb9b68 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-01-19 19:09:45 +00:00
Mark Reynolds
2351af3f1f Bump version to 2.0.12-1
Issue 4299 - UI LDAP editor - add "edit" and "rename" functionality
Issue 4962 - Fix various UI bugs - Database and Backups (#5044)
Issue 5046 - BUG - update concread (#5047)
Issue 5043 - BUG - Result must be used compiler warning (#5045)
Issue 4165 - Don't apply RootDN access control restrictions to UNIX connections
Issue 4931 - RFE: dsidm - add creation of service accounts
Issue 5024 - BUG - windows ro replica sigsegv (#5027)
Issue 5020 - BUG - improve clarity of posix win sync logging (#5021)
Issue 5008 - If a non critical plugin can not be loaded/initialized, bootstrap should succeeds (#5009)
2021-12-16 17:30:03 -05:00
Mark Reynolds
3d04292979 Bump version to 2.0.11
Issue 4962 - Fix various UI bugs - Settings and Monitor (#5016)
Issue 5014 - UI - Add group creation to LDAP editor
Issue 5006 - UI - LDAP editor tree not being properly updated
Issue 5001 - Update CI test for new availableSASLMechs attribute
Issue 4959 - Invalid /etc/hosts setup can cause isLocalHost to fail.
Issue 5001 - Fix next round of UI bugs:
Issue 4962 - Fix various UI bugs - dsctl and ciphers (#5000)
Issue 4978 - use more portable python command for checking containers
Issue 4678 - RFE automatique disable of virtual attribute checking (#4918)
Issue 4972 - gecos with IA5 introduces a compatibility issue with previous (#4981)
Issue 4978 - make installer robust
Issue 4976 - Failure in suites/import/import_test.py::test_fast_slow_import
Issue 4973 - update snmp to use /run/dirsrv for PID file
Issue 4962 - Fix various UI bugs - Plugins (#4969)
Issue 4973 - installer changes permissions on /run
Issue 4092 - systemd-tmpfiles warnings
Issue 4956 - Automember allows invalid regex, and does not log proper error
Issue 4731 - Promoting/demoting a replica can crash the server
Issue 4962 - Fix various UI bugs part 1
Issue 3584 - Fix PBKDF2_SHA256 hashing in FIPS mode (#4949)
Issue 4943 - Fix csn generator to limit time skew drift (#4946)
Issue 2790 - Set db home directory by default
Issue 4299 - Merge LDAP editor code into Cockpit UI
Issue 4938 - max_failure_count can be reached in dscontainer on slow machine with missing debug exception trace
Issue 4921 - logconv.pl -j: Use of uninitialized value (#4922)
Issue 4847 - BUG - potential deadlock in replica (#4936)
Issue 4513 - fix ACI CI tests involving ip/hostname rules
Issue 4925 - Performance ACI: targetfilter evaluation result can be reused (#4926)
Issue 4916 - Memory leak in ldap-agent
2021-11-22 20:08:03 -05:00
Viktor Ashirov
da1ce1e0f7 Use split perl dependencies only on Fedora >= 33 and RHEL >= 9
Resolves rhbz#2016595
2021-11-04 08:46:38 +01:00
Mark Reynolds
f6889418c5 Bump version to 2.0.10
Issue 4908 - Updated several dsconf --help entries (typos, wrong descriptions, etc.)
Issue 4912 - Account Policy plugin does not set the config entry DN
Issue 4863 - typoes in logconv.pl
Issue 4796 - Add support for nsslapd-state to CLI & UI
Issue 4894 - IPA failure in ipa user-del --preserve (#4907)
Issue 4912 - dsidm command crashing when account policy plugin is enabled
Issue 4910 - db reindex corrupts RUV tombstone nsuiqueid index
Issue 4869 - Fix retro cl trimming misuse of monotonic/realtime clocks
Issue 4887 - UI - fix minor regression from camelCase fixup
2021-09-20 09:54:09 -04:00
Sahana Prasad
839c0c7eb1 Rebuilt with OpenSSL 3.0.0 2021-09-14 19:19:06 +02:00
Fedora Release Engineering
1feedc33f2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-07-21 15:35:24 +00:00
Fedora Release Engineering
a8e72d4ac4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-07-21 10:40:58 +00:00
Mark Reynolds
7466cff129 Bump version to 2.0.7
Issue 4443 - Internal unindexed searches in syncrepl/retro changelog
Issue 4603 - Reindexing a single backend (#4831)
Issue 4169 - UI - migrate Server Tab forms to PF4
Issue 4817 - BUG - locked crypt accounts on import may allow all passwords (#4819)
Issue 4820 - RFE - control flow integrity (#4821)
Issue 4706 - negative wtime for compare operations (#4780)
Issue 4414 - SIGFPE crash in rhds disk monitoring routine (#4829)
Issue 4262 - Fix Index out of bound in fractional test (#4828)
Issue 4826 - Filter argparse-manpage from autogenerated requires
Issue 4822 - Fix CI temporary password: fixture leftover breaks them (#4823)
Issue 2820 - Fix CI test suite issues
2021-07-15 14:24:25 -04:00
Thierry Bordaz
831791b49b Bump version to 2.0.6
Issue 4803 - Improve DB Locks Monitoring Feature Descriptions
Issue 4803 - Improve DB Locks Monitoring Feature Descriptions (#4810)
Issue 4169 - UI - Migrate Typeaheads to PF4 (#4808)
Issue 4414 - disk monitoring - prevent division by zero crash
Issue 4788 - CLI should support Temporary Password Rules attributes (#4793)
Issue 4656 - Fix replication plugin rename dependency issues
Issue 4656 - replication name change upgrade code causes crash with dynamic plugins
Issue 4506 - Improve SASL logging
Issue 4709 - Fix double free in dbscan
Issue 4093 - Fix MEP test case
Issue 4747 - Remove unstable/unstatus tests (followup) (#4809)
Issue 4791 - Missing dependency for RetroCL RFE (#4792)
Issue 4794 - BUG - don't capture container output (#4798)
Issue 4593 - Log an additional message if the server certificate nickname doesn't match nsSSLPersonalitySSL value
Issue 4797 - ACL IP ADDRESS evaluation may corrupt c_isreplication_session connection flags (#4799)
Issue 4169 - UI Migrate checkbox to PF4 (#4769)
Issue 4447 - Crash when the Referential Integrity log is manually edited
Issue 4773 - Add CI test for DNA interval assignment
Issue 4789 - Temporary password rules are not enforce with local password policy (#4790)
Issue 4379 - fixing regression in test_info_disclosure
Issue 4379 - Allow more than 1 empty AttributeDescription for ldapsearch, without the risk of denial of service
Issue 4379 - Allow more than 1 empty AttributeDescription for ldapsearch, without the risk of denial of service
Issue 4575 Update test docstrings metadata
Issue 4753 - Adjust our tests to 389-ds-base-snmp missing in RHEL 9 Appstream
removed the snmp_present() from utils.py as we have get_rpm_version() in conftest.py
Issue 4753 - Adjust our tests to 389-ds-base-snmp missing in RHEL 9 Appstream
2021-06-24 11:20:43 +02:00
Python Maint
d1e505dec6 Rebuilt for Python 3.10 2021-06-04 19:58:51 +02:00
Mark Reynolds
4b440cd4f3 Bump version to 2.0.5
Issue 4778 - RFE - Allow setting TOD for db compaction and add task
Issue 4169 - UI - Port plugin tables to PF4
Issue 4656 - Allow backward compatilbity for replication plugin name change
Issue 4764 - replicated operation sometime checks ACI (#4783)
Issue 2820 - Fix CI test suite issues
Issue 4781 - There are some typos in man-pages
Issue 4773 - Enable interval feature of DNA plugin
Issue 4623 - RFE - Monitor the current DB locks (#4762)
Issue 3555 - Fix UI audit issue
Issue 4725 - Fix compiler warnings
Issue 4770 - Lower FIPS logging severity
Issue 4765 - database suffix unexpectdly changed from .db to .db4 (#4766)
Issue 4725 - [RFE] DS - Update the password policy to support a Temporary Password Rules (#4727)
Issue 4747 - Remove unstable/unstatus tests from PRCI (#4748)
Issue 4759 - Fix coverity issue (#4760)
Issue 4169 - UI - Migrate Buttons to PF4 (#4745)
Issue 4714 - dscontainer fails with rootless podman
Issue 4750 - Fix compiler warning in retrocl (#4751)
Issue 4742 - UI - should always use LDAPI path when calling CLI
Issue 4169 - UI - Migrate Server, Security, and Schema tables to PF4
Issue 4667 - incorrect accounting of readers in vattr rwlock (#4732)
Issue 4701 - RFE - Exclude attributes from retro changelog (#4723)
Issue 4740 - Fix CI lib389 userPwdPolicy and subtreePwdPolicy (#4741)
Issue 4711 - SIGSEV with sync_repl (#4738)
Issue 4734 - import of entry with no parent warning (#4735)
Issue 4729 - GitHub Actions fails to run pytest tests
Issue 4656 - Remove problematic language from source code
Issue 4632 - dscontainer: SyntaxWarning: "is" with a literal.
Issue 4169 - UI - migrate replication tables to PF4
Issue 4637 - ndn cache leak (#4724)
Issue 4577 - Fix ASAN flags in specfile
Issue 4169 - UI - PF4 migration - database tables
issue 4653 - refactor ldbm backend to allow replacement of BDB - phase 3e - dbscan (#4709)
2021-05-30 10:14:25 -04:00
Christian Heimes
7a744575fa Enable interval feature of DNA plugin (resolves: rhbz#1962671) 2021-05-20 16:12:01 +02:00
Pete Walter
7f1440cb1e Rebuild for ICU 69 2021-05-20 00:52:28 +01:00
Pete Walter
b7bca6f86e Rebuild for ICU 69 2021-05-19 16:43:41 +01:00
Thierry Bordaz
b8d7d0ed50 Issue 4765 - database suffix unexpectdly changed from .db to .db4 (#4766) 2021-05-19 15:04:22 +02:00
Thierry Bordaz
cf285c29b1 Bump version to 2.0.4.3
Issue 4765 - database suffix unexpectdly changed from .db to .db4 (#4766)
2021-05-19 11:08:55 +02:00
Viktor Ashirov
0b0735d132 Fix NVR 2021-05-07 10:09:32 +02:00
Simon Pichugin
a04e9ff8f7 Add Rust bundled Provides and Update License 2021-04-09 12:19:12 +02:00
Thierry Bordaz
fa350ec502 Bump version to 2.0.4
Issue 4680 - 389ds coredump (@389ds/389-ds-base-nightly) in replica install with CA (#4715)
Issue 3965 - RFE - Implement the Password Policy attribute "pwdReset" (#4713)
Issue 4700 - Regression in winsync replication agreement (#4712)
Issue 3965 - RFE - Implement the Password Policy attribute "pwdReset" (#4710)
Issue 4169 - UI - migrate monitor tables to PF4
issue 4585 - backend redesign phase 3c - dbregion test removal (#4665)
Issue 2736 - remove remaining perl references
Issue 2736 - https://github.com/389ds/389-ds-base/issues/2736
Issue 4706 - negative wtime in access log for CMP operations
Issue 3585 - LDAP server returning controltype in different sequence
Issue 4127 - With Accounts/Account module delete fuction is not working (#4697)
Issue 4666 - BUG - cb_ping_farm can fail with anonymous binds disabled (#4669)
Issue 4671 - UI - Fix browser crashes
Issue 4169 - UI - Add PF4 charts for server stats
Issue 4648 - Fix some issues and improvement around CI tests (#4651)
Issue  4654  Updates to tickets/ticket48234_test.py  (#4654)
Issue 4229 - Fix Rust linking
Issue 4673 - Update Rust crates
Issue 4658 - monitor - connection start date is incorrect
Issue 4169 - UI - migrate modals to PF4
Issue 4656 - remove problematic language from ds-replcheck
Issue 4459 - lib389 - Default paths should use dse.ldif if the server is down
Issue 4656 - Remove problematic language from UI/CLI/lib389
Issue 4661 - RFE - allow importing openldap schemas (#4662)
Issue 4659 - restart after openldap migration to enable plugins (#4660)
Merge pull request #4664 from mreynolds389/issue4663
issue 4552 - Backup Redesign phase 3b - use dbimpl in replicatin plugin (#4622)
Issue 4643 - Add a tool that generates Rust dependencies for a specfile (#4645)
Issue 4646 - CLI/UI - revise DNA plugin management
Issue 4644 - Large updates can reset the CLcache to the beginning of the changelog (#4647)
Issue 4649 - crash in sync_repl when a MODRDN create a cenotaph (#4652)
Issue 4169 - UI - Migrate alerts to PF4
Issue 4169 - UI - Migrate Accordians to PF4 ExpandableSection
Issue 4595 - Paged search lookthroughlimit bug (#4602)
Issue 4169 - UI - port charts to PF4
Issue 2820 - Fix CI test suite issues
Issue 4513 - CI - make acl ip address tests more robust
2021-04-08 18:50:11 +02:00
Zbigniew Jędrzejewski-Szmek
94b5c174c1 Rebuilt for updated systemd-rpm-macros
See https://pagure.io/fesco/issue/2583.
2021-03-02 16:14:14 +01:00
Alexander Bokovoy
d593e73a4a Remove a revert of the fix for Issue 4609
- CVE - info disclosure when authenticating(breaks Dogtag)
- Dogtag has fixed own code that failed in the presence of the fix for Issue 4609
2021-02-26 21:21:00 +02:00
Mark Reynolds
cbe869776a Bump version to 2.0.3-2
Revert Issue 4609 - CVE - info disclosure when authenticating(breaks DogTag)
2021-02-26 21:21:00 +02:00
Mark Reynolds
5a5753301e Bump version to 2.0.3
Issue 4619 - remove pytest requirement from lib389
Issue 4615 - log message when psearch first exceeds max threads per conn
Issue 4469 - Backend redesing phase 3a - implement dbimpl API and use it in back-ldbm (#4618)
Issue 4324 - Some architectures the cache line size file does not exist
Issue 4593 - RFE - Print help when nsSSLPersonalitySSL is not found (#4614)
Issue 4469 - Backend redesign phase 3a - bdb dependency removal from back-ldbm
PR 4564 - Update dscontainer
Issue 4149 - UI - port TreeView and opther components to PF4
Issue 4577 - Add GitHub actions
Issue 4591 - RFE - improve openldap_to_ds help and features (#4607)
issue 4612 - Fix pytest fourwaymmr_test for non root user (#4613)
Issue 4609 - CVE - info disclosure when authenticating
Issue 4348 - Add tests for dsidm
Issue 4571 - Stale libdb-utils dependency
Issue 4600 - performance modify rate: reduce lock contention on the object extension factory (#4601)
Issue 4577 - Add GitHub actions
Issue 4588 - BUG - unable to compile without xcrypt (#4589)
Issue 4579 - libasan detects heap-use-after-free in URP test (#4584)
Issue 4581 - A failed re-indexing leaves the database in broken state (#4582)
Issue 4348 - Add tests for dsidm
Issue 4577 - Add GitHub actions
Issue 4563 - Failure on s390x: 'Fails to split RDN "o=pki-tomcat-CA" into components' (#4573)
Issue 4093 - fix compiler warnings and update doxygen
Issue 4575 - Update test docstrings metadata
Issue 4526 - sync_repl: when completing an operation in the pending list, it can select the wrong operation (#4553)
Issue 4324 - Performance search rate: change entry cache monitor to recursive pthread mutex (#4569)
Issue 4513 - Add DS version check to SSL version test (#4570)
Issue 5442 - Search results are different between RHDS10 and RHDS11
Issue 4396 - Minor memory leak in backend (#4558)
Issue 4513 - Fix replication CI test failures (#4557)
Issue 4513 - Fix replication CI test failures (#4557)
Issue 4153 - Added a CI test (#4556)
Issue 4506 - BUG - fix oob alloc for fds (#4555)
Issue 4548 - CLI - dsconf needs better root DN access control plugin validation
Issue 4506 - Temporary fix for io issues (#4516)
Issue 4535 - lib389 - Fix log function in backends.py
Issue 4534 - libasan read buffer overflow in filtercmp (#4541)
Issue 4544 - Compiler warnings on krb5 functions (#4545)
Update rpm.mk for RUST tarballs
2021-02-26 21:21:00 +02:00
Fedora Release Engineering
f841ce7ce5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-01-25 22:12:41 +00:00
Mark Reynolds
a5985f5eb8 Bump version to 2.0.2
Issue 4539 - BUG - no such file if no overlays in openldap during migration (#4540)
Issue 4528 - Fix cn=monitor SCOPE_ONE search (#4529)
Issue 4535 - lib389 - healthcheck throws exception if backend is not replicated
Issue 4537 - Use KRB5_CLIENT_KTNAME for client keytabs (#4523)
Issue 4513 - CI Tests - fix test failures
Issue 4504 - insure that repl_monitor_test use ldapi (for RHEL) - fix merge issue (#4533)
Issue 4315 - performance search rate: nagle triggers high rate of setsocketopt
Issue 4504 - pytest test_dsconf_replication_monitor fails on RHEL - Fix merging issue (#4530)
Issue 4504 - Insure ldapi is enabled in repl_monitor_test.py (Needed on RHEL) (#4527)
Issue 4506 - BUG - Fix bounds on fd table population (#4520)
Issue 4521 - DS crash in deref plugin if dereferenced entry exists but is not returned by internal search (#4525)
Issue 4219 - Log internal unindexed searches (notes=A)
Issue 4384 - Separate eventq into REALTIME and MONOTONIC
Issue 4381 - RFE - LDAPI authentication DN rewritter
Issue 4513 - Fix schema test and lib389 task module (#4514)
Issue 4414 - disk monitoring - prevent division by zero crash
Issue 4517 - BUG: Multiple systemd pin warnings (#4518)
Issue 4507 - Improve csngen testing task (#4508)
Issue 4498 - BUG - entryuuid replication may not work (#4503)
Issue 4480 - Unexpected info returned to ldap request (#4491)
Issue 4504 - Fix pytest test_dsconf_replication_monitor (#4505)
Issue 4373 - BUG - one line cleanup, free results in mt if ent 0 (#4502)
Issue 4500 - Add cockpit enabling to dsctl
Issue 4272 - RFE - add support for gost-yescrypt for hashing passwords (#4497)
Issue 1795 - RFE - Enable logging for libldap and libber in error log (#4481)
Issue 3522 - Remove DES to AES conversion code
Issue 4492 - Changelog cache can upload updates from a wrong starting point (CSN) (#4493)
Issue 4373 - BUG - calloc of size 0 in MT build (#4496)
Issue 4483 - heap-use-after-free in slapi_be_getsuffix
Issue 4486 - Remove random ldif file generation from import test (#4487)
Issue 4224 - cleanup specfile after libsds removal
Issue 4421 - Unable to build with Rust enabled in closed environment
Issue 4489 - Remove return statement from a void function (#4490)
Issue 4229 - RFE - Improve rust linking and build performance (#4474)
Issue 4224 - openldap can become confused with entryuuid
Issue 4313 - improve tests and improve readme re refdel
Issue 4313 - fix potential syncrepl data corruption
Issue 4419 - Warn users of skipped entries during ldif2db online import (#4476)
Issue 4243 - Fix test (4th): SyncRepl plugin provides a wrong (#4475)
Issue 4315 - performance search rate: nagle triggers high rate of setsocketopt (#4437)
Issue 4460 - BUG - add machine name to subject alt names in SSCA (#4472)
Issue 4446 - RFE - openldap password hashers
Issue 4284 - dsidm fails to delete an organizationalUnit entry
Issue 4243 - Fix test: SyncRepl plugin provides a wrong cookie (#4466) (#4466)
Issue 4464 - RFE - clang with ds+asan+rust
Issue 4105 - Remove python.six (fix regression)
Issue 4384 - Use MONOTONIC clock for all timing events and conditions
Issue 4418 - ldif2db - offline. Warn the user of skipped entries
Issue 4243 - Fix test: SyncRepl plugin provides a wrong cookie (#4467)
Issue 4460 - BUG  - lib389 should use system tls policy
Issue 3657 - Add options to dsctl for dsrc file
Issue 4454 - RFE - fix version numbers to allow object caching
Issue 3986 - UI - Handle objectclasses that do not have X-ORIGIN set
Issue 4297 - 2nd fix for on ADD replication URP issue internal searches with filter containing unescaped chars (#4439)
Issue 4112 - Added a CI test (#4441)
Issue 4449 - dsconf replication monitor fails to retrieve database RUV - consumer (Unavailable) (#4451)
Issue 4105 - Remove python.six from lib389 (#4456)
Issue 4440 - BUG - ldifgen with --start-idx option fails with unsupported operand (#4444)
Issue 4410 - RFE - ndn cache with arc in rust
Issue 4373 - BUG - Mapping Tree nodes can be created that are invalid
Issue 4428 - BUG Paged Results with critical false causes sigsegv in chaining
Issue 4428 - Paged Results with Chaining Test Case
Issue 2054 - do not add referrals for masters with different data generation
Issue 4383 - Do not normalize escaped spaces in a DN
Issue 4432 - After a failed online import the next imports are very slow
Issue 4316 - performance search rate: useless poll on network send callback (#4424)
Issue 4281 - dsidm user status fails with Error: 'nsUserAccount' object has no attribute 'is_locked'
Issue 4429 - NULL dereference in revert_cache()
Issue 4412 - Fix CLI repl-agmt requirement for parameters (#4422)
Issue 4407 - RFE - remove http client and presence plugin (#4409)
Issue 4398 - build problems at alpine linux
Issue 4415 - unable to query schema if there are extra parenthesis
2021-01-14 16:42:31 -05:00
Tom Stellard
e0d848b767 Add BuildRequires: make
https://fedoraproject.org/wiki/Changes/Remove_make_from_BuildRoot
2020-12-15 01:01:35 +00:00
Mark Reynolds
ded5ac3473 Bump version to 2.0.1
Issue 4420 - change NVR to use X.X.X instead of X.X.X.X
Issue 4391 - DSE config modify does not call be_postop (#4394)
Issue 4218 - Verify the new wtime and optime access log keywords (#4397)
Issue 4176 - CL trimming causes high CPU
Issue 2058 - Add keep alive entry after on-line initialization - second version (#4399)
Issue 4403 - RFE - OpenLDAP pw hash migration tests (#4408)
2020-11-03 14:08:49 -05:00
Mark Reynolds
d9f3efb8f9 Bump version to 1.4.5.0
Issue 2526 - revert backend validation check
Issue 4262 - more perl removal cleanup
Issue 2526 - retrocl backend created out of order
2020-10-28 12:42:10 -04:00
Mark Reynolds
aa29d088bc Bump version to 1.4.5.0
Issue 2526 - revert backend validation check
Issue 4262 - more perl removal cleanup
Issue 2526 - retrocl backend created out of order
2020-10-28 12:41:33 -04:00
Adam Williamson
6c4e197d98 Backport fix for Issue 2526 - retrocl backend created out of order 2020-10-27 16:18:54 -07:00
Mark Reynolds
1aab708f1c Bump version to 1.4.4.6
Issue 4262 - Remove legacy tools subpackage (final cleanup)
Issue 4262 - Remove legacy tools subpackage (restart instances after rpm install)
Issue 4262 - Remove legacy tools subpackage
Issue 2526 - revert API change in slapi_be_getsuffix()
Issue 4363 - Sync repl: per thread structure was incorrectly initialized (#4395)
Issue 4392 - Update create_test.py
Issue 2820 - Fix CI tests (#4365)
Issue 2526 - suffix management in backends incorrect
Issue 4389 - errors log with incorrectly formatted message parent_update_on_childchange
Issue 4295 - Fix a closing quote issue (#4386)
Issue 1199 - Misleading message in access log for idle timeout (#4385)
Issue 3600 - RFE - openldap migration tooling (#4318)
Issue 4176 - import ldif2cl task should not close all changelogs
Issue 4159 - Healthcheck code DSBLE0002 not returned on disabled suffix
Issue 4379 - allow more than 1 empty AttributeDescription for ldapsearch, without the risk of denial of service (#4380)
Issue 4329 - Sync repl - if a serie of updates target the same entry then the cookie get wrong changenumber (#4356)
Issue 3555 - Fix npm audit issues (#4370)
Issue 4372 - BUG - Chaining DB did not validate bind mech parameters (#4374)
Issue 4334 - RFE - Task timeout may cause larger dataset imports to fail (#4359)
Issue 4361 - RFE - add - dscreate --advanced flag to avoid user confusion
Issue 4368 - ds-replcheck crashes when processing glue entries
Issue 4366 - lib389 - Fix account status inactivity checks
Issue 4265 - UI - Make the secondary plugins read-only (#4364)
Issue 4360 - password policy max sequence sets is not working as expected
Issue 4348 - Add tests for dsidm
Issue 4350 - One line, fix invalid type error in tls_cacertdir check (#4358)
2020-10-26 17:06:43 -04:00
Zbigniew Jędrzejewski-Szmek
4c8bec71a8 Rebuilt for libevent 2.1.12 (#2)
See https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/QOQW2BJBYMTIEUQIAYVEIX2L5IIOHDZL/
2020-09-29 22:52:45 +02:00
Zbigniew Jędrzejewski-Szmek
d0f06efd68 Rebuilt for libevent 2.1.12
See https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/QOQW2BJBYMTIEUQIAYVEIX2L5IIOHDZL/
2020-09-29 20:25:49 +02:00
Josef Řídký
38cce89794 Rebuilt for new net-snmp release 2020-08-27 14:12:00 +02:00
Fedora Release Engineering
598927ac1b - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-07-27 10:09:46 +00:00
Mark Reynolds
75facac545 Bump version to 1.4.4.4
Issue 51175 - resolve plugin name leaking
Issue 51187 - UI - stop importing Cockpit's PF css
Issue 51192 - Add option to reject internal unindexed searches
Issue 50840 - Fix test docstrings metadata-1
Issue 50840 - Fix test docstrings metadata
Issue 50980 - fix foo_filter_rewrite
Issue 51165 - add more logconv stats for the new access log keywords
Issue 50928 - Unable to create a suffix with countryName either via dscreate or the admin console
Issue 51188 - db2ldif crashes when LDIF file can't be accessed
Issue 50545 - Port remaining legacy tools to new python CLI
Issue 51165 - add new access log keywords for wtime and optime
Issue 49761 - Fix CI test suite issues ( Port remaning acceptance test suit part 1)
Issue 51070 - Port Import TET module to python3 part2
Issue 51142 - Port manage Entry TET suit to python 3 part 1
Issue 50860 - Port Password Policy test cases from TET to python3 final
Issue 50696 - Fix Allowed and Denied Ciphers lists - WebUI
Issue 51169 - UI - attr uniqueness - selecting empty subtree crashes cockpit
Issue 49256 - log warning when thread number is very different from autotuned value
Issue 51157 - Reindex task may create abandoned index file
Issue 50873 - Fix issues with healthcheck tool
Issue 50860 - Port Password Policy test cases from TET to python3 part2
Issue 51166 - Log an error when a search is fully unindexed
Issue 50544 - OpenLDAP syncrepl compatability
Issue 51161 - fix SLE15.2 install issps
Issue 49999 - rpm.mk build-cockpit should clean cockpit_dist first
Issue 51144 - dsctl fails with instance names that contain slapd-
Issue 51155 - Fix OID for sambaConfig objectclass
Issue 51159 - dsidm ou delete fails
Issue 50984 - Memory leaks in disk monitoring
Issue 51131 - improve mutex alloc in conntable
Issue 49761 - Fix CI tests
Issue 49859 - A distinguished value can be missing in an entry
Issue 50791 - Healthcheck should look for notes=A/F in access log
Issue 51072 - Set the default minimum worker threads
Issue 51140 - missing ifdef
Issue 50912 - pwdReset can be modified by a user
Issue 50781 - Make building cockpit plugin optional
Issue 51100 - Correct numSubordinates value for cn=monitor
Issue 51136 - dsctl and dsidm do not errors correctly when using JSON
Issue 137 - fix compiler warning
Issue 50781 - Make building cockpit plugin optional
Issue 51132 - Winsync setting winSyncWindowsFilter not working as expected
Issue 51034 - labeledURIObject
Issue 50545 - Port remaining legacy tools to new python CLI
Issue 50889 - Extract pem files into a private namespace
Issue 137 - Implement EntryUUID plugin
Issue 51072 - improve autotune defaults
Issue 51115 - enable samba3.ldif by default
Issue 51118 - UI - improve modal validation when creating an instance
Issue 50746 - Add option to healthcheck to list all the lint reports
2020-07-08 17:26:26 -04:00
Jitka Plesnikova
4e54c25b29 Perl 5.32 rebuild 2020-06-22 19:32:08 +02:00
Mark Reynolds
08950f906b Bump version to 1.4.4.3
Issue 50931 - RFE AD filter rewriter for ObjectCategory
Issue 50860 - Port Password Policy test cases from TET to python3 part1
Issue 51113 - Allow using uid for replication manager entry
Issue 51095 - abort operation if CSN can not be generated
Issue 51110 - Fix ASAN ODR warnings
Issue 49850 - ldbm_get_nonleaf_ids() painfully slow for databases with many non-leaf entries
Issue 51102 - RFE - ds-replcheck - make online timeout configurable
Issue 51076 - remove unnecessary slapi entry dups
Issue 51086 - Improve dscreate instance name validation
Issue:51070 - Port Import TET module to python3 part1
Issue 51037 - compiler warning
Issue 50989 - ignore pid when it is ourself in protect_db
Issue 51037 - RFE AD filter rewriter for ObjectSID
Issue 50499 - Fix some npm audit issues
Issue 51091 - healthcheck json report fails when mapping tree is deleted
Issue 51079 - container pid start and stop issues
Issue 49761 - Fix CI tests
Issue 50610 - Fix return code when it's nothing to free
Issue 50610 - memory leaks in dbscan and changelog encryption
Issue 51076 - prevent unnecessarily duplication of the target entry
Issue 50940 - Permissions of some shipped directories may change over time
Issue 50873 - Fix issues with healthcheck tool
Issue 51082 - abort when a empty valueset is freed
Issue 50201 - nsIndexIDListScanLimit accepts any value
2020-05-29 17:00:45 -04:00
Miro Hrončok
d387fb1d39 Rebuilt for Python 3.9 2020-05-26 02:39:17 +02:00
Pete Walter
c317fa7b0f Rebuild for ICU 67 2020-05-15 13:51:34 +01:00
Mark Reynolds
1d3c66fe0f Bump version to 1.4.4.2
Issue 51078 - Add nsslapd-enable-upgrade-hash to the schema
Issue 51054 - Revise ACI target syntax checking
Issue 51068 - deadlock when updating the schema
Issue 51042 - try to use both c_rehash and openssl rehash
Issue 51042 - switch from c_rehash to openssl rehash
Issue 50992 - Bump jemalloc version and enable profiling
Issue 51060 - unable to set sslVersionMin to TLS1.0
Issue 51064 - Unable to install server where IPv6 is disabled
Issue 51051 - CLI fix consistency issues with confirmations
Issue 50655 - etime displayed has an order of magnitude 10 times smaller than it should be
Issue 49731 - undo db_home_dir under /dev/shm/dirsrv for now
Issue 51054 - AddressSanitizer: heap-buffer-overflow in ldap_utf8prev
Issue 49761 - Fix CI tests
Issue 51047 - React deprecating ComponentWillMount
Issue 50499 - fix npm audit issues
Issue 50545 - Port dbgen.pl to dsctl
Issue 51027 - Test passwordHistory is not rewritten on a fail attempt
2020-05-08 15:43:30 -04:00
Mark Reynolds
503b23f046 Bump version to 1.4.4.1
Issue 51024 - syncrepl_entry callback does not contain attributes added by postoperation plugins
Issue 50877 - task to run tests of csn generator
Issue 49731 - undo db_home_dir under /dev/shm/dirsrv for now
Issue 48055 - CI test - automember_plugin(part3)
Issue 51035 - Heavy StartTLS connection load can randomly fail with err=1
Issue 51031 - UI - transition between two instances needs improvement
2020-04-22 14:47:38 -04:00
Mark Reynolds
bfdd824452 Bump version to 1.4.4.0
Issue 50933 - 10rfc2307compat.ldif is not ready to be used by default
Issue 50931 - RFE AD filter rewriter for ObjectCategory
Issue 51016 - Fix memory leaks in changelog5_init and perfctrs_init
Issue 50980 - RFE extend usability for slapi_compute_add_search_rewriter and slapi_compute_add_evaluator
Issue 51008 - dbhome in containers
Issue 50875 - Refactor passwordUserAttributes's and passwordBadWords's code
Issue 51014 - slapi_pal.c possible static buffer overflow
Issue 50545 - remove dbmon "incr" option from arg parser
Issue 50545 - Port dbmon.sh to dsconf
Issue 51005 - AttributeUniqueness plugin's DN parameter should not have a default value
Issue 49731 - Fix additional issues with setting db home directory by default
Issue 50337 - Replace exec() with setattr()
Issue 50905 - intermittent SSL hang with rhds
Issue 50952 - SSCA lacks basicConstraint:CA
Issue 50640 - Database links: get_monitor() takes 1 positional argument but 2 were given
Issue 50869 - Setting nsslapd-allowed-sasl-mechanisms truncates the value
2020-04-16 13:33:52 -04:00
Mark Reynolds
a0a8d33632 Bump version to 1.4.3.5
Issue 50994 - Fix latest UI bugs found by QE
Issue 50933 - rfc2307compat.ldif
Issue 50337 - Replace exec() with setattr()
Issue 50984 - Memory leaks in disk monitoring
Issue 50984 - Memory leaks in disk monitoring
Issue 49731 - dscreate fails in silent mode because of db_home_dir
Issue 50975 - Revise UI branding with new minimized build
Issue 49437 - Fix memory leak with indirect COS
Issue 49731 - Do not add db_home_dir to template-dse.ldif
Issue 49731 - set and use db_home_directory by default
Issue 50971 - fix BSD_SOURCE
Issue 50744 - -n option of dbverify does not work
Issue 50952 - SSCA lacks basicConstraint:CA
Issue 50976 - Clean up Web UI source directory from unused files
Issue 50955 - Fix memory leaks in chaining plugin(part 2)
Issue 50966 - UI - Database indexes not using typeAhead correctly
Issue 50974 - UI - wrong title in "Delete Suffix" popup
Issue 50972 - Fix cockpit plugin build
Issue 49761 - Fix CI test suite issues
Issue 50971 - Support building on FreeBSD.
Issue 50960 - [RFE] Advance options in RHDS Disk Monitoring Framework
Issue 50800 - wildcards in rootdn-allow-ip attribute are not accepted
Issue 50963 - We should bundle *.min.js files of Console
Issue 50860 - Port Password Policy test cases from TET to python3 Password grace limit section.
Issue 50860 - Port Password Policy test cases from TET to python3 series of bugs Port final
Issue 50954 - buildnum.py - fix date formatting issue
2020-04-01 13:00:23 -04:00
Mark Reynolds
5a6ac14eb5 Bump version to 1.4.3.4
Issue 50954 - Port buildnum.pl to python(part 2)
Issue 50955 - Fix memory leaks in chaining plugin
Issue 50954 - Port buildnum.pl to python
Issue 50947 - change 00core.ldif objectClasses for openldap migration
Issue 50755 - setting nsslapd-db-home-directory is overriding db_directory
Issue 50937 - Update CLI for new backend split configuration
Issue 50860 - Port Password Policy test cases from TET to python3 pwp.sh
Issue 50945 - givenname alias of gn from openldap
Issue 50935 - systemd override in lib389 for dscontainer
Issue 50499 - Fix npm audit issues
Issue 49761 - Fix CI test suite issues
Issue 50618 - clean compiler warning and log level
Issue 50889 - fix compiler issues
Issue 50884 - Health check tool DSEldif check fails
Issue 50926 - Remove dual spinner and other UI fixes
Issue 50928 - Unable to create a suffix with countryName
Issue 50758 - Only Recommend bash-completion, not Require
Issue 50923 - Fix a test regression
Issue 50904 - Connect All React Components And Refactor the Main Navigation Tab Code
Issue 50920 - cl-dump exit code is 0 even if command fails with invalid arguments
Issue 50923 - Add test - dsctl fails to remove instances with dashes in the name
Issue 50919 - Backend delete fails using dsconf
Issue 50872 - dsconf can't create GSSAPI replication agreements
Issue 50912 - RFE - add password policy attribute pwdReset
Issue 50914 - No error returned when adding an entry matching filters for a non existing automember group
Issue 50889 - Extract pem files into a private namespace
Issue 50909 - nsDS5ReplicaId cant be set to the old value it had before
Issue 50686 - Port fractional replication test cases from TET to python3 final
Issue 49845 - Remove pkgconfig check for libasan
Issue:50860 - Port Password Policy test cases from TET to python3 bug624080
Issue:50860 - Port Password Policy test cases from TET to python3 series of bugs
Issue 50786 - connection table freelist
Issue 50618 - support cgroupv2
Issue 50900 - Fix cargo offline build
Issue 50898 - ldclt core dumped when run with -e genldif option
2020-03-16 11:37:36 -04:00
Matus Honek
5b3e513fa1 Bring back the necessary c_rehash util
Resolves: #1803370
(cherry picked from commit 6befc19988)
2020-02-17 14:45:48 +01:00
Mark Reynolds
a253fc7e96 Bump version to 1.4.3.3-2
Remove unneeded perl dependencies
Change bash-completion to "Recommends" instead of "Requires"
2020-02-14 13:30:39 -05:00
Mark Reynolds
4bfede7213 Bump version to 1.4.3.3
Bump version to 1.4.3.3
Issue 50855 - remove unused file from UI
Issue 50855 - UI: Port Server Tab to React
Issue 49845 - README does not contain complete information on building
Issue 50686 - Port fractional replication test cases from TET to python3 part 1
Issue 49623 - cont cenotaph errors on modrdn operations
Issue 50882 - Fix healthcheck errors for instances that do not have TLS enabled
Issue 50886 - Typo in the replication debug message
Issue 50873 - Fix healthcheck and virtual attr check
Issue 50873 - Fix issues with healthcheck tool
Issue 50028 - Add a new CI test case
Issue 49946 - Add a new CI test case
Issue 50117 - Add a new CI test case
Issue 50787 - fix implementation of attr unique
Issue 50859 - support running only with ldaps socket
Issue 50823 - dsctl doesn't work with 'slapd-' in the instance name
Issue 49624 - cont - DB Deadlock on modrdn appears to corrupt database and entry cache
Issue 50867 - Fix minor buildsys issues
Issue 50737 - Allow building with rust online without vendoring
Issue 50831 - add cargo.lock to allow offline builds
Issue 50694 - import PEM certs on startup
Issue 50857 - Memory leak in ACI using IP subject
Issue 49761 - Fix CI test suite issues
Issue 50853 - Fix NULL pointer deref in config setting
Issue 50850 - Fix dsctl healthcheck for python36
Issue 49990 - Need to enforce a hard maximum limit for file descriptors
Issue 48707 - ldapssotoken for authentication
2020-02-13 16:52:19 -05:00
Fedora Release Engineering
fc53d8e065 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-01-28 09:07:21 +00:00
Viktor Ashirov
5b5bb920d2 Issue 50680 - Remove branding from upstream spec file 2020-01-27 21:56:25 +01:00
Mark Reynolds
00c5c5cf49 Bump version to 1.4.3.2
Issue 49254 - Fix compiler failures and warnings
Issue 50741 - cont bdb_start - Detected Disorderly Shutdown
Issue 50836 - Port Schema UI tab to React
Issue 50842 - Decrease 389-console Cockpit component size
Issue 50790 - Add result text when filter is invalid
Issue 50627 - Add ASAN logs to HTML report
Issue 50834 - Incorrectly setting the NSS default SSL version max
Issue 50829 - Disk monitoring rotated log cleanup causes heap-use-after-free
Issue 50709 - (cont) Several memory leaks reported by Valgrind for 389-ds 1.3.9.1-10
Issue 50784 - performance testing scripts
Issue 50599 - Fix memory leak when removing db region files
Issue 49395 - Set the default TLS version min to TLS1.2
Issue 50818 - dsconf pwdpolicy get error
Issue 50824 - dsctl remove fails with "name 'ensure_str' is not defined"
Issue 50599 - Remove db region files prior to db recovery
Issue 50812 - dscontainer executable should be placed under /usr/libexec/dirsrv/
Issue 50816 - dsconf allows the root password to be set to nothing
Issue 50798 - incorrect bytes in format string(fix import issue)
2020-01-23 15:28:50 -05:00
Adam Williamson
a2478bfa8c Backport two more fixes from upstream
Signed-off-by: Adam Williamson <awilliam@redhat.com>
2020-01-16 20:50:47 +00:00
Adam Williamson
604ea19cf8 Add patch file for last commit
Yes, I missed a bit from a patch to fix a missing bit, I am
aware of the irony
2020-01-16 00:02:14 +00:00
Adam Williamson
e9b229a7e8 Backport 828aad0 to fix missing imports from 1.4.3.1 2020-01-16 00:01:04 +00:00
Mark Reynolds
6f9c53b048 Bump version to 1.4.3.1
Issue 50798 - incorrect bytes in format string
Issue 50545 - Add the new replication monitor functionality to UI
Issue 50806 - Fix minor issues in lib389 health checks
Issue 50690 - Port Password Storage test cases from TET to python3 part 1
Issue 49761 - Fix CI test suite issues
Issue 49761 - Fix CI test suite issues
Issue 50754 - Add Restore Change Log option to CLI
Issue 48055 - CI test - automember_plugin(part2)
Issue 50667 - dsctl -l did not respect PREFIX
Issue 50780 - More CLI fixes
Issue 50649 - lib389 without defaults.inf
Issue 50780 - Fix UI issues
Issue 50727 - correct mistaken options in filter validation patch
Issue 50779 - lib389 - conflict compare fails for DN's with spaces
Set branch version to 1.4.3.0
2020-01-13 15:44:12 -05:00
Matus Honek
caf81c2e0a Bump version to 1.4.2.5-3
Fix python-argcomplete tinkering, since the call to the command alters a file
owned by python-argcomplete, and which turns out to be unnecessary.

Resolves: #1781131
2019-12-09 17:15:46 +01:00
Mark Reynolds
192716709d Bump version to 1.4.2.5-2
Fix specfile typo (bash-completion)
2019-12-06 17:53:54 -05:00
Mark Reynolds
7d09a11c1e Fix specfile dependancy for setuptools 2019-12-06 16:20:37 -05:00
Mark Reynolds
903ed99222 Bump version to 1.4.2.5
Issue 50747 - Port readnsstate to dsctl
Issue 50758 - Enable CLI arg completion
Issue 50753 - Dumping the changelog to a file doesn't work
Issue 50745 - ns-slapd hangs during CleanAllRUV tests
Issue 50734 - lib389 creates non-SSCA cert DBs with misleading README.txt
Issue 48851 - investigate and port TET matching rules filter tests(cert)
Issue 50443 - Create a module in lib389 to Convert a byte sequence to a properly escaped for LDAP
Issue 50664 - DS can fail to recover if an empty directory exists in db
Issue 50736 - RetroCL trimming may crash at shutdown if trimming configuration is invalid
Issue 50741 - bdb_start - Detected Disorderly Shutdown last time Directory Server was running
Issue 50572 - After running cl-dump dbdir/cldb/*ldif.done are not deleted
Issue 50701 - Fix type in lint report
Issue 50729 - add support for gssapi tests on suse
Issue 50701 - Add additional healthchecks to dsconf
Issue 50711 - `dsconf security` lacks option for setting nsTLSAllowClientRenegotiation attribute
Issue 50439 - Update docker integration for Fedora
Issue 48851 - Investigate and port TET matching rules filter tests(last test cases for match)
Issue 50499 - Fix npm audit issues
Issue 50722 - Test IDs are not unique
Issue 50712 - Version comparison doesn't work correctly on git builds
Issue 50499 - Fix npm audit issues
Issue 50706 - Missing lib389 dependency - packaging
2019-12-06 16:09:15 -05:00
Mark Reynolds
6866f017fd Bump version to 1.4.2.4-2
Fix specfile dependancy issue
2019-11-15 09:06:51 -05:00
Mark Reynolds
2c436d3ed9 Bump version to 1.4.2.4
Issue 50634 - Fix CLI error parsing for non-string values
Issue 50659 - AddressSanitizer: SEGV ... in bdb_pre_close
Issue 50716 - CVE-2019-14824 (BZ#1748199) - deref plugin displays restricted attributes
Issue 50644 - fix regression with creating sample entries
Issue 50699 - Add Disk Monitor to CLI and UI
Issue 50716 - CVE-2019-14824 (BZ#1748199) - deref plugin displays restricted attributes
Issue 50536 - After audit log file is rotated, DS version string is logged after each update
Issue 50712 - Version comparison doesn't work correctly on git builds
Issue 50706 - Missing lib389 dependency - packaging
Issue 49761 - Fix CI test suite issues
Issue 50683 - Makefile.am contains unused RPM-related targets
Issue 50696 - Fix various UI bugs
Issue 50641 - Update default aci to allows users to change their own password
Issue 50007, 50648 - improve x509 handling in dsctl
Issue 50689 - Failed db restore task does not report an error
Issue 50199 - Disable perl by default
Issue 50633 - Add cargo vendor support for offline builds
Issue 50499 - Fix npm audit issues
2019-11-14 12:28:14 -05:00
Mark Reynolds
6d34b170e7 Bump version to 1.4.2.3
Issue 50592 - Port Replication Tab to ReactJS
Issue 50680 - Remove branding from upstream spec file
Issue 50669 - Remove nunc-stans in favour of reworking current conn code (add.)
Issue 48055 - CI test - automember_plugin(part1)
Issue 50677 - Map subtree searches with NULL base to default naming context
Issue 50669 - Fix RPM build
Issue 50669 - remove nunc-stans
Issue 49850 - cont -fix crash in ldbm_non_leaf
Issue 50634 - Clean up CLI errors output - Fix wrong exception
Issue 50660 - Build failure on Fedora 31
Issue 50634 - Clean up CLI errors output
Issue 48851 - Investigate and port TET matching rules filter tests(match more test cases)
Issue 50428 - Log the actual base DN when the search fails with "invalid attribute request"
Issue 49850 -  ldbm_get_nonleaf_ids() slow for databases with many non-leaf entries
Issue 50655 - access log etime is not properly formatted
Issue 50653 -  objectclass parsing fails to log error message text
Issue 50646 - Improve task handling during shutdowns
Issue 50627 - Support platforms without pytest_html
Issue 49476 - backend refactoring phase1, fix failing tests
Issue 49476 - refactor ldbm backend to allow replacement of BDB
Issue 50349 - additional fix: filter schema check must handle subtypes
Issue 48851 - investigate and port TET matching rules filter tests(indexing more test cases)
Issue 50638 - RecursionError: maximum recursion depth exceeded while calling a Python object
Issue 50636 - Crash during sasl bind
Issue 50632 - Add ensure attr state so that diffs are easier from 389-ds-portal
Issue 50619 - extend commands to have more modify options
Issue 50499 - Fix npm audit issues
2019-11-03 23:11:00 -05:00
Mark Reynolds
6a8b7353f8 Bump version to 1.4.2.3
Issue 50592 - Port Replication Tab to ReactJS
Issue 50680 - Remove branding from upstream spec file
Issue 50669 - Remove nunc-stans in favour of reworking current conn code (add.)
Issue 48055 - CI test - automember_plugin(part1)
Issue 50677 - Map subtree searches with NULL base to default naming context
Issue 50669 - Fix RPM build
Issue 50669 - remove nunc-stans
Issue 49850 - cont -fix crash in ldbm_non_leaf
Issue 50634 - Clean up CLI errors output - Fix wrong exception
Issue 50660 - Build failure on Fedora 31
Issue 50634 - Clean up CLI errors output
Issue 48851 - Investigate and port TET matching rules filter tests(match more test cases)
Issue 50428 - Log the actual base DN when the search fails with "invalid attribute request"
Issue 49850 -  ldbm_get_nonleaf_ids() slow for databases with many non-leaf entries
Issue 50655 - access log etime is not properly formatted
Issue 50653 -  objectclass parsing fails to log error message text
Issue 50646 - Improve task handling during shutdowns
Issue 50627 - Support platforms without pytest_html
Issue 49476 - backend refactoring phase1, fix failing tests
Issue 49476 - refactor ldbm backend to allow replacement of BDB
Issue 50349 - additional fix: filter schema check must handle subtypes
Issue 48851 - investigate and port TET matching rules filter tests(indexing more test cases)
Issue 50638 - RecursionError: maximum recursion depth exceeded while calling a Python object
Issue 50636 - Crash during sasl bind
Issue 50632 - Add ensure attr state so that diffs are easier from 389-ds-portal
Issue 50619 - extend commands to have more modify options
Issue 50499 - Fix npm audit issues
2019-11-03 22:56:15 -05:00
Pete Walter
da5ea9650a Rebuild for ICU 65 2019-11-01 16:04:40 +00:00
Mark Reynolds
96fbb6a09a Bump version to 1.4.2.2-3
Address perl provides and requires filter
2019-09-27 18:19:10 -04:00
Mark Reynolds
abbe7a9773 Revert perl filter 2019-09-26 12:12:54 -04:00
Mark Reynolds
268a9b9874 Bump version to 1.4.2.2
Issue 50627 - Add ASAN logs to HTML report
Issue 50545 - Port repl-monitor.pl to lib389 CLI
Issue 50622 - ds_selinux_enabled may crash on suse
Issue 50595 - remove syslog.target requirement
Issue 50617 - disable cargo lock
Issue 50620 - Fix regressions from 50506 (slapi_enry_attr_get_ref)
Issue 50615 - Log current test name to journald
Issue 50610 - memory leak in dbscan
2019-09-26 09:57:14 -04:00
Mark Reynolds
c4f9e6d27d Fix version number 2019-09-17 11:37:16 -04:00
Mark Reynolds
f8998184da Fix spec file typo 2019-09-17 11:32:30 -04:00
Mark Reynolds
7b42b230e4 * Mon Aug 19 2019 Miro Hrončok <mhroncok@redhat.com> 1.4.1.6-1.2
Rebuilt for Python 3.8
Bump version to 1.4.2.1
Issue 50581 - ns-slapd crashes during ldapi search
Issue 50604 - Fix UI validation
Issue 50510 - etime can contain invalid nanosecond value
Issue 50593 - Investigate URP handling on standalone instance
Issue 50506 - Fix regression for relication stripattrs
Issue 50580 - Perl can't be disabled in configure
Issue 50584, 49212 - docker healthcheck and configuration
Issue 50546 - fix more UI issues(part 2)
Do not use comparision with "is" for empty value
Issue 50546 - fix more UI issues
Issue 50586 - lib389 - Fix DSEldif long line processing
Issue 50173 - Add the validate-syntax task to the dsconf schema
Issue 50546 - Fix various issues in UI
Bump version to 1.4.2.0
Issue 50576 - Same proc uid/gid maps to rootdn for ldapi sasl
Issue 50567, 50568 - strict host check disable and display container version
Issue 50550 - DS installer debug messages leaking to ipa-server-install
Issue 50545 - Port fixup-memberuid and add the functionality to CLI and UI
Issue 50572 - After running cl-dump dbdir/cldb/*ldif.done are not deleted
Issue 50578 - Add SKIP_AUDIT_CI flag for Cockpit builds
Issue 50349 - filter schema validation
Issue 48055 - CI test-(Plugin configuration should throw proper error messages if not configured properly)
Issue 49324 - idl_new fix assert
Issue 50564 - Fix rust libraries by default and improve docker
Issue 50206 - Refactor lock, unlock and status of dsidm account/role
Issue 49324 - idl_new report index name in error conditions
Issue 49761 - Fix CI test suite issues
Issue 50506 - Fix regression from slapi_entry_attr_get_ref refactor
Issue 50499 - Audit fix - Update npm 'eslint-utils' version
Issue 49624 - modrdn silently fails if DB deadlock occurs
Issue 50542 - Fix crashes in filter tests
Issue 49761 - Fix CI test suite issues
Issue 50542 - Entry cache contention during base search
Issue 50462 - Fix CI tests
Issue 50490 - objects and memory leaks
Issue 50538 - Move CI test to individual file
Issue 50538 - cleanAllRUV task limit is not enforced for replicated tasks
Issue 50536 - Audit log heading written to log after every update
Issue 50525 - nsslapd-defaultnamingcontext does not change when the assigned suffix gets deleted
Issue 50534 - CLI change schema edit subcommand to replace
Issue 50506 - cont Fix invalid frees from pointer reference calls
Issue 50507 - Fix Cockpit UI styling for PF4
Issue 48851 - investigate and port TET matching rules filter tests(indexing final)
Issue 48851 - Add more test cases to the match test suite(mode replace)
Issue 50530 - Directory Server not RFC 4511 compliant with requested attr "1.1"
Issue 50529 - LDAP server returning PWP controls in different sequence
Issue 50506 - Fix invalid frees from pointer reference calls.
Issue 50506 - Replace slapi_entry_attr_get_charptr() with slapi_entry_attr_get_ref()
Issue 50521 - Add regressions in CI tests
Issue 50510 - etime can contain invalid nanosecond value
Issue 50488 - Create a monitor for disk space usagedisk-space-mon
Issue 50511 - lib389 PosixGroups type can not handle rdn properly
Issue 50508 - UI - fix local password policy form
2019-09-17 11:19:11 -04:00
Miro Hrončok
4f0d0028f3 Rebuilt for Python 3.8 2019-08-19 10:00:22 +02:00
18 changed files with 2906 additions and 4789 deletions

1
.fmf/version Normal file
View file

@ -0,0 +1 @@
1

184
.gitignore vendored
View file

@ -1,182 +1,4 @@
*~
/389-ds-base-1.2.7.2.tar.bz2
/389-ds-base-1.2.7.3.tar.bz2
/389-ds-base-1.2.7.4.tar.bz2
/389-ds-base-1.2.7.5.tar.bz2
/389-ds-base-1.2.8.a1.tar.bz2
/389-ds-base-1.2.8.a2.tar.bz2
/389-ds-base-1.2.8.a3.tar.bz2
/389-ds-base-1.2.8.rc1.tar.bz2
/389-ds-base-1.2.8.rc2.tar.bz2
/389-ds-base-1.2.8.rc4.tar.bz2
/389-ds-base-1.2.8.rc5.tar.bz2
/389-ds-base-1.2.8.0.tar.bz2
/389-ds-base-1.2.8.1.tar.bz2
/389-ds-base-1.2.8.2.tar.bz2
/389-ds-base-1.2.8.3.tar.bz2
/389-ds-base-1.2.9.a1.tar.bz2
/389-ds-base-1.2.9.a2.tar.bz2
/389-ds-base-1.2.9.0.tar.bz2
/389-ds-base-1.2.9.1.tar.bz2
/389-ds-base-1.2.9.2.tar.bz2
/389-ds-base-1.2.9.3.tar.bz2
/389-ds-base-1.2.9.4.tar.bz2
/389-ds-base-1.2.9.5.tar.bz2
/389-ds-base-1.2.9.6.tar.bz2
/389-ds-base-1.2.9.7.tar.bz2
/389-ds-base-1.2.9.8.tar.bz2
/389-ds-base-1.2.9.9.tar.bz2
/389-ds-base-1.2.9.10.tar.bz2
/389-ds-base-1.2.10.a1.tar.bz2
/389-ds-base-1.2.10.a2.tar.bz2
/389-ds-base-1.2.10.a3.tar.bz2
/389-ds-base-1.2.10.a4.tar.bz2
/389-ds-base-1.2.10.a5.tar.bz2
/389-ds-base-1.2.10.a6.tar.bz2
/389-ds-base-1.2.10.a7.tar.bz2
/389-ds-base-1.2.10.a8.tar.bz2
/389-ds-base-1.2.10.rc1.tar.bz2
/389-ds-base-1.2.10.0.tar.bz2
/389-ds-base-1.2.10.1.tar.bz2
/389-ds-base-1.2.10.2.tar.bz2
/389-ds-base-1.2.10.3.tar.bz2
/389-ds-base-1.2.10.4.tar.bz2
/389-ds-base-1.2.11.a1.tar.bz2
/389-ds-base-1.2.11.1.tar.bz2
/389-ds-base-1.2.11.2.tar.bz2
/389-ds-base-1.2.11.3.tar.bz2
/389-ds-base-1.2.11.4.tar.bz2
/389-ds-base-1.2.11.5.tar.bz2
/389-ds-base-1.2.11.6.tar.bz2
/389-ds-base-1.2.11.7.tar.bz2
/389-ds-base-1.2.11.8.tar.bz2
/389-ds-base-1.2.11.9.tar.bz2
/389-ds-base-1.2.11.10.tar.bz2
/389-ds-base-1.2.11.11.tar.bz2
/389-ds-base-1.2.11.12.tar.bz2
/389-ds-base-1.2.11.13.tar.bz2
/389-ds-base-1.2.11.14.tar.bz2
/389-ds-base-1.2.11.15.tar.bz2
/389-ds-base-1.3.0.a1.tar.bz2
/389-ds-base-1.3.0.rc1.tar.bz2
/389-ds-base-1.3.0.rc2.tar.bz2
/389-ds-base-1.3.0.rc3.tar.bz2
/389-ds-base-1.3.0.0.tar.bz2
/389-ds-base-1.3.0.1.tar.bz2
/389-ds-base-1.3.0.2.tar.bz2
/389-ds-base-1.3.0.3.tar.bz2
/389-ds-base-1.3.0.4.tar.bz2
/389-ds-base-1.3.0.5.tar.bz2
/389-ds-base-1.3.1.0.tar.bz2
/389-ds-base-1.3.1.1.tar.bz2
/389-ds-base-1.3.1.2.tar.bz2
/389-ds-base-1.3.1.3.tar.bz2
/389-ds-base-1.3.1.4.tar.bz2
/389-ds-base-1.3.1.5.tar.bz2
/389-ds-base-1.3.1.6.tar.bz2
/389-ds-base-1.3.1.7.tar.bz2
/389-ds-base-1.3.1.8.tar.bz2
/389-ds-base-1.3.1.9.tar.bz2
/389-ds-base-1.3.1.10.tar.bz2
/389-ds-base-1.3.1.11.tar.bz2
/389-ds-base-1.3.2.0.tar.bz2
/389-ds-base-1.3.2.1.tar.bz2
/389-ds-base-1.3.2.2.tar.bz2
/389-ds-base-1.3.2.3.tar.bz2
/389-ds-base-1.3.2.4.tar.bz2
/389-ds-base-1.3.2.5.tar.bz2
/389-ds-base-1.3.2.6.tar.bz2
/389-ds-base-1.3.2.7.tar.bz2
/389-ds-base-1.3.2.8.tar.bz2
/389-ds-base-1.3.2.9.tar.bz2
/389-ds-base-1.3.2.10.tar.bz2
/389-ds-base-1.3.2.11.tar.bz2
/389-ds-base-1.3.2.12.tar.bz2
/389-ds-base-1.3.2.13.tar.bz2
/389-ds-base-1.3.2.14.tar.bz2
/389-ds-base-1.3.2.15.tar.bz2
/389-ds-base-1.3.2.16.tar.bz2
/389-ds-base-1.3.2.17.tar.bz2
/389-ds-base-1.3.2.18.tar.bz2
/389-ds-base-1.3.2.19.tar.bz2
/389-ds-base-1.3.2.20.tar.bz2
/389-ds-base-1.3.2.21.tar.bz2
/389-ds-base-1.3.2.22.tar.bz2
/389-ds-base-1.3.2.23.tar.bz2
/389-ds-base-1.3.3.0.tar.bz2
/389-ds-base-1.3.3.2.tar.bz2
/389-ds-base-1.3.3.3.tar.bz2
/389-ds-base-1.3.3.4.tar.bz2
/389-ds-base-1.3.3.5.tar.bz2
/389-ds-base-1.3.3.6.tar.bz2
/389-ds-base-1.3.3.7.tar.bz2
/389-ds-base-1.3.3.8.tar.bz2
/389-ds-base-1.3.3.9.tar.bz2
/389-ds-base-1.3.3.10.tar.bz2
/389-ds-base-1.3.3.11.tar.bz2
/389-ds-base-1.3.3.12.tar.bz2
/389-ds-base-1.3.4.0.tar.bz2
/nunc-stans-0.1.3.tar.bz2
/nunc-stans-0.1.4.tar.bz2
/389-ds-base-1.3.4.1.tar.bz2
/nunc-stans-0.1.5.tar.bz2
/389-ds-base-1.3.4.2.tar.bz2
/389-ds-base-1.3.4.3.tar.bz2
/389-ds-base-1.3.4.4.tar.bz2
/389-ds-base-1.3.4.5.tar.bz2
/389-ds-base-1.3.4.6.tar.bz2
/389-ds-base-1.3.4.7.tar.bz2
/389-ds-base-1.3.4.8.tar.bz2
/389-ds-base-1.3.5.0.tar.bz2
/nunc-stans-0.1.8.tar.bz2
/389-ds-base-1.3.5.1.tar.bz2
/389-ds-base-1.3.5.3.tar.bz2
/389-ds-base-1.3.5.4.tar.bz2
/389-ds-base-1.3.5.5.tar.bz2
/389-ds-base-1.3.5.6.tar.bz2
/389-ds-base-1.3.5.10.tar.bz2
/389-ds-base-1.3.5.11.tar.bz2
/389-ds-base-1.3.5.12.tar.bz2
/389-ds-base-1.3.5.13.tar.bz2
/389-ds-base-1.3.5.14.tar.bz2
/nunc-stans-0.2.0.tar.bz2
/389-ds-base-1.3.6.1.tar.bz2
/389-ds-base-1.3.6.2.tar.bz2
/389-ds-base-1.3.6.3.tar.bz2
/389-ds-base-1.3.6.4.tar.bz2
/389-ds-base-1.3.6.5.tar.bz2
/389-ds-base-1.3.6.6.tar.bz2
/389-ds-base-1.3.7.1.tar.bz2
/389-ds-base-1.3.7.2.tar.bz2
/389-ds-base-1.3.7.3.tar.bz2
/389-ds-base-1.3.7.4.tar.bz2
/389-ds-base-1.4.0.0.tar.bz2
/389-ds-base-1.4.0.1.tar.bz2
/389-ds-base-1.4.0.2.tar.bz2
/389-ds-base-1.4.0.3.tar.bz2
/389-ds-base-1.4.0.4.tar.bz2
/389-ds-base-1.4.0.5.tar.bz2
/389-ds-base-1.4.0.6.tar.bz2
/389-ds-base-1.4.0.7.tar.bz2
/389-ds-base-1.4.0.8.tar.bz2
/389-ds-base-1.4.0.9.tar.bz2
/389-ds-base-1.4.0.10.tar.bz2
/jemalloc-5.0.1.tar.bz2
/389-ds-base-1.4.0.11.tar.bz2
/jemalloc-5.1.0.tar.bz2
/389-ds-base-1.4.0.12.tar.bz2
/389-ds-base-1.4.0.13.tar.bz2
/389-ds-base-1.4.0.14.tar.bz2
/389-ds-base-1.4.0.15.tar.bz2
/389-ds-base-1.4.0.16.tar.bz2
/389-ds-base-1.4.0.17.tar.bz2
/389-ds-base-1.4.0.18.tar.bz2
/389-ds-base-1.4.0.19.tar.bz2
/389-ds-base-1.4.0.20.tar.bz2
/389-ds-base-1.4.1.1.tar.bz2
/389-ds-base-1.4.1.2.tar.bz2
/389-ds-base-1.4.1.3.tar.bz2
/389-ds-base-1.4.1.4.tar.bz2
/389-ds-base-1.4.1.5.tar.bz2
/jemalloc-5.2.0.tar.bz2
/389-ds-base-1.4.1.6.tar.bz2
/389-ds-base-*.tar.bz2
/jemalloc-*.tar.bz2
/libdb-5.3.28-59.tar.bz2

View file

@ -0,0 +1,318 @@
From 1c9c535888b9a850095794787d67900b04924a76 Mon Sep 17 00:00:00 2001
From: tbordaz <tbordaz@redhat.com>
Date: Wed, 7 Jan 2026 11:21:12 +0100
Subject: [PATCH] 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 !!)
---
ldap/servers/slapd/back-ldbm/back-ldbm.h | 12 ++
ldap/servers/slapd/back-ldbm/idl_common.c | 163 ++++++++++++++++++
ldap/servers/slapd/back-ldbm/idl_new.c | 30 ++--
.../servers/slapd/back-ldbm/proto-back-ldbm.h | 3 +
4 files changed, 189 insertions(+), 19 deletions(-)
diff --git a/ldap/servers/slapd/back-ldbm/back-ldbm.h b/ldap/servers/slapd/back-ldbm/back-ldbm.h
index 1bc36720d..b187c26bc 100644
--- a/ldap/servers/slapd/back-ldbm/back-ldbm.h
+++ b/ldap/servers/slapd/back-ldbm/back-ldbm.h
@@ -282,6 +282,18 @@ typedef struct _idlist_set
#define INDIRECT_BLOCK(idl) ((idl)->b_nids == INDBLOCK)
#define IDL_NIDS(idl) (idl ? (idl)->b_nids : (NIDS)0)
+/*
+ * used by the supplier during online total init
+ * it stores the ranges of ID that are already present
+ * in the candidate list ('parentid>=1')
+ */
+typedef struct IdRange {
+ ID first;
+ ID last;
+ struct IdRange *next;
+} IdRange_t;
+
+
typedef size_t idl_iterator;
/* small hashtable implementation used in the entry cache -- the table
diff --git a/ldap/servers/slapd/back-ldbm/idl_common.c b/ldap/servers/slapd/back-ldbm/idl_common.c
index fcb0ece4b..fdc9b4e67 100644
--- a/ldap/servers/slapd/back-ldbm/idl_common.c
+++ b/ldap/servers/slapd/back-ldbm/idl_common.c
@@ -172,6 +172,169 @@ idl_min(IDList *a, IDList *b)
return (a->b_nids > b->b_nids ? b : a);
}
+/*
+ * This is a faster version of idl_id_is_in_idlist.
+ * idl_id_is_in_idlist uses an array of ID so lookup is expensive
+ * idl_id_is_in_idlist_ranges uses a list of ranges of ID lookup is faster
+ * returns
+ * 1: 'id' is present in idrange_list
+ * 0: 'id' is not present in idrange_list
+ */
+int
+idl_id_is_in_idlist_ranges(IDList *idl, IdRange_t *idrange_list, ID id)
+{
+ IdRange_t *range = idrange_list;
+ int found = 0;
+
+ if (NULL == idl || NOID == id) {
+ return 0; /* not in the list */
+ }
+ if (ALLIDS(idl)) {
+ return 1; /* in the list */
+ }
+
+ for(;range; range = range->next) {
+ if (id > range->last) {
+ /* check if it belongs to the next range */
+ continue;
+ }
+ if (id >= range->first) {
+ /* It belongs to that range [first..last ] */
+ found = 1;
+ break;
+ } else {
+ /* this range is after id */
+ break;
+ }
+ }
+ return found;
+}
+
+/* This function is used during the online total initialisation
+ * (see next function)
+ * It frees all ranges of ID in the list
+ */
+void idrange_free(IdRange_t **head)
+{
+ IdRange_t *curr, *sav;
+
+ if ((head == NULL) || (*head == NULL)) {
+ return;
+ }
+ curr = *head;
+ sav = NULL;
+ for (; curr;) {
+ sav = curr;
+ curr = curr->next;
+ slapi_ch_free((void *) &sav);
+ }
+ if (sav) {
+ slapi_ch_free((void *) &sav);
+ }
+ *head = NULL;
+}
+
+/* This function is used during the online total initialisation
+ * Because a MODRDN can move entries under a parent that
+ * has a higher ID we need to sort the IDList so that parents
+ * are sent, to the consumer, before the children are sent.
+ * The sorting with a simple IDlist does not scale instead
+ * a list of IDs ranges is much faster.
+ * In that list we only ADD/lookup ID.
+ */
+IdRange_t *idrange_add_id(IdRange_t **head, ID id)
+{
+ if (head == NULL) {
+ slapi_log_err(SLAPI_LOG_ERR, "idrange_add_id",
+ "Can not add ID %d in non defined list\n", id);
+ return NULL;
+ }
+
+ if (*head == NULL) {
+ /* This is the first range */
+ IdRange_t *new_range = (IdRange_t *)slapi_ch_malloc(sizeof(IdRange_t));
+ new_range->first = id;
+ new_range->last = id;
+ new_range->next = NULL;
+ *head = new_range;
+ return *head;
+ }
+
+ IdRange_t *curr = *head, *prev = NULL;
+
+ /* First, find if id already falls within any existing range, or it is adjacent to any */
+ while (curr) {
+ if (id >= curr->first && id <= curr->last) {
+ /* inside a range, nothing to do */
+ return curr;
+ }
+
+ if (id == curr->last + 1) {
+ /* Extend this range upwards */
+ curr->last = id;
+
+ /* Check for possible merge with next range */
+ IdRange_t *next = curr->next;
+ if (next && curr->last + 1 >= next->first) {
+ slapi_log_err(SLAPI_LOG_REPL, "idrange_add_id",
+ "(id=%d) merge current with next range [%d..%d]\n", id, curr->first, curr->last);
+ curr->last = (next->last > curr->last) ? next->last : curr->last;
+ curr->next = next->next;
+ slapi_ch_free((void*) &next);
+ } else {
+ slapi_log_err(SLAPI_LOG_REPL, "idrange_add_id",
+ "(id=%d) extend forward current range [%d..%d]\n", id, curr->first, curr->last);
+ }
+ return curr;
+ }
+
+ if (id + 1 == curr->first) {
+ /* Extend this range downwards */
+ curr->first = id;
+
+ /* Check for possible merge with previous range */
+ if (prev && prev->last + 1 >= curr->first) {
+ prev->last = curr->last;
+ prev->next = curr->next;
+ slapi_ch_free((void *) &curr);
+ slapi_log_err(SLAPI_LOG_REPL, "idrange_add_id",
+ "(id=%d) merge current with previous range [%d..%d]\n", id, prev->first, prev->last);
+ return prev;
+ } else {
+ slapi_log_err(SLAPI_LOG_REPL, "idrange_add_id",
+ "(id=%d) extend backward current range [%d..%d]\n", id, curr->first, curr->last);
+ return curr;
+ }
+ }
+
+ /* If id is before the current range, break so we can insert before */
+ if (id < curr->first) {
+ break;
+ }
+
+ prev = curr;
+ curr = curr->next;
+ }
+ /* Need to insert a new standalone IdRange */
+ IdRange_t *new_range = (IdRange_t *)slapi_ch_malloc(sizeof(IdRange_t));
+ new_range->first = id;
+ new_range->last = id;
+ new_range->next = curr;
+
+ if (prev) {
+ slapi_log_err(SLAPI_LOG_REPL, "idrange_add_id",
+ "(id=%d) add new range [%d..%d]\n", id, new_range->first, new_range->last);
+ prev->next = new_range;
+ } else {
+ /* Insert at head */
+ slapi_log_err(SLAPI_LOG_REPL, "idrange_add_id",
+ "(id=%d) head range [%d..%d]\n", id, new_range->first, new_range->last);
+ *head = new_range;
+ }
+ return *head;
+}
+
+
int
idl_id_is_in_idlist(IDList *idl, ID id)
{
diff --git a/ldap/servers/slapd/back-ldbm/idl_new.c b/ldap/servers/slapd/back-ldbm/idl_new.c
index 5fbcaff2e..2d978353f 100644
--- a/ldap/servers/slapd/back-ldbm/idl_new.c
+++ b/ldap/servers/slapd/back-ldbm/idl_new.c
@@ -417,7 +417,6 @@ idl_new_range_fetch(
{
int ret = 0;
int ret2 = 0;
- int idl_rc = 0;
dbi_cursor_t cursor = {0};
IDList *idl = NULL;
dbi_val_t cur_key = {0};
@@ -436,6 +435,7 @@ idl_new_range_fetch(
size_t leftoverlen = 32;
size_t leftovercnt = 0;
char *index_id = get_index_name(be, db, ai);
+ IdRange_t *idrange_list = NULL;
if (NULL == flag_err) {
@@ -578,10 +578,12 @@ idl_new_range_fetch(
* found entry is the one from the suffix
*/
suffix = key;
- idl_rc = idl_append_extend(&idl, id);
- } else if ((key == suffix) || idl_id_is_in_idlist(idl, key)) {
+ idl_append_extend(&idl, id);
+ idrange_add_id(&idrange_list, id);
+ } else if ((key == suffix) || idl_id_is_in_idlist_ranges(idl, idrange_list, key)) {
/* the parent is the suffix or already in idl. */
- idl_rc = idl_append_extend(&idl, id);
+ idl_append_extend(&idl, id);
+ idrange_add_id(&idrange_list, id);
} else {
/* Otherwise, keep the {key,id} in leftover array */
if (!leftover) {
@@ -596,13 +598,7 @@ idl_new_range_fetch(
leftovercnt++;
}
} else {
- idl_rc = idl_append_extend(&idl, id);
- }
- if (idl_rc) {
- slapi_log_err(SLAPI_LOG_ERR, "idl_new_range_fetch",
- "Unable to extend id list (err=%d)\n", idl_rc);
- idl_free(&idl);
- goto error;
+ idl_append_extend(&idl, id);
}
count++;
@@ -695,21 +691,17 @@ error:
while(remaining > 0) {
for (size_t i = 0; i < leftovercnt; i++) {
- if (leftover[i].key > 0 && idl_id_is_in_idlist(idl, leftover[i].key) != 0) {
+ if (leftover[i].key > 0 && idl_id_is_in_idlist_ranges(idl, idrange_list, leftover[i].key) != 0) {
/* if the leftover key has its parent in the idl */
- idl_rc = idl_append_extend(&idl, leftover[i].id);
- if (idl_rc) {
- slapi_log_err(SLAPI_LOG_ERR, "idl_new_range_fetch",
- "Unable to extend id list (err=%d)\n", idl_rc);
- idl_free(&idl);
- return NULL;
- }
+ idl_append_extend(&idl, leftover[i].id);
+ idrange_add_id(&idrange_list, leftover[i].id);
leftover[i].key = 0;
remaining--;
}
}
}
slapi_ch_free((void **)&leftover);
+ idrange_free(&idrange_list);
}
slapi_log_err(SLAPI_LOG_FILTER, "idl_new_range_fetch",
"Found %d candidates; error code is: %d\n",
diff --git a/ldap/servers/slapd/back-ldbm/proto-back-ldbm.h b/ldap/servers/slapd/back-ldbm/proto-back-ldbm.h
index 91d61098a..30a7aa11f 100644
--- a/ldap/servers/slapd/back-ldbm/proto-back-ldbm.h
+++ b/ldap/servers/slapd/back-ldbm/proto-back-ldbm.h
@@ -217,6 +217,9 @@ ID idl_firstid(IDList *idl);
ID idl_nextid(IDList *idl, ID id);
int idl_init_private(backend *be, struct attrinfo *a);
int idl_release_private(struct attrinfo *a);
+IdRange_t *idrange_add_id(IdRange_t **head, ID id);
+void idrange_free(IdRange_t **head);
+int idl_id_is_in_idlist_ranges(IDList *idl, IdRange_t *idrange_list, ID id);
int idl_id_is_in_idlist(IDList *idl, ID id);
idl_iterator idl_iterator_init(const IDList *idl);
--
2.52.0

View file

@ -0,0 +1,765 @@
From 446bc42e7b64a8496c2c3fe486f86bba318bed5e Mon Sep 17 00:00:00 2001
From: Mark Reynolds <mreynolds@redhat.com>
Date: Wed, 7 Jan 2026 16:55:27 -0500
Subject: [PATCH] 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!!)
---
ldap/servers/slapd/abandon.c | 2 +-
ldap/servers/slapd/opshared.c | 60 ++++----
ldap/servers/slapd/pagedresults.c | 228 +++++++++++++++++++-----------
ldap/servers/slapd/proto-slap.h | 26 ++--
ldap/servers/slapd/slap.h | 5 +-
5 files changed, 187 insertions(+), 134 deletions(-)
diff --git a/ldap/servers/slapd/abandon.c b/ldap/servers/slapd/abandon.c
index 6024fcd31..1f47c531c 100644
--- a/ldap/servers/slapd/abandon.c
+++ b/ldap/servers/slapd/abandon.c
@@ -179,7 +179,7 @@ do_abandon(Slapi_PBlock *pb)
logpb.tv_sec = -1;
logpb.tv_nsec = -1;
- if (0 == pagedresults_free_one_msgid(pb_conn, id, pageresult_lock_get_addr(pb_conn))) {
+ if (0 == pagedresults_free_one_msgid(pb_conn, id, PR_NOT_LOCKED)) {
if (log_format != LOG_FORMAT_DEFAULT) {
/* JSON logging */
logpb.target_op = "Simple Paged Results";
diff --git a/ldap/servers/slapd/opshared.c b/ldap/servers/slapd/opshared.c
index a5cddfd23..bf800f7dc 100644
--- a/ldap/servers/slapd/opshared.c
+++ b/ldap/servers/slapd/opshared.c
@@ -572,8 +572,8 @@ op_shared_search(Slapi_PBlock *pb, int send_result)
be = be_list[index];
}
}
- pr_search_result = pagedresults_get_search_result(pb_conn, operation, 0 /*not locked*/, pr_idx);
- estimate = pagedresults_get_search_result_set_size_estimate(pb_conn, operation, pr_idx);
+ pr_search_result = pagedresults_get_search_result(pb_conn, operation, PR_NOT_LOCKED, pr_idx);
+ estimate = pagedresults_get_search_result_set_size_estimate(pb_conn, operation, PR_NOT_LOCKED, pr_idx);
/* Set operation note flags as required. */
if (pagedresults_get_unindexed(pb_conn, operation, pr_idx)) {
slapi_pblock_set_flag_operation_notes(pb, SLAPI_OP_NOTE_UNINDEXED);
@@ -619,14 +619,7 @@ op_shared_search(Slapi_PBlock *pb, int send_result)
int32_t tlimit;
slapi_pblock_get(pb, SLAPI_SEARCH_TIMELIMIT, &tlimit);
pagedresults_set_timelimit(pb_conn, operation, (time_t)tlimit, pr_idx);
- /* When using this mutex in conjunction with the main paged
- * result lock, you must do so in this order:
- *
- * --> pagedresults_lock()
- * --> pagedresults_mutex
- * <-- pagedresults_mutex
- * <-- pagedresults_unlock()
- */
+ /* IMPORTANT: Never acquire pagedresults_mutex when holding c_mutex. */
pagedresults_mutex = pageresult_lock_get_addr(pb_conn);
}
@@ -743,17 +736,15 @@ op_shared_search(Slapi_PBlock *pb, int send_result)
if (op_is_pagedresults(operation) && pr_search_result) {
void *sr = NULL;
/* PAGED RESULTS and already have the search results from the prev op */
- pagedresults_lock(pb_conn, pr_idx);
/*
* In async paged result case, the search result might be released
* by other theads. We need to double check it in the locked region.
*/
pthread_mutex_lock(pagedresults_mutex);
- pr_search_result = pagedresults_get_search_result(pb_conn, operation, 1 /*locked*/, pr_idx);
+ pr_search_result = pagedresults_get_search_result(pb_conn, operation, PR_LOCKED, pr_idx);
if (pr_search_result) {
- if (pagedresults_is_abandoned_or_notavailable(pb_conn, 1 /*locked*/, pr_idx)) {
+ if (pagedresults_is_abandoned_or_notavailable(pb_conn, PR_LOCKED, pr_idx)) {
pthread_mutex_unlock(pagedresults_mutex);
- pagedresults_unlock(pb_conn, pr_idx);
/* Previous operation was abandoned and the simplepaged object is not in use. */
send_ldap_result(pb, 0, NULL, "Simple Paged Results Search abandoned", 0, NULL);
rc = LDAP_SUCCESS;
@@ -764,14 +755,13 @@ op_shared_search(Slapi_PBlock *pb, int send_result)
/* search result could be reset in the backend/dse */
slapi_pblock_get(pb, SLAPI_SEARCH_RESULT_SET, &sr);
- pagedresults_set_search_result(pb_conn, operation, sr, 1 /*locked*/, pr_idx);
+ pagedresults_set_search_result(pb_conn, operation, sr, PR_LOCKED, pr_idx);
}
} else {
pr_stat = PAGEDRESULTS_SEARCH_END;
rc = LDAP_SUCCESS;
}
pthread_mutex_unlock(pagedresults_mutex);
- pagedresults_unlock(pb_conn, pr_idx);
if ((PAGEDRESULTS_SEARCH_END == pr_stat) || (0 == pnentries)) {
/* no more entries to send in the backend */
@@ -789,22 +779,22 @@ op_shared_search(Slapi_PBlock *pb, int send_result)
}
pagedresults_set_response_control(pb, 0, estimate,
curr_search_count, pr_idx);
- if (pagedresults_get_with_sort(pb_conn, operation, pr_idx)) {
+ if (pagedresults_get_with_sort(pb_conn, operation, PR_NOT_LOCKED, pr_idx)) {
sort_make_sort_response_control(pb, CONN_GET_SORT_RESULT_CODE, NULL);
}
pagedresults_set_search_result_set_size_estimate(pb_conn,
operation,
- estimate, pr_idx);
+ estimate, PR_NOT_LOCKED, pr_idx);
if (PAGEDRESULTS_SEARCH_END == pr_stat) {
- pagedresults_lock(pb_conn, pr_idx);
+ pthread_mutex_lock(pagedresults_mutex);
slapi_pblock_set(pb, SLAPI_SEARCH_RESULT_SET, NULL);
- if (!pagedresults_is_abandoned_or_notavailable(pb_conn, 0 /*not locked*/, pr_idx)) {
- pagedresults_free_one(pb_conn, operation, pr_idx);
+ if (!pagedresults_is_abandoned_or_notavailable(pb_conn, PR_LOCKED, pr_idx)) {
+ pagedresults_free_one(pb_conn, operation, PR_LOCKED, pr_idx);
}
- pagedresults_unlock(pb_conn, pr_idx);
+ pthread_mutex_unlock(pagedresults_mutex);
if (next_be) {
/* no more entries, but at least another backend */
- if (pagedresults_set_current_be(pb_conn, next_be, pr_idx, 0) < 0) {
+ if (pagedresults_set_current_be(pb_conn, next_be, pr_idx, PR_NOT_LOCKED) < 0) {
goto free_and_return;
}
}
@@ -915,7 +905,7 @@ op_shared_search(Slapi_PBlock *pb, int send_result)
}
}
pagedresults_set_search_result(pb_conn, operation, NULL, 1, pr_idx);
- rc = pagedresults_set_current_be(pb_conn, NULL, pr_idx, 1);
+ rc = pagedresults_set_current_be(pb_conn, NULL, pr_idx, PR_LOCKED);
pthread_mutex_unlock(pagedresults_mutex);
#pragma GCC diagnostic pop
}
@@ -954,7 +944,7 @@ op_shared_search(Slapi_PBlock *pb, int send_result)
pthread_mutex_lock(pagedresults_mutex);
pagedresults_set_search_result(pb_conn, operation, NULL, 1, pr_idx);
be->be_search_results_release(&sr);
- rc = pagedresults_set_current_be(pb_conn, next_be, pr_idx, 1);
+ rc = pagedresults_set_current_be(pb_conn, next_be, pr_idx, PR_LOCKED);
pthread_mutex_unlock(pagedresults_mutex);
pr_stat = PAGEDRESULTS_SEARCH_END; /* make sure stat is SEARCH_END */
if (NULL == next_be) {
@@ -967,23 +957,23 @@ op_shared_search(Slapi_PBlock *pb, int send_result)
} else {
curr_search_count = pnentries;
slapi_pblock_get(pb, SLAPI_SEARCH_RESULT_SET_SIZE_ESTIMATE, &estimate);
- pagedresults_lock(pb_conn, pr_idx);
- if ((pagedresults_set_current_be(pb_conn, be, pr_idx, 0) < 0) ||
- (pagedresults_set_search_result(pb_conn, operation, sr, 0, pr_idx) < 0) ||
- (pagedresults_set_search_result_count(pb_conn, operation, curr_search_count, pr_idx) < 0) ||
- (pagedresults_set_search_result_set_size_estimate(pb_conn, operation, estimate, pr_idx) < 0) ||
- (pagedresults_set_with_sort(pb_conn, operation, with_sort, pr_idx) < 0)) {
- pagedresults_unlock(pb_conn, pr_idx);
+ pthread_mutex_lock(pagedresults_mutex);
+ if ((pagedresults_set_current_be(pb_conn, be, pr_idx, PR_LOCKED) < 0) ||
+ (pagedresults_set_search_result(pb_conn, operation, sr, PR_LOCKED, pr_idx) < 0) ||
+ (pagedresults_set_search_result_count(pb_conn, operation, curr_search_count, PR_LOCKED, pr_idx) < 0) ||
+ (pagedresults_set_search_result_set_size_estimate(pb_conn, operation, estimate, PR_LOCKED, pr_idx) < 0) ||
+ (pagedresults_set_with_sort(pb_conn, operation, with_sort, PR_LOCKED, pr_idx) < 0)) {
+ pthread_mutex_unlock(pagedresults_mutex);
cache_return_target_entry(pb, be, operation);
goto free_and_return;
}
- pagedresults_unlock(pb_conn, pr_idx);
+ pthread_mutex_unlock(pagedresults_mutex);
}
slapi_pblock_set(pb, SLAPI_SEARCH_RESULT_SET, NULL);
next_be = NULL; /* to break the loop */
if (operation->o_status & SLAPI_OP_STATUS_ABANDONED) {
/* It turned out this search was abandoned. */
- pagedresults_free_one_msgid(pb_conn, operation->o_msgid, pagedresults_mutex);
+ pagedresults_free_one_msgid(pb_conn, operation->o_msgid, PR_NOT_LOCKED);
/* paged-results-request was abandoned; making an empty cookie. */
pagedresults_set_response_control(pb, 0, estimate, -1, pr_idx);
send_ldap_result(pb, 0, NULL, "Simple Paged Results Search abandoned", 0, NULL);
@@ -993,7 +983,7 @@ op_shared_search(Slapi_PBlock *pb, int send_result)
}
pagedresults_set_response_control(pb, 0, estimate, curr_search_count, pr_idx);
if (curr_search_count == -1) {
- pagedresults_free_one(pb_conn, operation, pr_idx);
+ pagedresults_free_one(pb_conn, operation, PR_NOT_LOCKED, pr_idx);
}
}
diff --git a/ldap/servers/slapd/pagedresults.c b/ldap/servers/slapd/pagedresults.c
index 941ab97e3..0d6c4a1aa 100644
--- a/ldap/servers/slapd/pagedresults.c
+++ b/ldap/servers/slapd/pagedresults.c
@@ -34,9 +34,9 @@ pageresult_lock_cleanup()
slapi_ch_free((void**)&lock_hash);
}
-/* Beware to the lock order with c_mutex:
- * c_mutex is sometime locked while holding pageresult_lock
- * ==> Do not lock pageresult_lock when holing c_mutex
+/* Lock ordering constraint with c_mutex:
+ * c_mutex is sometimes locked while holding pageresult_lock.
+ * Therefore: DO NOT acquire pageresult_lock when holding c_mutex.
*/
pthread_mutex_t *
pageresult_lock_get_addr(Connection *conn)
@@ -44,7 +44,11 @@ pageresult_lock_get_addr(Connection *conn)
return &lock_hash[(((size_t)conn)/sizeof (Connection))%LOCK_HASH_SIZE];
}
-/* helper function to clean up one prp slot */
+/* helper function to clean up one prp slot
+ *
+ * NOTE: This function must be called while holding the pageresult_lock
+ * (via pageresult_lock_get_addr(conn)) to ensure thread-safe cleanup.
+ */
static void
_pr_cleanup_one_slot(PagedResults *prp)
{
@@ -56,7 +60,7 @@ _pr_cleanup_one_slot(PagedResults *prp)
prp->pr_current_be->be_search_results_release(&(prp->pr_search_result_set));
}
- /* clean up the slot except the mutex */
+ /* clean up the slot */
prp->pr_current_be = NULL;
prp->pr_search_result_set = NULL;
prp->pr_search_result_count = 0;
@@ -136,6 +140,8 @@ pagedresults_parse_control_value(Slapi_PBlock *pb,
return LDAP_UNWILLING_TO_PERFORM;
}
+ /* Acquire hash-based lock for paged results list access
+ * IMPORTANT: Never acquire this lock when holding c_mutex */
pthread_mutex_lock(pageresult_lock_get_addr(conn));
/* the ber encoding is no longer needed */
ber_free(ber, 1);
@@ -184,10 +190,6 @@ pagedresults_parse_control_value(Slapi_PBlock *pb,
goto bail;
}
- if ((*index > -1) && (*index < conn->c_pagedresults.prl_maxlen) &&
- !conn->c_pagedresults.prl_list[*index].pr_mutex) {
- conn->c_pagedresults.prl_list[*index].pr_mutex = PR_NewLock();
- }
conn->c_pagedresults.prl_count++;
} else {
/* Repeated paged results request.
@@ -327,8 +329,14 @@ bailout:
"<= idx=%d\n", index);
}
+/*
+ * Free one paged result entry by index.
+ *
+ * Locking: If locked=0, acquires pageresult_lock. If locked=1, assumes
+ * caller already holds pageresult_lock. Never call when holding c_mutex.
+ */
int
-pagedresults_free_one(Connection *conn, Operation *op, int index)
+pagedresults_free_one(Connection *conn, Operation *op, bool locked, int index)
{
int rc = -1;
@@ -338,7 +346,9 @@ pagedresults_free_one(Connection *conn, Operation *op, int index)
slapi_log_err(SLAPI_LOG_TRACE, "pagedresults_free_one",
"=> idx=%d\n", index);
if (conn && (index > -1)) {
- pthread_mutex_lock(pageresult_lock_get_addr(conn));
+ if (!locked) {
+ pthread_mutex_lock(pageresult_lock_get_addr(conn));
+ }
if (conn->c_pagedresults.prl_count <= 0) {
slapi_log_err(SLAPI_LOG_TRACE, "pagedresults_free_one",
"conn=%" PRIu64 " paged requests list count is %d\n",
@@ -349,7 +359,9 @@ pagedresults_free_one(Connection *conn, Operation *op, int index)
conn->c_pagedresults.prl_count--;
rc = 0;
}
- pthread_mutex_unlock(pageresult_lock_get_addr(conn));
+ if (!locked) {
+ pthread_mutex_unlock(pageresult_lock_get_addr(conn));
+ }
}
slapi_log_err(SLAPI_LOG_TRACE, "pagedresults_free_one", "<= %d\n", rc);
@@ -357,21 +369,28 @@ pagedresults_free_one(Connection *conn, Operation *op, int index)
}
/*
- * Used for abandoning - pageresult_lock_get_addr(conn) is already locked in do_abandone.
+ * Free one paged result entry by message ID.
+ *
+ * Locking: If locked=0, acquires pageresult_lock. If locked=1, assumes
+ * caller already holds pageresult_lock. Never call when holding c_mutex.
*/
int
-pagedresults_free_one_msgid(Connection *conn, ber_int_t msgid, pthread_mutex_t *mutex)
+pagedresults_free_one_msgid(Connection *conn, ber_int_t msgid, bool locked)
{
int rc = -1;
int i;
+ pthread_mutex_t *lock = NULL;
if (conn && (msgid > -1)) {
if (conn->c_pagedresults.prl_maxlen <= 0) {
; /* Not a paged result. */
} else {
slapi_log_err(SLAPI_LOG_TRACE,
- "pagedresults_free_one_msgid_nolock", "=> msgid=%d\n", msgid);
- pthread_mutex_lock(mutex);
+ "pagedresults_free_one_msgid", "=> msgid=%d\n", msgid);
+ lock = pageresult_lock_get_addr(conn);
+ if (!locked) {
+ pthread_mutex_lock(lock);
+ }
for (i = 0; i < conn->c_pagedresults.prl_maxlen; i++) {
if (conn->c_pagedresults.prl_list[i].pr_msgid == msgid) {
PagedResults *prp = conn->c_pagedresults.prl_list + i;
@@ -390,9 +409,11 @@ pagedresults_free_one_msgid(Connection *conn, ber_int_t msgid, pthread_mutex_t *
break;
}
}
- pthread_mutex_unlock(mutex);
+ if (!locked) {
+ pthread_mutex_unlock(lock);
+ }
slapi_log_err(SLAPI_LOG_TRACE,
- "pagedresults_free_one_msgid_nolock", "<= %d\n", rc);
+ "pagedresults_free_one_msgid", "<= %d\n", rc);
}
}
@@ -418,29 +439,43 @@ pagedresults_get_current_be(Connection *conn, int index)
return be;
}
+/*
+ * Set current backend for a paged result entry.
+ *
+ * Locking: If locked=false, acquires pageresult_lock. If locked=true, assumes
+ * caller already holds pageresult_lock. Never call when holding c_mutex.
+ */
int
-pagedresults_set_current_be(Connection *conn, Slapi_Backend *be, int index, int nolock)
+pagedresults_set_current_be(Connection *conn, Slapi_Backend *be, int index, bool locked)
{
int rc = -1;
slapi_log_err(SLAPI_LOG_TRACE,
"pagedresults_set_current_be", "=> idx=%d\n", index);
if (conn && (index > -1)) {
- if (!nolock)
+ if (!locked) {
pthread_mutex_lock(pageresult_lock_get_addr(conn));
+ }
if (index < conn->c_pagedresults.prl_maxlen) {
conn->c_pagedresults.prl_list[index].pr_current_be = be;
}
rc = 0;
- if (!nolock)
+ if (!locked) {
pthread_mutex_unlock(pageresult_lock_get_addr(conn));
+ }
}
slapi_log_err(SLAPI_LOG_TRACE,
"pagedresults_set_current_be", "<= %d\n", rc);
return rc;
}
+/*
+ * Get search result set for a paged result entry.
+ *
+ * Locking: If locked=0, acquires pageresult_lock. If locked=1, assumes
+ * caller already holds pageresult_lock. Never call when holding c_mutex.
+ */
void *
-pagedresults_get_search_result(Connection *conn, Operation *op, int locked, int index)
+pagedresults_get_search_result(Connection *conn, Operation *op, bool locked, int index)
{
void *sr = NULL;
if (!op_is_pagedresults(op)) {
@@ -465,8 +500,14 @@ pagedresults_get_search_result(Connection *conn, Operation *op, int locked, int
return sr;
}
+/*
+ * Set search result set for a paged result entry.
+ *
+ * Locking: If locked=0, acquires pageresult_lock. If locked=1, assumes
+ * caller already holds pageresult_lock. Never call when holding c_mutex.
+ */
int
-pagedresults_set_search_result(Connection *conn, Operation *op, void *sr, int locked, int index)
+pagedresults_set_search_result(Connection *conn, Operation *op, void *sr, bool locked, int index)
{
int rc = -1;
if (!op_is_pagedresults(op)) {
@@ -494,8 +535,14 @@ pagedresults_set_search_result(Connection *conn, Operation *op, void *sr, int lo
return rc;
}
+/*
+ * Get search result count for a paged result entry.
+ *
+ * Locking: If locked=0, acquires pageresult_lock. If locked=1, assumes
+ * caller already holds pageresult_lock. Never call when holding c_mutex.
+ */
int
-pagedresults_get_search_result_count(Connection *conn, Operation *op, int index)
+pagedresults_get_search_result_count(Connection *conn, Operation *op, bool locked, int index)
{
int count = 0;
if (!op_is_pagedresults(op)) {
@@ -504,19 +551,29 @@ pagedresults_get_search_result_count(Connection *conn, Operation *op, int index)
slapi_log_err(SLAPI_LOG_TRACE,
"pagedresults_get_search_result_count", "=> idx=%d\n", index);
if (conn && (index > -1)) {
- pthread_mutex_lock(pageresult_lock_get_addr(conn));
+ if (!locked) {
+ pthread_mutex_lock(pageresult_lock_get_addr(conn));
+ }
if (index < conn->c_pagedresults.prl_maxlen) {
count = conn->c_pagedresults.prl_list[index].pr_search_result_count;
}
- pthread_mutex_unlock(pageresult_lock_get_addr(conn));
+ if (!locked) {
+ pthread_mutex_unlock(pageresult_lock_get_addr(conn));
+ }
}
slapi_log_err(SLAPI_LOG_TRACE,
"pagedresults_get_search_result_count", "<= %d\n", count);
return count;
}
+/*
+ * Set search result count for a paged result entry.
+ *
+ * Locking: If locked=0, acquires pageresult_lock. If locked=1, assumes
+ * caller already holds pageresult_lock. Never call when holding c_mutex.
+ */
int
-pagedresults_set_search_result_count(Connection *conn, Operation *op, int count, int index)
+pagedresults_set_search_result_count(Connection *conn, Operation *op, int count, bool locked, int index)
{
int rc = -1;
if (!op_is_pagedresults(op)) {
@@ -525,11 +582,15 @@ pagedresults_set_search_result_count(Connection *conn, Operation *op, int count,
slapi_log_err(SLAPI_LOG_TRACE,
"pagedresults_set_search_result_count", "=> idx=%d\n", index);
if (conn && (index > -1)) {
- pthread_mutex_lock(pageresult_lock_get_addr(conn));
+ if (!locked) {
+ pthread_mutex_lock(pageresult_lock_get_addr(conn));
+ }
if (index < conn->c_pagedresults.prl_maxlen) {
conn->c_pagedresults.prl_list[index].pr_search_result_count = count;
}
- pthread_mutex_unlock(pageresult_lock_get_addr(conn));
+ if (!locked) {
+ pthread_mutex_unlock(pageresult_lock_get_addr(conn));
+ }
rc = 0;
}
slapi_log_err(SLAPI_LOG_TRACE,
@@ -537,9 +598,16 @@ pagedresults_set_search_result_count(Connection *conn, Operation *op, int count,
return rc;
}
+/*
+ * Get search result set size estimate for a paged result entry.
+ *
+ * Locking: If locked=0, acquires pageresult_lock. If locked=1, assumes
+ * caller already holds pageresult_lock. Never call when holding c_mutex.
+ */
int
pagedresults_get_search_result_set_size_estimate(Connection *conn,
Operation *op,
+ bool locked,
int index)
{
int count = 0;
@@ -550,11 +618,15 @@ pagedresults_get_search_result_set_size_estimate(Connection *conn,
"pagedresults_get_search_result_set_size_estimate",
"=> idx=%d\n", index);
if (conn && (index > -1)) {
- pthread_mutex_lock(pageresult_lock_get_addr(conn));
+ if (!locked) {
+ pthread_mutex_lock(pageresult_lock_get_addr(conn));
+ }
if (index < conn->c_pagedresults.prl_maxlen) {
count = conn->c_pagedresults.prl_list[index].pr_search_result_set_size_estimate;
}
- pthread_mutex_unlock(pageresult_lock_get_addr(conn));
+ if (!locked) {
+ pthread_mutex_unlock(pageresult_lock_get_addr(conn));
+ }
}
slapi_log_err(SLAPI_LOG_TRACE,
"pagedresults_get_search_result_set_size_estimate", "<= %d\n",
@@ -562,10 +634,17 @@ pagedresults_get_search_result_set_size_estimate(Connection *conn,
return count;
}
+/*
+ * Set search result set size estimate for a paged result entry.
+ *
+ * Locking: If locked=0, acquires pageresult_lock. If locked=1, assumes
+ * caller already holds pageresult_lock. Never call when holding c_mutex.
+ */
int
pagedresults_set_search_result_set_size_estimate(Connection *conn,
Operation *op,
int count,
+ bool locked,
int index)
{
int rc = -1;
@@ -576,11 +655,15 @@ pagedresults_set_search_result_set_size_estimate(Connection *conn,
"pagedresults_set_search_result_set_size_estimate",
"=> idx=%d\n", index);
if (conn && (index > -1)) {
- pthread_mutex_lock(pageresult_lock_get_addr(conn));
+ if (!locked) {
+ pthread_mutex_lock(pageresult_lock_get_addr(conn));
+ }
if (index < conn->c_pagedresults.prl_maxlen) {
conn->c_pagedresults.prl_list[index].pr_search_result_set_size_estimate = count;
}
- pthread_mutex_unlock(pageresult_lock_get_addr(conn));
+ if (!locked) {
+ pthread_mutex_unlock(pageresult_lock_get_addr(conn));
+ }
rc = 0;
}
slapi_log_err(SLAPI_LOG_TRACE,
@@ -589,8 +672,14 @@ pagedresults_set_search_result_set_size_estimate(Connection *conn,
return rc;
}
+/*
+ * Get with_sort flag for a paged result entry.
+ *
+ * Locking: If locked=0, acquires pageresult_lock. If locked=1, assumes
+ * caller already holds pageresult_lock. Never call when holding c_mutex.
+ */
int
-pagedresults_get_with_sort(Connection *conn, Operation *op, int index)
+pagedresults_get_with_sort(Connection *conn, Operation *op, bool locked, int index)
{
int flags = 0;
if (!op_is_pagedresults(op)) {
@@ -599,19 +688,29 @@ pagedresults_get_with_sort(Connection *conn, Operation *op, int index)
slapi_log_err(SLAPI_LOG_TRACE,
"pagedresults_get_with_sort", "=> idx=%d\n", index);
if (conn && (index > -1)) {
- pthread_mutex_lock(pageresult_lock_get_addr(conn));
+ if (!locked) {
+ pthread_mutex_lock(pageresult_lock_get_addr(conn));
+ }
if (index < conn->c_pagedresults.prl_maxlen) {
flags = conn->c_pagedresults.prl_list[index].pr_flags & CONN_FLAG_PAGEDRESULTS_WITH_SORT;
}
- pthread_mutex_unlock(pageresult_lock_get_addr(conn));
+ if (!locked) {
+ pthread_mutex_unlock(pageresult_lock_get_addr(conn));
+ }
}
slapi_log_err(SLAPI_LOG_TRACE,
"pagedresults_get_with_sort", "<= %d\n", flags);
return flags;
}
+/*
+ * Set with_sort flag for a paged result entry.
+ *
+ * Locking: If locked=0, acquires pageresult_lock. If locked=1, assumes
+ * caller already holds pageresult_lock. Never call when holding c_mutex.
+ */
int
-pagedresults_set_with_sort(Connection *conn, Operation *op, int flags, int index)
+pagedresults_set_with_sort(Connection *conn, Operation *op, int flags, bool locked, int index)
{
int rc = -1;
if (!op_is_pagedresults(op)) {
@@ -620,14 +719,18 @@ pagedresults_set_with_sort(Connection *conn, Operation *op, int flags, int index
slapi_log_err(SLAPI_LOG_TRACE,
"pagedresults_set_with_sort", "=> idx=%d\n", index);
if (conn && (index > -1)) {
- pthread_mutex_lock(pageresult_lock_get_addr(conn));
+ if (!locked) {
+ pthread_mutex_lock(pageresult_lock_get_addr(conn));
+ }
if (index < conn->c_pagedresults.prl_maxlen) {
if (flags & OP_FLAG_SERVER_SIDE_SORTING) {
conn->c_pagedresults.prl_list[index].pr_flags |=
CONN_FLAG_PAGEDRESULTS_WITH_SORT;
}
}
- pthread_mutex_unlock(pageresult_lock_get_addr(conn));
+ if (!locked) {
+ pthread_mutex_unlock(pageresult_lock_get_addr(conn));
+ }
rc = 0;
}
slapi_log_err(SLAPI_LOG_TRACE, "pagedresults_set_with_sort", "<= %d\n", rc);
@@ -802,10 +905,6 @@ pagedresults_cleanup(Connection *conn, int needlock)
rc = 1;
}
prp->pr_current_be = NULL;
- if (prp->pr_mutex) {
- PR_DestroyLock(prp->pr_mutex);
- prp->pr_mutex = NULL;
- }
memset(prp, '\0', sizeof(PagedResults));
}
conn->c_pagedresults.prl_count = 0;
@@ -840,10 +939,6 @@ pagedresults_cleanup_all(Connection *conn, int needlock)
i < conn->c_pagedresults.prl_maxlen;
i++) {
prp = conn->c_pagedresults.prl_list + i;
- if (prp->pr_mutex) {
- PR_DestroyLock(prp->pr_mutex);
- prp->pr_mutex = NULL;
- }
if (prp->pr_current_be && prp->pr_search_result_set &&
prp->pr_current_be->be_search_results_release) {
prp->pr_current_be->be_search_results_release(&(prp->pr_search_result_set));
@@ -1010,43 +1105,8 @@ op_set_pagedresults(Operation *op)
op->o_flags |= OP_FLAG_PAGED_RESULTS;
}
-/*
- * pagedresults_lock/unlock -- introduced to protect search results for the
- * asynchronous searches. Do not call these functions while the PR conn lock
- * is held (e.g. pageresult_lock_get_addr(conn))
- */
-void
-pagedresults_lock(Connection *conn, int index)
-{
- PagedResults *prp;
- if (!conn || (index < 0) || (index >= conn->c_pagedresults.prl_maxlen)) {
- return;
- }
- pthread_mutex_lock(pageresult_lock_get_addr(conn));
- prp = conn->c_pagedresults.prl_list + index;
- if (prp->pr_mutex) {
- PR_Lock(prp->pr_mutex);
- }
- pthread_mutex_unlock(pageresult_lock_get_addr(conn));
-}
-
-void
-pagedresults_unlock(Connection *conn, int index)
-{
- PagedResults *prp;
- if (!conn || (index < 0) || (index >= conn->c_pagedresults.prl_maxlen)) {
- return;
- }
- pthread_mutex_lock(pageresult_lock_get_addr(conn));
- prp = conn->c_pagedresults.prl_list + index;
- if (prp->pr_mutex) {
- PR_Unlock(prp->pr_mutex);
- }
- pthread_mutex_unlock(pageresult_lock_get_addr(conn));
-}
-
int
-pagedresults_is_abandoned_or_notavailable(Connection *conn, int locked, int index)
+pagedresults_is_abandoned_or_notavailable(Connection *conn, bool locked, int index)
{
PagedResults *prp;
int32_t result;
@@ -1066,7 +1126,7 @@ pagedresults_is_abandoned_or_notavailable(Connection *conn, int locked, int inde
}
int
-pagedresults_set_search_result_pb(Slapi_PBlock *pb, void *sr, int locked)
+pagedresults_set_search_result_pb(Slapi_PBlock *pb, void *sr, bool locked)
{
int rc = -1;
Connection *conn = NULL;
diff --git a/ldap/servers/slapd/proto-slap.h b/ldap/servers/slapd/proto-slap.h
index 765c12bf5..455d6d718 100644
--- a/ldap/servers/slapd/proto-slap.h
+++ b/ldap/servers/slapd/proto-slap.h
@@ -1614,20 +1614,22 @@ pthread_mutex_t *pageresult_lock_get_addr(Connection *conn);
int pagedresults_parse_control_value(Slapi_PBlock *pb, struct berval *psbvp, ber_int_t *pagesize, int *index, Slapi_Backend *be);
void pagedresults_set_response_control(Slapi_PBlock *pb, int iscritical, ber_int_t estimate, int curr_search_count, int index);
Slapi_Backend *pagedresults_get_current_be(Connection *conn, int index);
-int pagedresults_set_current_be(Connection *conn, Slapi_Backend *be, int index, int nolock);
-void *pagedresults_get_search_result(Connection *conn, Operation *op, int locked, int index);
-int pagedresults_set_search_result(Connection *conn, Operation *op, void *sr, int locked, int index);
-int pagedresults_get_search_result_count(Connection *conn, Operation *op, int index);
-int pagedresults_set_search_result_count(Connection *conn, Operation *op, int cnt, int index);
+int pagedresults_set_current_be(Connection *conn, Slapi_Backend *be, int index, bool locked);
+void *pagedresults_get_search_result(Connection *conn, Operation *op, bool locked, int index);
+int pagedresults_set_search_result(Connection *conn, Operation *op, void *sr, bool locked, int index);
+int pagedresults_get_search_result_count(Connection *conn, Operation *op, bool locked, int index);
+int pagedresults_set_search_result_count(Connection *conn, Operation *op, int cnt, bool locked, int index);
int pagedresults_get_search_result_set_size_estimate(Connection *conn,
Operation *op,
+ bool locked,
int index);
int pagedresults_set_search_result_set_size_estimate(Connection *conn,
Operation *op,
int cnt,
+ bool locked,
int index);
-int pagedresults_get_with_sort(Connection *conn, Operation *op, int index);
-int pagedresults_set_with_sort(Connection *conn, Operation *op, int flags, int index);
+int pagedresults_get_with_sort(Connection *conn, Operation *op, bool locked, int index);
+int pagedresults_set_with_sort(Connection *conn, Operation *op, int flags, bool locked, int index);
int pagedresults_get_unindexed(Connection *conn, Operation *op, int index);
int pagedresults_set_unindexed(Connection *conn, Operation *op, int index);
int pagedresults_get_sort_result_code(Connection *conn, Operation *op, int index);
@@ -1639,15 +1641,13 @@ int pagedresults_cleanup(Connection *conn, int needlock);
int pagedresults_is_timedout_nolock(Connection *conn);
int pagedresults_reset_timedout_nolock(Connection *conn);
int pagedresults_in_use_nolock(Connection *conn);
-int pagedresults_free_one(Connection *conn, Operation *op, int index);
-int pagedresults_free_one_msgid(Connection *conn, ber_int_t msgid, pthread_mutex_t *mutex);
+int pagedresults_free_one(Connection *conn, Operation *op, bool locked, int index);
+int pagedresults_free_one_msgid(Connection *conn, ber_int_t msgid, bool locked);
int op_is_pagedresults(Operation *op);
int pagedresults_cleanup_all(Connection *conn, int needlock);
void op_set_pagedresults(Operation *op);
-void pagedresults_lock(Connection *conn, int index);
-void pagedresults_unlock(Connection *conn, int index);
-int pagedresults_is_abandoned_or_notavailable(Connection *conn, int locked, int index);
-int pagedresults_set_search_result_pb(Slapi_PBlock *pb, void *sr, int locked);
+int pagedresults_is_abandoned_or_notavailable(Connection *conn, bool locked, int index);
+int pagedresults_set_search_result_pb(Slapi_PBlock *pb, void *sr, bool locked);
/*
* sort.c
diff --git a/ldap/servers/slapd/slap.h b/ldap/servers/slapd/slap.h
index 11c5602e3..d494931c2 100644
--- a/ldap/servers/slapd/slap.h
+++ b/ldap/servers/slapd/slap.h
@@ -89,6 +89,10 @@ static char ptokPBE[34] = "Internal (Software) Token ";
#include <stdbool.h>
#include <time.h> /* For timespec definitions */
+/* Macros for paged results lock parameter */
+#define PR_LOCKED true
+#define PR_NOT_LOCKED false
+
/* Provides our int types and platform specific requirements. */
#include <slapi_pal.h>
@@ -1669,7 +1673,6 @@ typedef struct _paged_results
struct timespec pr_timelimit_hr; /* expiry time of this request rel to clock monotonic */
int pr_flags;
ber_int_t pr_msgid; /* msgid of the request; to abandon */
- PRLock *pr_mutex; /* protect each conn structure */
} PagedResults;
/* array of simple paged structure stashed in connection */
--
2.52.0

View file

@ -0,0 +1,183 @@
From 4936f953fa3b0726c2b178f135cd78dcac7463ba Mon Sep 17 00:00:00 2001
From: Simon Pichugin <spichugi@redhat.com>
Date: Thu, 8 Jan 2026 10:02:39 -0800
Subject: [PATCH] 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!!)
---
ldap/servers/slapd/back-ldbm/cache.c | 48 +++++++++++++++++++++++++---
1 file changed, 43 insertions(+), 5 deletions(-)
diff --git a/ldap/servers/slapd/back-ldbm/cache.c b/ldap/servers/slapd/back-ldbm/cache.c
index 2e4126134..a87f30687 100644
--- a/ldap/servers/slapd/back-ldbm/cache.c
+++ b/ldap/servers/slapd/back-ldbm/cache.c
@@ -458,11 +458,13 @@ static void
lru_delete(struct cache *cache, void *ptr)
{
struct backcommon *e;
+
if (NULL == ptr) {
LOG("=> lru_delete\n<= lru_delete (null entry)\n");
return;
}
e = (struct backcommon *)ptr;
+
#ifdef LDAP_CACHE_DEBUG_LRU
pinned_verify(cache, __LINE__);
lru_verify(cache, e, 1);
@@ -475,8 +477,9 @@ lru_delete(struct cache *cache, void *ptr)
e->ep_lrunext->ep_lruprev = e->ep_lruprev;
else
cache->c_lrutail = e->ep_lruprev;
-#ifdef LDAP_CACHE_DEBUG_LRU
+ /* Always clear pointers after removal to prevent stale pointer issues */
e->ep_lrunext = e->ep_lruprev = NULL;
+#ifdef LDAP_CACHE_DEBUG_LRU
lru_verify(cache, e, 0);
#endif
}
@@ -633,9 +636,14 @@ flush_hash(struct cache *cache, struct timespec *start_time, int32_t type)
if (entry->ep_refcnt == 0) {
entry->ep_refcnt++;
if (entry->ep_state & ENTRY_STATE_PINNED) {
+ /* Entry is in pinned list, not LRU - remove from pinned only.
+ * pinned_remove clears lru pointers and won't add to LRU since refcnt > 0.
+ */
pinned_remove(cache, laste);
+ } else {
+ /* Entry is in LRU list - remove from LRU */
+ lru_delete(cache, laste);
}
- lru_delete(cache, laste);
if (type == ENTRY_CACHE) {
entrycache_remove_int(cache, laste);
entrycache_return(cache, (struct backentry **)&laste, PR_TRUE);
@@ -679,9 +687,14 @@ flush_hash(struct cache *cache, struct timespec *start_time, int32_t type)
if (entry->ep_refcnt == 0) {
entry->ep_refcnt++;
if (entry->ep_state & ENTRY_STATE_PINNED) {
+ /* Entry is in pinned list, not LRU - remove from pinned only.
+ * pinned_remove clears lru pointers and won't add to LRU since refcnt > 0.
+ */
pinned_remove(cache, laste);
+ } else {
+ /* Entry is in LRU list - remove from LRU */
+ lru_delete(cache, laste);
}
- lru_delete(cache, laste);
entrycache_remove_int(cache, laste);
entrycache_return(cache, (struct backentry **)&laste, PR_TRUE);
} else {
@@ -772,6 +785,11 @@ entrycache_flush(struct cache *cache)
} else {
e = BACK_LRU_PREV(e, struct backentry *);
}
+ if (e == NULL) {
+ slapi_log_err(SLAPI_LOG_WARNING, "entrycache_flush",
+ "Unexpected NULL entry while flushing cache - LRU list may be corrupted\n");
+ break;
+ }
ASSERT(e->ep_refcnt == 0);
e->ep_refcnt++;
if (entrycache_remove_int(cache, e) < 0) {
@@ -1160,6 +1178,7 @@ pinned_remove(struct cache *cache, void *ptr)
{
struct backentry *e = (struct backentry *)ptr;
ASSERT(e->ep_state & ENTRY_STATE_PINNED);
+
cache->c_pinned_ctx->npinned--;
cache->c_pinned_ctx->size -= e->ep_size;
e->ep_state &= ~ENTRY_STATE_PINNED;
@@ -1172,13 +1191,23 @@ pinned_remove(struct cache *cache, void *ptr)
cache->c_pinned_ctx->head = cache->c_pinned_ctx->tail = NULL;
} else {
cache->c_pinned_ctx->head = BACK_LRU_NEXT(e, struct backentry *);
+ /* Update new head's prev pointer to NULL */
+ if (cache->c_pinned_ctx->head) {
+ cache->c_pinned_ctx->head->ep_lruprev = NULL;
+ }
}
} else if (cache->c_pinned_ctx->tail == e) {
cache->c_pinned_ctx->tail = BACK_LRU_PREV(e, struct backentry *);
+ /* Update new tail's next pointer to NULL */
+ if (cache->c_pinned_ctx->tail) {
+ cache->c_pinned_ctx->tail->ep_lrunext = NULL;
+ }
} else {
+ /* Middle of list: update both neighbors to point to each other */
BACK_LRU_PREV(e, struct backentry *)->ep_lrunext = BACK_LRU_NEXT(e, struct backcommon *);
BACK_LRU_NEXT(e, struct backentry *)->ep_lruprev = BACK_LRU_PREV(e, struct backcommon *);
}
+ /* Clear the removed entry's pointers */
e->ep_lrunext = e->ep_lruprev = NULL;
if (e->ep_refcnt == 0) {
lru_add(cache, ptr);
@@ -1245,6 +1274,7 @@ pinned_add(struct cache *cache, void *ptr)
return false;
}
/* Now it is time to insert the entry in the pinned list */
+
cache->c_pinned_ctx->npinned++;
cache->c_pinned_ctx->size += e->ep_size;
e->ep_state |= ENTRY_STATE_PINNED;
@@ -1754,7 +1784,7 @@ entrycache_add_int(struct cache *cache, struct backentry *e, int state, struct b
* 3) ep_state: 0 && state: 0
* ==> increase the refcnt
*/
- if (e->ep_refcnt == 0)
+ if (e->ep_refcnt == 0 && (e->ep_state & ENTRY_STATE_PINNED) == 0)
lru_delete(cache, (void *)e);
e->ep_refcnt++;
e->ep_state &= ~ENTRY_STATE_UNAVAILABLE;
@@ -1781,7 +1811,7 @@ entrycache_add_int(struct cache *cache, struct backentry *e, int state, struct b
} else {
if (alt) {
*alt = my_alt;
- if (e->ep_refcnt == 0 && (e->ep_state & ENTRY_STATE_PINNED) == 0)
+ if (my_alt->ep_refcnt == 0 && (my_alt->ep_state & ENTRY_STATE_PINNED) == 0)
lru_delete(cache, (void *)*alt);
(*alt)->ep_refcnt++;
LOG("the entry %s already exists. returning existing entry %s (state: 0x%x)\n",
@@ -2379,6 +2409,14 @@ dncache_flush(struct cache *cache)
} else {
dn = BACK_LRU_PREV(dn, struct backdn *);
}
+ if (dn == NULL) {
+ /* Safety check: we should normally exit via the CACHE_LRU_HEAD check.
+ * If we get here, c_lruhead may be NULL or the LRU list is corrupted.
+ */
+ slapi_log_err(SLAPI_LOG_WARNING, "dncache_flush",
+ "Unexpected NULL entry while flushing cache - LRU list may be corrupted\n");
+ break;
+ }
ASSERT(dn->ep_refcnt == 0);
dn->ep_refcnt++;
if (dncache_remove_int(cache, dn) < 0) {
--
2.52.0

View file

@ -0,0 +1,215 @@
From 742c12e0247ab64e87da000a4de2f3e5c99044ab Mon Sep 17 00:00:00 2001
From: Viktor Ashirov <vashirov@redhat.com>
Date: Fri, 9 Jan 2026 11:39:50 +0100
Subject: [PATCH] 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!)
---
ldap/servers/slapd/back-ldbm/instance.c | 25 ++++--
ldap/servers/slapd/upgrade.c | 107 +++++++++++++++++++++++-
2 files changed, 123 insertions(+), 9 deletions(-)
diff --git a/ldap/servers/slapd/back-ldbm/instance.c b/ldap/servers/slapd/back-ldbm/instance.c
index cb002c379..71bf0f6fa 100644
--- a/ldap/servers/slapd/back-ldbm/instance.c
+++ b/ldap/servers/slapd/back-ldbm/instance.c
@@ -190,6 +190,7 @@ ldbm_instance_create_default_indexes(backend *be)
char *ancestorid_indexes_limit = NULL;
char *parentid_indexes_limit = NULL;
struct attrinfo *ai = NULL;
+ struct attrinfo *index_already_configured = NULL;
struct index_idlistsizeinfo *iter;
int cookie;
int limit;
@@ -248,10 +249,14 @@ ldbm_instance_create_default_indexes(backend *be)
ldbm_instance_config_add_index_entry(inst, e, flags);
slapi_entry_free(e);
- e = ldbm_instance_init_config_entry(LDBM_PARENTID_STR, "eq", 0, 0, 0, "integerOrderingMatch", parentid_indexes_limit);
- ldbm_instance_config_add_index_entry(inst, e, flags);
- attr_index_config(be, "ldbm index init", 0, e, 1, 0, NULL);
- slapi_entry_free(e);
+ ainfo_get(be, (char *)LDBM_PARENTID_STR, &ai);
+ index_already_configured = ai;
+ if (!index_already_configured) {
+ e = ldbm_instance_init_config_entry(LDBM_PARENTID_STR, "eq", 0, 0, 0, "integerOrderingMatch", parentid_indexes_limit);
+ ldbm_instance_config_add_index_entry(inst, e, flags);
+ attr_index_config(be, "ldbm index init", 0, e, 1, 0, NULL);
+ slapi_entry_free(e);
+ }
e = ldbm_instance_init_config_entry("objectclass", "eq", 0, 0, 0, 0, 0);
ldbm_instance_config_add_index_entry(inst, e, flags);
@@ -288,10 +293,14 @@ ldbm_instance_create_default_indexes(backend *be)
* ancestorid is special, there is actually no such attr type
* but we still want to use the attr index file APIs.
*/
- e = ldbm_instance_init_config_entry(LDBM_ANCESTORID_STR, "eq", 0, 0, 0, "integerOrderingMatch", ancestorid_indexes_limit);
- ldbm_instance_config_add_index_entry(inst, e, flags);
- attr_index_config(be, "ldbm index init", 0, e, 1, 0, NULL);
- slapi_entry_free(e);
+ ainfo_get(be, (char *)LDBM_ANCESTORID_STR, &ai);
+ index_already_configured = ai;
+ if (!index_already_configured) {
+ e = ldbm_instance_init_config_entry(LDBM_ANCESTORID_STR, "eq", 0, 0, 0, "integerOrderingMatch", ancestorid_indexes_limit);
+ ldbm_instance_config_add_index_entry(inst, e, flags);
+ attr_index_config(be, "ldbm index init", 0, e, 1, 0, NULL);
+ slapi_entry_free(e);
+ }
slapi_ch_free_string(&ancestorid_indexes_limit);
slapi_ch_free_string(&parentid_indexes_limit);
diff --git a/ldap/servers/slapd/upgrade.c b/ldap/servers/slapd/upgrade.c
index 858392564..b02e37ed6 100644
--- a/ldap/servers/slapd/upgrade.c
+++ b/ldap/servers/slapd/upgrade.c
@@ -330,6 +330,107 @@ upgrade_remove_subtree_rename(void)
return UPGRADE_SUCCESS;
}
+/*
+ * Check if parentid/ancestorid indexes are missing the integerOrderingMatch
+ * matching rule.
+ *
+ * This function logs a warning if we detect this condition, advising
+ * the administrator to reindex the affected attributes.
+ */
+static upgrade_status
+upgrade_check_id_index_matching_rule(void)
+{
+ struct slapi_pblock *pb = slapi_pblock_new();
+ Slapi_Entry **backends = NULL;
+ const char *be_base_dn = "cn=ldbm database,cn=plugins,cn=config";
+ const char *be_filter = "(objectclass=nsBackendInstance)";
+ const char *attrs_to_check[] = {"parentid", "ancestorid", NULL};
+ upgrade_status uresult = UPGRADE_SUCCESS;
+
+ /* Search for all backend instances */
+ slapi_search_internal_set_pb(
+ pb, be_base_dn,
+ LDAP_SCOPE_ONELEVEL,
+ be_filter, NULL, 0, NULL, NULL,
+ plugin_get_default_component_id(), 0);
+ slapi_search_internal_pb(pb);
+ slapi_pblock_get(pb, SLAPI_PLUGIN_INTOP_SEARCH_ENTRIES, &backends);
+
+ if (backends) {
+ for (size_t be_idx = 0; backends[be_idx] != NULL; be_idx++) {
+ const char *be_name = slapi_entry_attr_get_ref(backends[be_idx], "cn");
+ if (!be_name) {
+ continue;
+ }
+
+ /* Check each attribute that should have integerOrderingMatch */
+ for (size_t attr_idx = 0; attrs_to_check[attr_idx] != NULL; attr_idx++) {
+ const char *attr_name = attrs_to_check[attr_idx];
+ struct slapi_pblock *idx_pb = slapi_pblock_new();
+ Slapi_Entry **idx_entries = NULL;
+ char *idx_dn = slapi_create_dn_string("cn=%s,cn=index,cn=%s,%s",
+ attr_name, be_name, be_base_dn);
+ char *idx_filter = "(objectclass=nsIndex)";
+ PRBool has_matching_rule = PR_FALSE;
+
+ if (!idx_dn) {
+ slapi_pblock_destroy(idx_pb);
+ continue;
+ }
+
+ slapi_search_internal_set_pb(
+ idx_pb, idx_dn,
+ LDAP_SCOPE_BASE,
+ idx_filter, NULL, 0, NULL, NULL,
+ plugin_get_default_component_id(), 0);
+ slapi_search_internal_pb(idx_pb);
+ slapi_pblock_get(idx_pb, SLAPI_PLUGIN_INTOP_SEARCH_ENTRIES, &idx_entries);
+
+ if (idx_entries && idx_entries[0]) {
+ /* Index exists, check if it has integerOrderingMatch */
+ Slapi_Attr *mr_attr = NULL;
+ if (slapi_entry_attr_find(idx_entries[0], "nsMatchingRule", &mr_attr) == 0) {
+ Slapi_Value *sval = NULL;
+ int idx;
+ for (idx = slapi_attr_first_value(mr_attr, &sval);
+ idx != -1;
+ idx = slapi_attr_next_value(mr_attr, idx, &sval)) {
+ const struct berval *bval = slapi_value_get_berval(sval);
+ if (bval && bval->bv_val &&
+ strcasecmp(bval->bv_val, "integerOrderingMatch") == 0) {
+ has_matching_rule = PR_TRUE;
+ break;
+ }
+ }
+ }
+
+ if (!has_matching_rule) {
+ /* Index exists but doesn't have integerOrderingMatch, log a warning */
+ slapi_log_err(SLAPI_LOG_ERR, "upgrade_check_id_index_matching_rule",
+ "Index '%s' in backend '%s' is missing 'nsMatchingRule: integerOrderingMatch'. "
+ "Incorrectly configured system indexes can lead to poor search performance, replication issues, and other operational problems. "
+ "To fix this, add the matching rule and reindex: "
+ "dsconf <instance> backend index set --add-mr integerOrderingMatch --attr %s %s && "
+ "dsconf <instance> backend index reindex --attr %s %s. "
+ "WARNING: Reindexing can be resource-intensive and may impact server performance on a live system. "
+ "Consider scheduling reindexing during maintenance windows or periods of low activity.\n",
+ attr_name, be_name, attr_name, be_name, attr_name, be_name);
+ }
+ }
+
+ slapi_ch_free_string(&idx_dn);
+ slapi_free_search_results_internal(idx_pb);
+ slapi_pblock_destroy(idx_pb);
+ }
+ }
+ }
+
+ slapi_free_search_results_internal(pb);
+ slapi_pblock_destroy(pb);
+
+ return uresult;
+}
+
/*
* Upgrade the base config of the PAM PTA plugin.
*
@@ -547,7 +648,11 @@ upgrade_server(void)
if (upgrade_pam_pta_default_config() != UPGRADE_SUCCESS) {
return UPGRADE_FAILURE;
}
-
+
+ if (upgrade_check_id_index_matching_rule() != UPGRADE_SUCCESS) {
+ return UPGRADE_FAILURE;
+ }
+
return UPGRADE_SUCCESS;
}
--
2.52.0

View file

@ -0,0 +1,67 @@
From f5de84e309d5a4435198c9cc9b31b5722979f1ff Mon Sep 17 00:00:00 2001
From: Viktor Ashirov <vashirov@redhat.com>
Date: Mon, 12 Jan 2026 10:58:02 +0100
Subject: [PATCH 5/5] 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!)
---
ldap/servers/slapd/back-ldbm/instance.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/ldap/servers/slapd/back-ldbm/instance.c b/ldap/servers/slapd/back-ldbm/instance.c
index 71bf0f6fa..2a6e8cbb8 100644
--- a/ldap/servers/slapd/back-ldbm/instance.c
+++ b/ldap/servers/slapd/back-ldbm/instance.c
@@ -190,7 +190,7 @@ ldbm_instance_create_default_indexes(backend *be)
char *ancestorid_indexes_limit = NULL;
char *parentid_indexes_limit = NULL;
struct attrinfo *ai = NULL;
- struct attrinfo *index_already_configured = NULL;
+ int index_already_configured = 0;
struct index_idlistsizeinfo *iter;
int cookie;
int limit;
@@ -250,7 +250,8 @@ ldbm_instance_create_default_indexes(backend *be)
slapi_entry_free(e);
ainfo_get(be, (char *)LDBM_PARENTID_STR, &ai);
- index_already_configured = ai;
+ /* Check if the attrinfo is actually for parentid, not a fallback to .default */
+ index_already_configured = (ai != NULL && strcmp(ai->ai_type, LDBM_PARENTID_STR) == 0);
if (!index_already_configured) {
e = ldbm_instance_init_config_entry(LDBM_PARENTID_STR, "eq", 0, 0, 0, "integerOrderingMatch", parentid_indexes_limit);
ldbm_instance_config_add_index_entry(inst, e, flags);
@@ -294,7 +295,8 @@ ldbm_instance_create_default_indexes(backend *be)
* but we still want to use the attr index file APIs.
*/
ainfo_get(be, (char *)LDBM_ANCESTORID_STR, &ai);
- index_already_configured = ai;
+ /* Check if the attrinfo is actually for ancestorid, not a fallback to .default */
+ index_already_configured = (ai != NULL && strcmp(ai->ai_type, LDBM_ANCESTORID_STR) == 0);
if (!index_already_configured) {
e = ldbm_instance_init_config_entry(LDBM_ANCESTORID_STR, "eq", 0, 0, 0, "integerOrderingMatch", ancestorid_indexes_limit);
ldbm_instance_config_add_index_entry(inst, e, flags);
--
2.52.0

View file

@ -1,4 +1,4 @@
For detailed information on developing plugins for
389 Directory Server visit.
For detailed information on developing plugins for 389 Directory Server visit
http://port389/wiki/Plugins
https://www.port389.org/docs/389ds/design/plugins.html
https://github.com/389ds/389-ds-base/blob/main/src/slapi_r_plugin/README.md

View file

@ -1,23 +0,0 @@
#!/bin/bash
DATE=`date +%Y%m%d`
# use a real tag name here
VERSION=1.3.5.14
PKGNAME=389-ds-base
TAG=${TAG:-$PKGNAME-$VERSION}
#SRCNAME=$PKGNAME-$VERSION-$DATE
SRCNAME=$PKGNAME-$VERSION
test -d .git || {
echo you must be in the ds git repo to use this
echo bye
exit 1
}
if [ -z "$1" ] ; then
dir=.
else
dir="$1"
fi
git archive --prefix=$SRCNAME/ $TAG | bzip2 > $dir/$SRCNAME.tar.bz2

View file

@ -1,16 +0,0 @@
#!/bin/bash
DATE=`date +%Y%m%d`
# use a real tag name here
VERSION=1.3.5.14
PKGNAME=389-ds-base
TAG=${TAG:-$PKGNAME-$VERSION}
URL="https://git.fedorahosted.org/git/?p=389/ds.git;a=snapshot;h=$TAG;sf=tgz"
SRCNAME=$PKGNAME-$VERSION
wget -O $SRCNAME.tar.gz "$URL"
echo convert tgz format to tar.bz2 format
gunzip $PKGNAME-$VERSION.tar.gz
bzip2 $PKGNAME-$VERSION.tar

File diff suppressed because it is too large Load diff

3
389-ds-base.sysusers Normal file
View file

@ -0,0 +1,3 @@
#Type Name ID GECOS Home directory Shell
g dirsrv 389
u dirsrv 389:389 "user for 389-ds-base" /usr/share/dirsrv/ /sbin/nologin

513
changelog Normal file
View file

@ -0,0 +1,513 @@
* Tue May 14 2024 James Chapman <jachapma@redhat.com> - 3.1.0-1
- Bump version to 3.1.0
- Issue 6142 - Fix CI tests (#6161)
- Issue 6157 - Cockipt crashes when getting replication status if topology contains an old 389ds version (#6158)
- Issue 5105 - lmdb - Cannot create entries with long rdn - fix covscan (#6131)
- Issue 6086 - Ambiguous warning about SELinux in dscreate for non-root user
- Issue 6094 - Add coverity scan workflow
- Issue 5962 - Rearrange includes for 32-bit support logic
- Issue 6046 - Make dscreate to work during kickstart installations
- Issue 6073 - Improve error log when running out of memory (#6084)
- Issue 6071 - Instance creation/removal is slow
- Issue 6010 - 389 ds ignores nsslapd-maxdescriptors (#6027)
- Issue 6075 - Ignore build artifacts (#6076)
- Issue 6068 - Add dscontainer stop function
* Mon Apr 15 2024 James Chapman <jachapma@redhat.com> - 3.0.2-1
- Bump version to 3.0.2
- Issue 6082 - Remove explicit dependencies toward libdb - revert default (#6145)
- Issue 6142 - [RFE] Add LMDB configuration related checks into Healthcheck tool (#6143)
- Issue 6141 - freeipa test_topology_TestCASpecificRUVs is failing (#6144)
- Issue 6136 - failure in freeipa tests (#6137)
- Issue 6119 - Synchronise accept_thread with slapd_daemon (#6120)
- Issue 6105 - lmdb - Cannot create entries with long rdn (#6130)
- Issue 6082 - Remove explicit dependencies toward libdb (#6083)
- Issue i6057 - Fix3 - Fix covscan issues (#6127)
- Issue 6057 - vlv search may result wrong result with lmdb - Fix 2 (#6121)
- Issue 6057 - vlv search may result wrong result with lmdb (#6091)
- Issue 6092 - passwordHistory is not updated with a pre-hashed password (#6093)
- Issue 6133 - Move slapi_pblock_set_flag_operation_notes() to slapi-plugin.h
- Issue 6125 - dscreate interactive fails when chosing mdb backend (#6126)
- Issue 6110 - Typo in Account Policy plugin message
- Issue 6080 - ns-slapd crash in referint_get_config (#6081)
- Issue 6117 - Fix the UTC offset print (#6118)
- Issue 5305 - OpenLDAP version autodetection doesn't work
- Issue 6112 - RFE - add new operation note for MFA authentications
- Issue 5842 - Add log buffering to audit log
- Issue 3527 - Support HAProxy and Instance on the same machine configuration (#6107)
- Issue 6103 - New connection timeout error breaks errormap (#6104)
- Issue 6096 - Improve connection timeout error logging (#6097)
- Issue 6067 - Improve dsidm CLI No Such Entry handling (#6079)
- Issue 6067 - Add hidden -v and -j options to each CLI subcommand (#6088)
- Issue 6061 - Certificate lifetime displayed as NaN
* Wed Jan 31 2024 Pete Walter <pwalter@fedoraproject.org> - 3.0.1-2
- Rebuild for ICU 74
* Tue Jan 30 2024 Simon Pichugin <spichugi@redhat.com> - 3.0.1-1
- Bump version to 3.0.1
- Issue 6043, 6044 - Enhance Rust and JS bundling and add SPDX licenses for both (#6045)
- Issue 3555 - Remove audit-ci from dependencies (#6056)
- Issue 6052 - Paged results test sets hostname to `localhost` on test collection
- Issue 6051 - Drop unused pytest markers
- Issue 6049 - lmdb - changelog is wrongly recreated by reindex task (#6050)
- Issue 6047 - Add a check for tagged commits
- Issue 6041 - dscreate ds-root - accepts relative path (#6042)
- Switch default backend to lmdb and bump version to 3.0 (#6013)
- Issue 6032 - Replication broken after backup restore (#6035)
- Issue 6037 - Server crash at startup in vlvIndex_delete (#6038)
- Issue 6034 - Change replica_id from str to int
- Issue 6028 - vlv index keys inconsistencies (#6031)
- Issue 5989 - RFE support of inChain Matching Rule (#5990)
- Issue 6022 - lmdb inconsistency between vlv index and vlv cache names (#6026)
- Issue 6015 - Fix typo remeber (#6014)
- Issue 6016 - Pin upload/download artifacts action to v3
- Issue 5939 - During an update, if the target entry is reverted in the entry cache, the server should not retry to lock it (#6007)
- Issue 4673 - Update Rust crates
- Issue 6004 - idletimeout may be ignored (#6005)
- Issue 5954 - Disable Transparent Huge Pages
- Issue 5997 - test_inactivty_and_expiration CI testcase is wrong (#5999)
- Issue 5993 - Fix several race condition around CI tests (#5996)
- Issue 5944 - Reversion of the entry cache should be limited to BETXN plugin failures (#5994)
- Bump openssl from 0.10.55 to 0.10.60 in /src (#5995)
- Issue 5980 - Improve instance startup failure handling (#5991)
- Issue 5976 - Fix freeipa install regression with lmdb (#5977)
- Issue 5984 - Crash when paged result search are abandoned - fix2 (#5987)
- Issue 5984 - Crash when paged result search are abandoned (#5985)
- Issue 5947 - CI test_vlv_recreation_reindex fails on LMDB (#5979)
* Mon Jan 29 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.5-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Mon Jan 22 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.5-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Fri Jan 19 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.5-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Thu Jan 18 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.5-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Thu Jan 18 2024 Viktor Ashirov <vashirov@redhat.com> - 2.4.5-1
- Bump version to 2.4.5
- Issue 5989 - RFE support of inChain Matching Rule (#5990)
- Issue 5939 - During an update, if the target entry is reverted in the entry cache, the server should not retry to lock it (#6007)
- Issue 5944 - Reversion of the entry cache should be limited to BETXN plugin failures (#5994)
- Issue 5954 - Disable Transparent Huge Pages
- Issue 5984 - Crash when paged result search are abandoned - fix2 (#5987)
- Issue 5984 - Crash when paged result search are abandoned (#5985)
* Wed Nov 15 2023 James Chapman <jachapma@redhat.com> - 2.4.4
- Bump version to 2.4.4
- Issue 5971 - CLI - Fix password prompt for repl status (#5972)
- Issue 5973 - Fix fedora cop RawHide builds (#5974)
- Revert "Issue 5761 - Worker thread dynamic management (#5796)" (#5970)
- Issue 5966 - CLI - Custom schema object is removed on a failed edit (#5967)
- Issue 5786 - Update permissions for Release workflow
- Issue 5960 - Subpackages should have more strict interdependencies
- Issue 3555 - UI - Fix audit issue with npm - babel/traverse (#5959)
- Issue 4843 - Fix dscreate create-template issue (#5950)
- bugfix for --passwd-file not working on latest version (#5934)
- Issue 5843 - dsconf / dscreate should be able to handle lmdb parameters (#5943)
- Bump postcss from 8.4.24 to 8.4.31 in /src/cockpit/389-console (#5945)
- Issue 5938 - Attribute Names changed to lowercase after adding the Attributes (#5940)
- issue 5924 - ASAN server build crash when looping opening/closing connections (#5926)
- Issue 1925 - Add a CI test (#5936)
- Issue 5732 - Localizing Cockpit's 389ds Plugin using CockpitPoPlugin (#5764)
- Issue 1870 - Add a CI test (#5929)
- Issue 843 - Add a warning to slapi_valueset_add_value_ext (#5925)
- Issue 5761 - Worker thread dynamic management (#5796)
- Issue 1802 - Improve ldclt man page (#5928)
- Issue 1456 - Add a CI test that verifies there is no issue (#5927)
- Issue 1317 - Add a CI test (#5923)
- Issue 1081 - CI - Add more tests for overwriting x-origin issue (#5815)
- Issue 1115 - Add a CI test (#5913)
- Issue 5848 - Fix condition and add a CI test (#5916)
- Issue 5848 - Fix condition and add a CI test (#5916)
- Issue 5914 - UI - server settings page validation improvements and db index fixes
- Issue 5909 - Multi listener hang with 20k connections (#5917)
- Issue 5902 - Fix previous commit regression (#5919)
- pass instance correctly to ds_is_older (#5903)
- Issue 5909 - Multi listener hang with 20k connections (#5910)
- Issue 5722 - improve testcase (#5904)
- Issue 5203 - outdated version in provided metadata for lib389
- Bug Description:
- issue 5890 part 2 - Need a tester for testing multiple listening thread feature (#5897)
- Issue i5846 - Crash when lmdb import is aborted (#5881)
- Issue 5894 - lmdb import error fails with Could not store the entry (#5895)
- Issue 5890 - Need a tester for testing multiple listening thread feature (#5891)
- Issue 5082 - slugify: ModuleNotFoundError when running test cases
- Issue 4551 - Part 2 - Fix build warning of previous PR (#5888)
- Issue 5834 - AccountPolicyPlugin erroring for some users (#5866)
- Issue 5872 - part 2 - fix is_dbi regression (#5887)
- Issue 4758 - Add tests for WebUI
- Issue 5848 - dsconf should prevent setting the replicaID for hub and consumer roles (#5849)
- Issue 5883 - Remove connection mutex contention risk on autobind (#5886)
- Issue 5872 - `dbscan()` in lib389 can return bytes
* Thu Aug 3 2023 Mark Reynolds<mreynolds@redhat.com> - 2.4.3-1
- Bump version to 2.4.3-1
- Issue 5729 - Memory leak in factory_create_extension (#5814)
- Issue 5870 - ns-slapd crashes at startup if a backend has no suffix (#5871)
- Issue 5876 - CI Test random failure - Import (#5879)
- Issue 5877 - test_basic_ldapagent breaks test_setup_ds_as_non_root* tests
- Issue 5867 - lib389 should use filter for tarfile as recommended by PEP 706 (#5868)
- Issue 5853 - Update Cargo.lock and fix minor warning (#5854)
- Issue 5785 - CLI - arg completion is broken
- Issue 5864 - Server fails to start after reboot because it's unable to access nsslapd-rundir
- Issue 5856 - SyntaxWarning: invalid escape sequence '\,'
- Issue 5859 - dbscan fails with AttributeError: 'list' object has no attribute 'extends'
- Issue 3527 - UI - Add nsslapd-haproxy-trusted-ip to server setting (#5839)
- Issue 4551 - Paged search impacts performance (#5838)
- Issue 4758 - Add tests for WebUI
- Issue 4169 - UI - Fix retrochangelog and schema Typeaheads (#5837)
- issue 5833 - dsconf monitor backend fails on lmdb (#5835)
- Issue 3555 - UI - Fix audit issue with npm - stylelint (#5836)
* Mon Jul 24 2023 Mark Reynolds <mreynolds@redhat.com> - 2.4.2-5
- Bump version to 2.4.2-5
- Add the bash completion scripts to the appropriate files section
* Wed Jul 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.2-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Tue Jul 11 2023 František Zatloukal <fzatlouk@redhat.com> - 2.4.2-3
- Rebuilt for ICU 73.2
* Mon Jul 10 2023 Mark Reynolds <mreynolds@redhat.com> - 2.4.2-2
- Bump version to 2.4.2-2
- Issue 5752 - RFE - Provide a history for LastLoginTime (#5807)
= Issue 4719 - CI - Add dsconf add a PTA URL test
* Fri Jul 7 2023 Mark Reynolds <mreynolds@redhat.com> - 2.4.2-1
- Bump version to 2.4.2
- Issue 5793 - UI - fix suffix selection in export modal
- Issue 5793 - UI - Fix minor crashes (#5827)
- Issue 5825 - healthcheck - password storage scheme warning needs more info
- Issue 5822 - Allow empty export path for db2ldif
- Issue 5755 - Massive memory leaking on update operations (#5824)
- Issue 5701 - CI - Add more tests for referral mode fix (#5810)
- Issue 5551 - Almost empty and not loaded ns-slapd high cpu load
- Issue 5755 - The Massive memory leaking on update operations (#5803)
- Issue 2375 - CLI - Healthcheck - revise and add new checks
- Bump openssl from 0.10.52 to 0.10.55 in /src
- Issue 5793 - UI - movce from webpack to esbuild bundler
- Issue 5752 - CI - Add more tests for lastLoginHistorySize RFE (#5802)
- Issue 3527 - Fix HAProxy x390x compatibility and compiler warnings (#5801)
- Issue 5798 - CLI - Add multi-valued support to dsconf config (#5799)
- Issue 5781 - Bug handling return code of pre-extended operation plugin.
- Issue 5785 - move bash completion to post section of specfile
- Issue 5156 - (cont) RFE slapi_memberof reusing memberof values (#5744)
- Issue 4758 - Add tests for WebUI
- Issue 3527 - Add PROXY protocol support (#5762)
- Issue 5789 - Improve ds-replcheck error handling
- Issue 5786 - CLI - registers tools for bash completion
- Issue 5786 - Set minimal permissions on GitHub Workflows (#5787)
- Issue 5646 - Various memory leaks (#5725)
- Issue 5778 - UI - Remove error message if .dsrc is missing
- Issue 5751 - Cleanallruv task crashes on consumer (#5775)
* Wed Jun 28 2023 Python Maint <python-maint@redhat.com> - 2.4.1-2
- Rebuilt for Python 3.12
* Thu May 18 2023 Mark Reynolds <mreynolds@redhat.com> - 2.4.1-1
- Bump version to 2.4.1
- Issue 5770 - RFE - Extend Password Adminstrators to allow skipping password info updates
- Issue 5768 - CLI/UI - cert checks are too strict, and other issues
- Issue 5722 - fix compilation warnings (#5771)
- Issue 5765 - Improve installer selinux handling
- Issue 152 - RFE - Add support for LDAP alias entries
- Issue 5052 - BUG - Custom filters prevented entry deletion (#5060)
- Issue 5752 - RFE - Provide a history for LastLoginTime (#5753)
- Issue 5722 - RFE When a filter contains 'nsrole', improve response time by rewriting the filter (#5723)
- Issue 5704 - crash in sync_refresh_initial_content (#5720)
- Issue 5738 - RFE - UI - Read/write replication monitor info to .dsrc file
- Issue 5156 - build warnings (#5758)
- Issue 5749 - RFE - Allow Account Policy Plugin to handle inactivity and expiration at the same time
- Issue 5743 - Disabling replica crashes the server (#5746)
- Issue 2562 - Copy config files into backup directory
- Issue 5156 - fix build breakage from slapi-memberof commit
- Issue 4758 - Add tests for WebUI
* Tue Apr 25 2023 Mark Reynolds <mreynolds@redhat.com> - 2.4.0-1
- Bump version to 2.4.0
- Issue 5156 - RFE that implement slapi_memberof (#5694)
- Issue 5734 - RFE - Exclude pwdFailureTime and ContextCSN (#5735)
- Issue 5726 - ns-slapd crashing in ldbm_back_upgradednformat (#5727)
- Issue 4758 - Add tests for WebUI
- Issue 5718 - Memory leak in connection table (#5719)
- Issue 5705 - Add config parameter to close client conns on failed bind (#5712)
- Issue 4758 - Add tests for WebUI
- Issue 5643 - Memory leak in entryrdn during delete (#5717)
- Issue 5714 - UI - fix typo, db settings, log settings, and LDAP editor paginations
- Issue 5701 - CLI - Fix referral mode setting (#5708)
- Bump openssl from 0.10.45 to 0.10.48 in /src (#5709)
- Issue 5710 - subtree search statistics for index lookup does not report ancestorid/entryrdn lookups (#5711)
- Issue 5697 - Obsolete nsslapd-ldapimaprootdn attribute (#5698)
- Issue 1081 - Stop schema replication from overwriting x-origin
- Issue 4812 - Listener thread does not scale with a high num of established connections (#5706)
- Issue 4812 - Listener thread does not scale with a high num of established connections (#5681)
- Bump webpack from 5.75.0 to 5.76.0 in /src/cockpit/389-console (#5699)
- Issue 5598 - (3rd) In 2.x, SRCH throughput drops by 10% because of handling of referral (#5692)
- Issue 5598 - (2nd) In 2.x, SRCH throughput drops by 10% because of handling of referral (#5691)
- Issue 5687 - UI - sensitive information disclosure
- Issue 5661 - LMDB hangs while Rebuilding the replication changelog RUV (#5676)
- Issue 5554 - Add more tests to security_basic_test suite
- Issue 4583 - Update specfile to skip checks of ASAN builds
- Issue 4758 - Add tests for WebUI
- Issue 3604 - UI - Add support for Subject Alternative Names in CSR
- Issue 5600 - buffer overflow when enabling sync repl plugin when dynamic plugins is enabled
- Issue 5640 - Update logconv for new logging format
- Issue 5162 - CI - fix error message for invalid pem file
- Issue 5598 - In 2.x, SRCH throughput drops by 10% because of handling of referral (#5604)
- Issue 5671 - covscan - clang warning (#5672)
- Issue 5267 - CI - Fix issues with nsslapd-return-original-entrydn
- Issue 5666 - CLI - Add timeout parameter for tasks
- Issue 5567 - CLI - make ldifgen use the same default ldif name for all options
- Issue 5647 - Fix unused variable warning from previous commit (#5670)
- Issue 5162 - Lib389 - verify certificate type before adding
- Issue 5642 - Build fails against setuptools 67.0.0
- Issue 5630 - CLI - need to add logging filter for stdout
- Issue 5646 - CLI/UI - do not hardcode password storage schemes
- Issue 5640 - Update logconv for new logging format
- issue 5647 - covscan: memory leak in audit log when adding entries (#5650)
- Issue 5658 - CLI - unable to add attribute with matching rule
- Issue 5653 - covscan - fix invalid dereference
- Issue 5652 - Libasan crash in replication/cascading_test (#5659)
- Issue 5628 - Handle graceful timeout in CI tests (#5657)
- Issue 5648 - Covscan - Compiler warnings (#5651)
- Issue 5630 - CLI - error messages should goto stderr
- Issue 2435 - RFE - Raise IDL Scan Limit to INT_MAX (#5639)
- Issue 5632 - CLI - improve error handling with db2ldif
- Issue 5517 - Replication conflict CI test sometime fails (#5518)
- Issue 5634 - Deprecated warning related to github action workflow code (#5635)
- Issue 5637 - Covscan - fix Buffer Overflows (#5638)
- Issue 5624 - RFE - UI - export certificates, and import text base64 encoded certificates
- Bump tokio from 1.24.1 to 1.25.0 in /src (#5629)
- Issue 4577 - Add LMDB pytest github action (#5627)
- Issue 4293 - RFE - CLI - add dsrc options for setting user and group subtrees
- Remove stale libevent(-devel) dependency
- Issue 5578 - dscreate ds-root does not normaile paths (#5613)
- Issue 5497 - boolean attributes should be case insensitive
* Fri Mar 31 2023 Viktor Ashirov <vashirov@redhat.com> - 2.3.2-3
- Fix build issue against setuptools 67.0.0 (#2183375)
* Tue Feb 28 2023 Simon Pichugin <spichugi@redhat.com> - 2.3.2-2
- Use systemd-sysusers for dirsrv user and group (#2173834)
* Mon Jan 23 2023 Mark Reynolds <mreynolds@redhat.com> - 2.3.2-1
- Bump version to 2.3.2
- Issue 5547 - automember plugin improvements
- Issue 5607, 5351, 5611 - UI/CLI - fix various issues
- Issue 5610 - Build failure on Debian
- Issue 5608 - UI - need to replace some "const" with "let"
- Issue 5560 - dscreate run by non superuser set defaults requiring superuser privilege (#5579)
- Issue 3604 - Create a private key/CSR with dsconf/Cockpit (#5584)
- Issue 5605 - Adding a slapi_log_backtrace function in libslapd (#5606)
- Issue 5602 - UI - browser crash when trying to modify read-only variable
- Issue 5581 - UI - Support cockpit dark theme
- Issue 5593 - CLI - dsidm account subtree-status fails with TypeError
- Issue 5591 - BUG - Segfault in cl5configtrim with invalid confi (#5592)
- Fix latest npm audit failures
- Issue 5599 - CI - webui tests randomly fail
- Issue 5348 - RFE - CLI - add functionality to do bulk updates to entries
- Issue 5588 - Fix CI tests
- Issue 5585 - lib389 password policy DN handling is incorrect (#5587)
- Issue 5521 - UI - Update plugins for new split PAM and LDAP pass thru auth
- Bump json5 from 2.2.1 to 2.2.3 in /src/cockpit/389-console
- Issue 5236 - UI add specialized group edit modal
- Issue 5550 - dsconf monitor crashes with Error math domain error (#5553)
- Issue 5278 - CLI - dsidm asks for the old password on password reset
- Issue 5531 - CI - use universal_lines in capture_output
- Issue 5425 - CLI - add confirmation arg when deleting backend
- Issue 5558 - non-root instance fails to start on creation (#5559)
- Issue 5545 - A random crash in import over lmdb (#5546)
- Issue 3615 - CLI - prevent virtual attribute indexing
- Update specfile and rust crates
- Issue 5413 - Allow mutliple MemberOf fixup tasks with different bases/filters
- Issue 5554 - Add more tests to security_basic_test suite (#5555)
- Issue 5561 - Nightly tests are failing
- Issue 5521 - RFE - split pass through auth cli
- Issue 5521 - BUG - Pam PTA multiple issues
- Issue 5544 - Increase default task TTL
- Issue 5526 - RFE - Improve saslauthd migration options (#5528)
- Issue 5539 - Make logger's parameter name unified (#5540)
- Issue 5541 - Fix typo in `lib389.cli_conf.backend._get_backend` (#5542)
- Issue 3729 - (cont) RFE Extend log of operations statistics in access log (#5538)
- Issue 5534 - Fix a rebase typo (#5537)
- Issue 5534 - Add copyright text to the repository files
* Wed Jan 18 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Sat Dec 31 2022 Pete Walter <pwalter@fedoraproject.org> - 2.3.1-2
- Rebuild for ICU 72
* Fri Nov 18 2022 Mark Reynolds <mreynolds@redhat.com> - 2.3.1-1
- Bump version to 2.3.1
- Issue 5532 - Make db compaction TOD day more robust.
- Issue 3729 - RFE Extend log of operations statistics in access log (#5508)
- Issue 5529 - UI - Fix npm vulnerability in loader-utils
- Issue 5490 - tombstone in entryrdn index with lmdb but not with bdb (#5498)
- Issue 5162 - Fix dsctl tls ca-certfiicate add-cert arg requirement
- Issue 5510 - remove twalk_r dependency to build on RHEL8 (#5516)
- Issue 5162 - RFE - CLI allow adding CA certificate bundles
- Issue 5440 - memberof is slow on update/fixup if there are several 'groupattr' (#5455)
- Issue 5512 - BUG - skip pwdPolicyChecker OC in migration (#5513)
- Issue 3555 - UI - fix audit issue with npm loader-utils (#5514)
- Issue 5505 - Fix compiler warning (#5506)
- Issue 5469 - Increase the default value of nsslapd-conntablesize (#5472)
- Issue 5408 - lmdb import is slow (#5481)
- Issue 5429 - healthcheck - add checks for MemberOf group attrs being indexed
- Issue 5502 - RFE - Add option to display entry attributes in audit log
- Issue 5495 - BUG - Minor fix to dds skip, inconsistent attrs caused errors (#5501)
- Issue 5367 - RFE - store full DN in database record
- Issue 5495 - RFE - skip dds during migration. (#5496)
- Issue 5491 - UI - Add rework and finish jpegPhoto functionality (#5492)
- Issue 5368 - Retro Changelog trimming does not work (#5486)
- Issue 5487 - Fix various issues with logconv.pl
- Issue 5476 - RFE - add memberUid read aci by default (#5477)
- Issue 5482 - lib389 - Can not enable replication with a mixed case suffix
- Issue 5478 - Random crash in connection code during server shutdown (#5479)
- Issue 3061 - RFE - Add password policy debug log level
- Issue 5302 - Release tarballs don't contain cockpit webapp
- Issue 5262 - high contention in find_entry_internal_dn on mixed load (#5264)
- Issue 4324 - Revert recursive pthread mutex change (#5463)
- Issue 5462 - RFE - add missing default indexes (#5464)
- Issue 5465 - Fix dbscan linking (#5466)
- Issue 5271 - Serialization of pam_passthrough causing high etimes (#5272)
- Issue 5453 - UI/CLI - Changing Root DN breaks UI
- Issue 5446 - Fix some covscan issues (#5451)
- Issue 4308 - checking if an entry is a referral is expensive
- Issue 5447 - UI - add NDN max cache size to UI
- Issue 5443 - UI - disable save button while saving
- Issue 5413 - Allow only one MemberOf fixup task at a time
- Issue 4592 - dscreate error with custom dir_path (#5434)
- Issue 5158 - entryuuid fixup tasks fails in replicated topology (#5439)
* Tue Sep 20 2022 Mark Reynolds <mreynolds@redhat.com> - 2.3.0-2
- Bump version to 2.3.0-2
- Update old pcre-devel requirement to pcre2-devel
* Thu Sep 1 2022 Mark Reynolds <mreynolds@redhat.com> - 2.3.0-1
- Bump version to 2.3.0
- Issue 5012 - Migrate pcre to pcre2 - remove match limit
- Issue 5356 - Make Rust non-optional and update default password storage scheme
- Issue 5012 - Migrate pcre to pcre2
- Issue 5428 - Fix regression with nscpEntryWsi computation
- Fix missing 'not' in description (closes #5423) (#5424)
- Issue 5421 - CI - makes replication/acceptance_test.py::test_modify_entry more robust (#5422)
- Issue 3903 - fix repl keep alive event interval
- Issue 5418 - Sync_repl may crash while managing invalid cookie (#5420)
- Issue 5415 - Hostname when set to localhost causing failures in other tests
- Issue 5412 - lib389 - do not set backend name to lowercase
- Issue 5407 - sync_repl crashes if enabled while dynamic plugin is enabled (#5411)
- Issue 5385 - LMDB - import crash in rdncache_add_elem (#5406)
- Issue 5403 - Memory leak in conntection table mulit list (#5404)
- Issue 3903 - keep alive update event starts too soon
- Issue 5397 - Fix various memory leaks
- Issue 5399 - UI - LDAP Editor is not updated when we switch instances (#5400)
- Issue 3903 - Supplier should do periodic updates
- Issue 5377 - Code cleanup: Fix Covscan invalid reference (#5393)
- Issue 5394 - configure doesn't check for lmdb and json-c
- Issue 5392 - dscreate fails when using alternative ports in the SELinux hi_reserved_port_t label range
- Issue 5386 - BUG - Update sudoers schema to correctly support UTF-8 (#5387)
- Issue 5388 - fix use-after-free and deadcode
- Issue 5383 - UI - Various fixes and RFE's for UI
- Issue 4656 - Remove problematic language from source code
- Issue 5380 - Separate cleanAllRUV code into new file
- Issue 5322 - optime & wtime on rejected connections is not properly set
- Issue 5335 - RFE - Add Security Audit Log
- Issue 5375 - CI - disable TLS hostname checking
- Issue 981 - Managed Entries betxnpreoperation - transaction not aborted on managed entry failure (#5369)
- Issue 5373 - dsidm user get_dn fails with search_ext() argument 1 must be str, not function
- Issue 5371 - Update npm and cargo packages
- Issue 3069 - Support ECDSA private keys for TLS (#5365)
- Issue 5290 - Importing certificate chain files via "import-server-key-cert" no longer works (#5293)
* Mon Aug 01 2022 Frantisek Zatloukal <fzatlouk@redhat.com> - 2.2.2-3
- Rebuilt for ICU 71.1
* Wed Jul 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.2.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Tue Jul 5 2022 Mark Reynolds <mreynolds@redhat.com> - 2.2.2-1
- Bump version to 2.2.2
- Issue 5221 - fix covscan (#5359)
- Issue 5294 - Report Portal 5 is not processing an XML file with (#5358)
- Issue 5353 - CLI - dsconf backend export breaks with multiple backends
- Issue 5346 - New connection table fails with ASAN failures (#5350)
- Issue 5345 - BUG - openldap migration fails when ppolicy is active (#5347)
- Issue 5323 - BUG - improve skipping of monitor db (#5340)
- Issue 5329 - Improve replication extended op logging
- Issue 5343 - Various improvements to winsync
- Issue 4932 - CLI - add parser aliases to long arg names
- Issue 5332 - BUG - normalise filter as intended
- Issue 5327 - Validate test metadata
- Issue 4812 - Scalability with high number of connections (#5090)
- Issue 4348 - Add tests for dsidm
- Issue 5333 - 389-ds-base fails to build with Python 3.11
* Thu Jun 16 2022 Python Maint <python-maint@redhat.com> - 2.2.1-4
- Rebuilt for Python 3.11
* Wed Jun 15 2022 Mark Reynolds <mreynolds@redhat.com> - 2.2.1-3
- Bump version to 2.2.1-3
- Issue 5332 - BUG - normalise filter as intended
- Issue 5327 - Validate test metadata
- Issue 4348 - Add tests for dsidm
- Bump crossbeam-utils from 0.8.6 to 0.8.8 in /src
- Issue 5333 - 389-ds-base fails to build with Python 3.11
* Mon Jun 13 2022 Python Maint <python-maint@redhat.com> - 2.2.1-2
- Rebuilt for Python 3.11
* Fri Jun 3 2022 Mark Reynolds <mreynolds@redhat.com> - 2.2.1-1
- Bump version to 2.2.1
- Issue 5323 - BUG - Fix issue in mdb tests with monitor (#5326)
- Issue 5170 - BUG - incorrect behaviour of filter test (#5315)
- Issue 5324 - plugin acceptance test needs hardening
- Issue 5319 - dsctl_tls_test.py fails with openssl-3.x
- Issue 5323 - BUG - migrating database for monitoring interface lead to crash (#5321)
- Issue 5304 - Need a compatibility option about sub suffix handling (#5310)
- Issue 5313 - dbgen test uses deprecated -h HOST and -p PORT options for ldapmodify
- Issue 5311 - Missing Requires for acl in the spec file
- Issue 5305 - OpenLDAP version autodetection doesn't work
- Issue 5307 - VERSION_PREREL is not set correctly in CI builds
- Issue 5302 - Release tarballs don't contain cockpit webapp
- Issue 5170 - RFE - improve filter logging to assist debugging (#5301)
- Issue 5299 - jemalloc 5.3 released
- Issue 5175 - Remove stale zlib-devel dependency declaration (#5173)
- Issue 5294 - Report Portal 5 is not processing test results XML file
- Issue 5170 - BUG - ldapsubentries were incorrectly returned (#5285)
- Issue 5291 - Harden ReplicationManager.wait_for_replication (#5292)
- Issue 379 - RFE - Compress rotated logs (fix linker)
- Issue 379 - RFE - Compress rotated logs
- Issue 5281 - HIGH - basic test does not run
- Issue 5284 - Replication broken after password change (#5286)
- Issue 5279 - dscontainer: TypeError: unsupported operand type(s) for /: 'str' and 'int'
- Issue 5170 - RFE - Filter optimiser (#5171)
- Issue 5276 - CLI - improve task handling
- Issue 5126 - Memory leak in slapi_ldap_get_lderrno (#5153)
- Issue 3 - ansible-ds - Prefix handling fix (#5275)
- Issue 5273 - CLI - add arg completer for instance name
- Issue 2893 - CLI - dscreate - add options for setting up replication
- Issue 4866 - CLI - when enabling replication set changelog trimming by default
- Issue 5241 - UI - Add account locking missing functionality (#5251)
- Issue 5180 - snmp_collator tries to unlock NULL mutex (#5266)
- Issue 4904 - Fix various small issues
- lib389 prerequisite for ansible-ds (#5253)
- Issue 5260 - BUG - OpenLDAP allows multiple names of memberof overlay (#5261)
- Issue 5252 - During DEL, vlv search can erroneously return NULL candidate (#5256)
- Issue 5254 - dscreate create-template regression due to 5a3bdc336 (#5255)
- Issue 5210 - Python undefined names in lib389
- Issue 5065 - Crash in suite plugins - test_dna_max_value (#5108)
- Issue 5247 - BUG - Missing attributes in samba schema (#5248)
- Issue 5242- Craft message may crash the server (#5243)
- Issue 4775 -plugin entryuuid failing (#5229)
- Issue 5239 - Nightly copr builds are broken
- Issue 5237 - audit-ci: Cannot convert undefined or null to object
- Issue 5234 - UI - rename Users and Groups tab
- Issue 5227 - UI - No way to move back to Get Started step (#5233)
- Issue 5217 - Simplify instance creation and administration by non root user (#5224)

15
gating.yaml Normal file
View file

@ -0,0 +1,15 @@
--- !Policy
product_versions:
- fedora-*
decision_contexts: [bodhi_update_push_testing]
subject_type: koji_build
rules:
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional}
--- !Policy
product_versions:
- fedora-*
decision_contexts: [bodhi_update_push_stable]
subject_type: koji_build
rules:
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional}

View file

@ -0,0 +1,41 @@
#commit 3de0c24859f4413bf03448249078169bb50bda0f
#Author: divanorama <divanorama@gmail.com>
#Date: Thu Sep 29 23:35:59 2022 +0200
#
# Disable builtin malloc in tests
#
# With `--with-jemalloc-prefix=` and without `-fno-builtin` or `-O1` both clang and gcc may optimize out `malloc` calls
# whose result is unused. Comparing result to NULL also doesn't necessarily count as being used.
#
# This won't be a problem in most client programs as this only concerns really unused pointers, but in
# tests it's important to actually execute allocations.
# `-fno-builtin` should disable this optimization for both gcc and clang, and applying it only to tests code shouldn't hopefully be an issue.
# Another alternative is to force "use" of result but that'd require more changes and may miss some other optimization-related issues.
#
# This should resolve https://github.com/jemalloc/jemalloc/issues/2091
#
#diff --git a/Makefile.in b/Makefile.in
#index 6809fb29..a964f07e 100644
#--- a/Makefile.in
#+++ b/Makefile.in
#@@ -458,6 +458,8 @@ $(TESTS_OBJS): $(objroot)test/%.$(O): $(srcroot)test/%.c
# $(TESTS_CPP_OBJS): $(objroot)test/%.$(O): $(srcroot)test/%.cpp
# $(TESTS_OBJS): CPPFLAGS += -I$(srcroot)test/include -I$(objroot)test/include
# $(TESTS_CPP_OBJS): CPPFLAGS += -I$(srcroot)test/include -I$(objroot)test/include
#+$(TESTS_OBJS): CFLAGS += -fno-builtin
#+$(TESTS_CPP_OBJS): CPPFLAGS += -fno-builtin
# ifneq ($(IMPORTLIB),$(SO))
# $(CPP_OBJS) $(C_SYM_OBJS) $(C_OBJS) $(C_JET_SYM_OBJS) $(C_JET_OBJS): CPPFLAGS += -DDLLEXPORT
# endif
diff --git a/src/jemalloc_cpp.cpp b/src/jemalloc_cpp.cpp
index fffd6aee..5a682991 100644
--- a/src/jemalloc_cpp.cpp
+++ b/src/jemalloc_cpp.cpp
@@ -93,7 +93,7 @@ handleOOM(std::size_t size, bool nothrow) {
}
if (ptr == nullptr && !nothrow)
- std::__throw_bad_alloc();
+ throw std::bad_alloc();
return ptr;
}

17
main.fmf Normal file
View file

@ -0,0 +1,17 @@
/plan:
summary: Basic test suite
discover:
how: fmf
execute:
how: tmt
prepare:
- name: install required packages
how: install
package: [389-ds-base, git, pytest]
- name: clone repo
how: shell
script: git clone https://github.com/389ds/389-ds-base /root/ds
/test:
/upstream_basic:
test: pytest -v /root/ds/dirsrvtests/tests/suites/basic/basic_test.py
duration: 30m

View file

@ -1,2 +1,3 @@
SHA512 (jemalloc-5.2.0.tar.bz2) = e3be4d534770126caf10f2684aed9fe4ba1422dd47625fe50343cfb750f26eff869fcc7d1e30a96dd6c73f6614c4bbcd560fd24fc26b55ac731c43e60fd05234
SHA512 (389-ds-base-1.4.1.6.tar.bz2) = 0a943453cbcd8b43b4fdc58563c8802d9270d9a3cf4dcd76e3f77168d45e84b8e07d8df8ddadb09ba9294e7ba7e9304ce329bc37edeb16a9161797c902fadc1c
SHA512 (jemalloc-5.3.0.tar.bz2) = 22907bb052096e2caffb6e4e23548aecc5cc9283dce476896a2b1127eee64170e3562fa2e7db9571298814a7a2c7df6e8d1fbe152bd3f3b0c1abec22a2de34b1
SHA512 (libdb-5.3.28-59.tar.bz2) = 731a434fa2e6487ebb05c458b0437456eb9f7991284beb08cb3e21931e23bdeddddbc95bfabe3a2f9f029fe69cd33a2d4f0f5ce6a9811e9c3b940cb6fde4bf79
SHA512 (389-ds-base-3.2.0.tar.bz2) = 9ff6aa56b30863c619f4f324344dca72cc883236bfe8d94520e8469d9e306f54b373ee2504eda18dcb0ecda33f915a3e64a6f3cdaa93a69b74d901caa48545e1

View file

@ -1,27 +0,0 @@
---
- hosts: localhost
remote_user: root
vars:
ds_repo_url: https://pagure.io/389-ds-base.git
ds_repo_dir: ds
ds_tests: "{{ ds_repo_dir }}/dirsrvtests/tests"
pytest: py.test-3
pytest_args: "-v --continue-on-collection-errors"
pytest_tests: "suites/basic"
artifacts: ./artifacts
roles:
- role: standard-test-basic
tags:
- classic
repositories:
- repo: "{{ ds_repo_url }}"
dest: "{{ ds_repo_dir }}"
tests:
- basic:
dir: "{{ ds_tests }}"
run: "{{ pytest }} {{ pytest_args }} {{ pytest_tests }}"
required_packages:
- python3-pytest
- 389-ds-base
- 389-ds-base-snmp
- 389-ds-base-legacy-tools