Bug 984970

Summary: Overflow in nsslapd-disk-monitoring-threshold
Product: Red Hat Enterprise Linux 6 Reporter: Jan Kurik <jkurik>
Component: 389-ds-baseAssignee: mreynolds
Status: CLOSED ERRATA QA Contact: Sankar Ramalingam <sramling>
Severity: high Docs Contact:
Priority: urgent    
Version: 6.4CC: jgalipea, jrusnack, jwest, mreynolds, nkinder, pm-eus, rmeggins
Target Milestone: rcKeywords: ZStream
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: 389-ds-base-1.2.11.15-20.el6_4 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-07-30 17:01:57 UTC Type: ---
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: 982325    
Bug Blocks:    

Description Jan Kurik 2013-07-16 13:49:57 UTC
This bug has been copied from bug #982325 and has been proposed
to be backported to 6.4 z-stream (EUS).

Comment 4 Ján Rusnačko 2013-07-22 08:43:21 UTC
Tested on newest version:

[jrusnack@dstet ~]$ rpm -qa | grep 389-
389-ds-base-libs-1.2.11.15-17.el6_4.x86_64
389-ds-base-debuginfo-1.2.11.15-17.el6_4.x86_64
389-ds-base-1.2.11.15-17.el6_4.x86_64
[jrusnack@dstet ~]$ ldapmodify -D "cn=directory manager" -w Secret123 <<EOF
dn: cn=config
changetype: modify
replace: nsslapd-disk-monitoring-threshold
nsslapd-disk-monitoring-threshold: 3000000000
EOF
modifying entry "cn=config"

[jrusnack@dstet ~]$ ldapsearch -D "cn=directory manager" -w Secret123 -b "cn=config" | grep nsslapd-disk-monitoring-threshold
nsslapd-disk-monitoring-threshold: -1294967296

[jrusnack@dstet ~]$ vim /var/log/dirsrv/slapd-dstet/errors
...
[22/Jul/2013:10:27:38 +0200] - Disk space is too low on disk (/), remaining space: 1174676 Kb
[22/Jul/2013:10:27:38 +0200] - Disk space on (/) is too far below the threshold(3000000000 bytes).  Waiting 1 minutes for disk space to be cleaned up before shutting slapd down...

So the threshold was set correctly and disk monitoring works, but ldapsearch shows negative value.

[jrusnack@dstet ~]$ ldapmodify -D "cn=directory manager" -w Secret123 <<EOF
dn: cn=config
changetype: modify
replace: nsslapd-disk-monitoring-threshold
nsslapd-disk-monitoring-threshold: 3000
EOF

modifying entry "cn=config"
ldap_modify: Operations error (1)
	additional info: nsslapd-disk-monitoring-threshold: "3000" is invalid, threshold must be greater than 4096 and less then 4294967295

So the maximum value seems to be 4294967295.

[jrusnack@dstet ~]$ ldapmodify -D "cn=directory manager" -w Secret123 <<EOF
dn: cn=config
changetype: modify
replace: nsslapd-disk-monitoring-threshold
nsslapd-disk-monitoring-threshold: 4294967295
EOF

modifying entry "cn=config"

[jrusnack@dstet ~]$ ldapsearch -D "cn=directory manager" -w Secret123 -b "cn=config" | grep nsslapd-disk-monitoring-threshold
nsslapd-disk-monitoring-threshold: -1
[jrusnack@dstet ~]$ cat /etc/dirsrv/slapd-dstet/dse.ldif | grep nsslapd-disk-monitoring-threshold
nsslapd-disk-monitoring-threshold: 4294967295

Comment 5 mreynolds 2013-07-22 14:35:58 UTC
The value is stored, and used correctly internally.  Using ldapsearch tries to cast the value to an integer(which of course overflows), that's why you see the negative number when using ldapsearch.  It's a simple fix, working on the respin...

Comment 7 Ján Rusnačko 2013-07-25 09:54:43 UTC
[jrusnack@dstet 6.0]$ ldapmodify -h localhost -p 19741 -D "cn=directory manager" -w Secret123 <<EOF
dn: cn=config
changetype: modify
replace: nsslapd-disk-monitoring-threshold
nsslapd-disk-monitoring-threshold: -2
EOF
modifying entry "cn=config"

[jrusnack@dstet 6.0]$ ldapsearch -h localhost -p 19741 -D "cn=directory manager" -w Secret123 -b "cn=config" -s base -LLL nsslapd-disk-monitoring-threshold
dn: cn=config
nsslapd-disk-monitoring-threshold: -2

[jrusnack@dstet 6.0]$ rpm -qa | grep 389
389-ds-base-debuginfo-1.2.11.15-18.el6_4.x86_64
389-ds-base-libs-1.2.11.15-18.el6_4.x86_64
389-ds-base-1.2.11.15-18.el6_4.x86_64

Negative values should be refused - see comment #3.

Another unrelated minor issue:

"Available disk space is now acceptable (0 bytes).  Aborting shutdown, and restoring the log settings."

The error message from log, that notifies about abort of shutdown, should probably contain information about free space, instead of '0 bytes'.

Comment 8 mreynolds 2013-07-25 14:20:15 UTC
(In reply to Ján Rusnačko from comment #7)
> [jrusnack@dstet 6.0]$ ldapmodify -h localhost -p 19741 -D "cn=directory
> manager" -w Secret123 <<EOF
> dn: cn=config
> changetype: modify
> replace: nsslapd-disk-monitoring-threshold
> nsslapd-disk-monitoring-threshold: -2
> EOF
> modifying entry "cn=config"
> 
> [jrusnack@dstet 6.0]$ ldapsearch -h localhost -p 19741 -D "cn=directory
> manager" -w Secret123 -b "cn=config" -s base -LLL
> nsslapd-disk-monitoring-threshold
> dn: cn=config
> nsslapd-disk-monitoring-threshold: -2
> 
> [jrusnack@dstet 6.0]$ rpm -qa | grep 389
> 389-ds-base-debuginfo-1.2.11.15-18.el6_4.x86_64
> 389-ds-base-libs-1.2.11.15-18.el6_4.x86_64
> 389-ds-base-1.2.11.15-18.el6_4.x86_64
> 
> Negative values should be refused - see comment #3.
> 
> Another unrelated minor issue:
> 
> "Available disk space is now acceptable (0 bytes).  Aborting shutdown, and
> restoring the log settings."
> 
> The error message from log, that notifies about abort of shutdown, should
> probably contain information about free space, instead of '0 bytes'.


Did you restart the server after making the config change?

Comment 9 Ján Rusnačko 2013-07-25 18:01:28 UTC
(In reply to mreynolds from comment #8)
> (In reply to Ján Rusnačko from comment #7)
> > [jrusnack@dstet 6.0]$ ldapmodify -h localhost -p 19741 -D "cn=directory
> > manager" -w Secret123 <<EOF
> > dn: cn=config
> > changetype: modify
> > replace: nsslapd-disk-monitoring-threshold
> > nsslapd-disk-monitoring-threshold: -2
> > EOF
> > modifying entry "cn=config"
> > 
> > [jrusnack@dstet 6.0]$ ldapsearch -h localhost -p 19741 -D "cn=directory
> > manager" -w Secret123 -b "cn=config" -s base -LLL
> > nsslapd-disk-monitoring-threshold
> > dn: cn=config
> > nsslapd-disk-monitoring-threshold: -2
> > 
> > [jrusnack@dstet 6.0]$ rpm -qa | grep 389
> > 389-ds-base-debuginfo-1.2.11.15-18.el6_4.x86_64
> > 389-ds-base-libs-1.2.11.15-18.el6_4.x86_64
> > 389-ds-base-1.2.11.15-18.el6_4.x86_64
> > 
> > Negative values should be refused - see comment #3.
> > 
> > Another unrelated minor issue:
> > 
> > "Available disk space is now acceptable (0 bytes).  Aborting shutdown, and
> > restoring the log settings."
> > 
> > The error message from log, that notifies about abort of shutdown, should
> > probably contain information about free space, instead of '0 bytes'.
> 
> 
> Did you restart the server after making the config change?
No. The three commands above were executed in sequence.

Comment 10 Ján Rusnačko 2013-07-29 14:20:08 UTC
Verified on 389-ds-base-1.2.11.15-20.el6_4.x86_64

Comment 12 errata-xmlrpc 2013-07-30 17:01:57 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.

http://rhn.redhat.com/errata/RHSA-2013-1119.html