Bug 1488836

Summary: directory server fails to start because maxdisksize (nsslapd-*log-logmaxdiskspace ) is recognized incorrectly
Product: Red Hat Enterprise Linux 7 Reporter: Reona Yamamoto <ryamamot>
Component: 389-ds-baseAssignee: mreynolds
Status: CLOSED ERRATA QA Contact: Viktor Ashirov <vashirov>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.4CC: nkinder, rmeggins, spichugi
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: 389-ds-base-1.3.7.5-6.el7 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-04-10 14:19:40 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:
Bug Depends On:    
Bug Blocks: 1420851    

Description Reona Yamamoto 2017-09-06 10:03:53 UTC
Description of problem:

A directory server instance fails to start up with the following error.

----
[04/Sep/2017:20:18:14.530818672 +0900] - ERR - log_set_logsize - Invalid value for Maximum log size:Maxlogsize:300 (MB) exceeds Maxdisksize:100 (MB)
[04/Sep/2017:20:18:14.535062585 +0900] - ERR - dse_read_one_file - The entry cn=config in file /etc/dirsrv/slapd-ds2/dse.ldif (lineno: 10) is invalid, error code 1 (Operations error) -
[04/Sep/2017:20:18:14.569222415 +0900] - ERR - init_dse_file - Could not load config file [dse.ldif]
----

As far as I confirmed, this happens with the following conditions a, b and c.

a. package version is 389-ds-base-1.3.6.1-16.el7.
b. value of parameters.

  nsslapd-*log-maxlogsize is greater than 100 (MB).

c. The order of parameters in cn=config .

- The problem happens.
---
dn: cn=config
(snip)
nsslapd-errorlog-maxlogsize: 300
nsslapd-errorlog-logmaxdiskspace: 500
(snip)
---

- The problem does not happen.
---
dn: cn=config
(snip)
nsslapd-errorlog-logmaxdiskspace: 500
nsslapd-errorlog-maxlogsize: 300
(snip)
---

Version-Release number of selected component (if applicable):
389-ds-base-1.3.6.1-16.el7.x86_64
Red Hat Directory Server 10

How reproducible:
Always

Steps to Reproduce:
1) Prepare a Directory Server Instance with 389-ds-base-1.3.6.1-16.el7. (RHDS 10)
2) Stop the directory server instance.
3) Add the following two lines to cn=config entry in dse.ldif.

---
dn: cn=config
(snip)
nsslapd-errorlog-maxlogsize: 300
nsslapd-errorlog-logmaxdiskspace: 500
(snip)
----
4) Start the instance but it fails.

[04/Sep/2017:20:18:14.530818672 +0900] - ERR - log_set_logsize - Invalid value for Maximum log size:Maxlogsize:300 (MB) exceeds Maxdisksize:100 (MB)
[04/Sep/2017:20:18:14.535062585 +0900] - ERR - dse_read_one_file - The entry cn=config in file /etc/dirsrv/slapd-ds2/dse.ldif (lineno: 10) is invalid, error code 1 (Operations error) -
[04/Sep/2017:20:18:14.569222415 +0900] - ERR - init_dse_file - Could not load config file [dse.ldif]

5) Edit the dse.ldif file again and change the order of attributes.

---
dn: cn=config
(snip)
nsslapd-errorlog-logmaxdiskspace: 500
nsslapd-errorlog-maxlogsize: 300
(snip)
----

6) Start the instance again. It can start up without errors.

[04/Sep/2017:20:19:51.699856551 +0900] - INFO - main - 389-Directory/1.3.6.1 B2017.158.1159 starting up
[04/Sep/2017:20:19:51.712940094 +0900] - INFO - ldbm_instance_config_cachememsize_set - force a minimal value 512000
[04/Sep/2017:20:19:51.721326096 +0900] - NOTICE - ldbm_back_start - found 1015004k physical memory
[04/Sep/2017:20:19:51.723214606 +0900] - NOTICE - ldbm_back_start - found 703204k available
[04/Sep/2017:20:19:51.725416288 +0900] - NOTICE - ldbm_back_start - cache autosizing: db cache: 40600k
[04/Sep/2017:20:19:51.727704792 +0900] - NOTICE - ldbm_back_start - cache autosizing: userRoot entry cache (1 total): 65536k
[04/Sep/2017:20:19:51.732686002 +0900] - NOTICE - ldbm_back_start - total cache size: 110854274 B;
[04/Sep/2017:20:19:51.848819439 +0900] - INFO - slapd_daemon - slapd started.  Listening on All Interfaces port 12389 for LDAP requests

Actual results:
DS instance fails to start.

Expected results:
DS instance did not to start.

Additional info:
The phenomenon doesn't occur with old 389-ds-base package like 389-ds-base-1.3.5.10-18.el7_3.
This problem was reported by a customer who updated the 389-ds-base to 389-ds-base-1.3.6.1-16.el7.

Comment 3 wibrown@redhat.com 2017-09-07 00:35:32 UTC
Upstream ticket:
https://pagure.io/389-ds-base/issue/49374

Comment 5 Simon Pichugin 2017-11-30 10:03:46 UTC
======================== test session starts ========================
platform linux -- Python 3.6.3, pytest-3.3.0, py-1.5.2, pluggy-0.6.0 -- /opt/rh/rh-python36/root/usr/bin/python3
cachedir: .cache
metadata: {'Python': '3.6.3', 'Platform': 'Linux-3.10.0-768.el7.x86_64-x86_64-with-redhat-7.5-Maipo', 'Packages': {'pytest': '3.3.0', 'py': '1.5.2', 'pluggy': '0.6.0'}, 'Plugins': {'metadata': '1.5.1', 'html': '1.16.0'}}
389-ds-base: 1.3.7.5-9.el7
nss: 3.34.0-0.1.beta1.el7
nspr: 4.17.0-1.el7
openldap: 2.4.44-9.el7
svrcore: 4.1.3-2.el7

rootdir: /mnt/tests/rhds/tests/upstream/ds, inifile:
plugins: metadata-1.5.1, html-1.16.0
collected 1 item

dirsrvtests/tests/suites/config/regression_test.py::test_maxbersize_repl PASSED                                                                                                        [100%]

======================== 1 passed in 22.77 seconds ========================

Comment 8 errata-xmlrpc 2018-04-10 14:19:40 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.

https://access.redhat.com/errata/RHBA-2018:0811