Bug 1837315

Summary: Healthcheck code DSBLE0002 not returned on disabled suffix
Product: Red Hat Enterprise Linux 8 Reporter: bsmejkal
Component: 389-ds-baseAssignee: mreynolds
Status: CLOSED ERRATA QA Contact: RHDS QE <ds-qe-bugs>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 8.3CC: pasik, sgouvern, spichugi, tbordaz, vashirov
Target Milestone: rcKeywords: TestCaseProvided
Target Release: 8.0Flags: pm-rhel: mirror+
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: 389-ds-devel-1.4-8040020201105165416.866effaa Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-05-18 15:45:16 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:
Embargoed:

Description bsmejkal 2020-05-19 09:11:57 UTC
Description of problem:
DSBLE0002 should be returned when suffix is disabled.
But running healthcheck returns only the warning message and it stops checking other components.

Version-Release number of selected component (if applicable):
389-ds-base-1.4.3.8-2.module+el8.3.0+6591+ebfc9766.x86_64

How reproducible:
Always

Steps to Reproduce:
1. Create a new root suffix:
# ldapmodify -a -p 389 -h localhost -D "cn=Directory manager" -w password
dn: cn="dc=test,dc=com",cn=mapping tree, cn=config
objectclass: top
objectclass: extensibleObject
objectclass: nsMappingTree
nsslapd-state: backend
nsslapd-backend: userData
cn: dc=test,dc=com


2. Add a database for this suffix :
# ldapmodify -a -p 389 -h localhost -D "cn=Directory manager" -w password
dn: cn=userdata,cn=ldbm database,cn=plugins,cn=config             
objectclass: extensibleObject
objectclass: nsBackendInstance
nsslapd-suffix: dc=test,dc=com  


3. Disable the suffix
# ldapmodify -p 389 -h localhost -D "cn=Directory manager" -w password
dn: cn="dc=test,dc=com",cn=mapping tree,cn=config
changetype: modify
replace: nsslapd-state
nsslapd-state: disabled


Actual results:

# dsctl instance healthcheck 
Beginning lint report, this could take a while ...
Checking Backends ...
Error: Operations error - Warning: Operation attempted on a disabled node : dc=test,dc=com


Expected results:

DS Lint Error: DSBLE0002
--------------------------------------------------------------------------------
Severity: HIGH
Affects:
 -- dc=test,dc=com

Details:
-----------
Unable to query the backend.  LDAP error ({'desc': 'Operations error', 'info': 'Warning: Operation attempted on a disabled node : dc=test,dc=com\n'})

Resolution:
-----------
Check the server's error and access logs for more information.


Additional info:

Comment 1 mreynolds 2020-05-21 20:37:58 UTC
Upstream ticket:
https://pagure.io/389-ds-base/issue/51106

Comment 6 bsmejkal 2020-11-25 14:51:29 UTC
==================================================================================== test session starts =====================================================================================
platform linux -- Python 3.6.8, pytest-6.1.2, py-1.9.0, pluggy-0.13.1 -- /usr/bin/python3.6
cachedir: .pytest_cache
metadata: {'Python': '3.6.8', 'Platform': 'Linux-4.18.0-252.el8.x86_64-x86_64-with-redhat-8.4-Ootpa', 'Packages': {'pytest': '6.1.2', 'py': '1.9.0', 'pluggy': '0.13.1'}, 'Plugins': {'metadata': '1.10.0', 'html': '3.0.0', 'libfaketime': '0.1.2'}}
389-ds-base: 1.4.3.16-2.module+el8.4.0+8803+fd0f8fe3
nss: 3.53.1-11.el8_2
nspr: 4.25.0-2.el8_2
openldap: 2.4.46-16.el8
cyrus-sasl: 2.1.27-5.el8
FIPS: disabled
rootdir: /mnt/tests/rhds/tests/upstream/ds/dirsrvtests, configfile: pytest.ini
plugins: metadata-1.10.0, html-3.0.0, libfaketime-0.1.2
collected 11 items / 9 deselected / 2 selected                                                                                                                                               

dirsrvtests/tests/suites/healthcheck/healthcheck_test.py::test_healthcheck_disabled_suffix PASSED                                                                                      [ 50%]
dirsrvtests/tests/suites/healthcheck/healthcheck_test.py::test_healthcheck_unable_to_query_backend PASSED                                                                              [100%]

======================================================================= 2 passed in 11.45s ==================================================================================================

Marking as Verified:Tested.

Comment 9 sgouvern 2020-11-30 16:41:28 UTC
verified:tested (see comment 6) with build 389-ds-1.4-8040020201125182123.866effaa / 389-ds-base-libs-1.4.3.16-2.module+el8.4.0+8803+fd0f8fe3.x86_64
-> marking as VERIFIED

Comment 11 errata-xmlrpc 2021-05-18 15:45:16 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 (389-ds:1.4 bug fix and enhancement update), and where to find the updated
files, follow the link below.

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

https://access.redhat.com/errata/RHBA-2021:1835