Bug 1739182

Summary: CleanAllRUV task limit not enforced
Product: Red Hat Enterprise Linux 7 Reporter: mreynolds
Component: 389-ds-baseAssignee: mreynolds
Status: CLOSED ERRATA QA Contact: RHDS QE <ds-qe-bugs>
Severity: high Docs Contact: Marc Muehlfeld <mmuehlfe>
Priority: high    
Version: 7.7CC: bsmejkal, lkrispen, msauton, nkinder, spichugi, tbordaz, tmihinto, vashirov
Target Milestone: rcKeywords: ZStream
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Fixed In Version: 389-ds-base- Doc Type: Bug Fix
Doc Text:
.Directory Server now also applies limits for maximum concurrent `cleanAllRUV` tasks received from extended operations Directory Server supports up to 64 concurrent `cleanAllRUV` tasks. Previously, Directory Server applied this limit only to manually created tasks and not to tasks the server received from extended operations. As a consequence, more than 64 concurrent `cleanAllRUV` tasks could run at the same time and slow down the server. This update adds a counter to track the number of clean tasks and abort threads. As a result, only up to 64 concurrent `cleanAllRUV` tasks can run at the same time.
Story Points: ---
Clone Of:
: 1739183 1767622 (view as bug list) Environment:
Last Closed: 2020-03-31 19:46:14 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On:    
Bug Blocks: 1739183, 1767622    

Description mreynolds 2019-08-08 17:16:13 UTC
Description of problem:

There is a limit on the number of cleanAllRUV tasks that can be running at once.  But this limit is not checked for incoming replicated tasks.  It is only checked when the original task is created.  This can allow for thousands of clean tasks/threads to be created.

The limit needs to be checked when cleanallruv extended operations are received.

This bug is created as a clone of upstream ticket:

Comment 3 bsmejkal 2019-09-16 12:23:01 UTC
=============================================================================================== test session starts ===============================================================================================
platform linux -- Python 3.6.3, pytest-5.1.2, py-1.8.0, pluggy-0.13.0 -- /opt/rh/rh-python36/root/usr/bin/python3
cachedir: .pytest_cache
metadata: {'Python': '3.6.3', 'Platform': 'Linux-3.10.0-1090.el7.x86_64-x86_64-with-redhat-7.8-Maipo', 'Packages': {'pytest': '5.1.2', 'py': '1.8.0', 'pluggy': '0.13.0'}, 'Plugins': {'metadata': '1.8.0', 'html': '2.0.0'}}
nss: 3.44.0-5.el7
nspr: 4.21.0-1.el7
openldap: 2.4.44-21.el7_6
cyrus-sasl: 2.1.26-23.el7
FIPS: disabled
rootdir: /mnt/tests/rhds/tests/upstream/ds/dirsrvtests, inifile: pytest.ini
plugins: metadata-1.8.0, html-2.0.0
collected 1 item                                                                                                                                                                                                  

dirsrvtests/tests/suites/replication/cleanallruv_max_tasks_test.py::test_max_tasks  PASSED                                                                                                                [100%]

========================================================================================== 1 passed in 433.85s (0:07:13) ==========================================================================================

Marking as VERIFIED.

Comment 8 errata-xmlrpc 2020-03-31 19:46:14 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.