#49273 crash in ldbm backend, adjust_idl_switch
Closed: wontfix Opened by firstyear.

Ticket was cloned from Red Hat Bugzilla (product Fedora): Bug 1456560

Created attachment 1283280
crash stack trace
Description of problem:
A disk space was exhausted. After cleanup, a restart of 389-ds cannot complete
due to a crash in adjust_idl_switch().
# cat /var/lib/dirsrv/slapd-XS-IPA-COOL/db/DBVERSION
bdb/5.3/libback-ldbm/newidl/rdn-format-3/dn-4514-1
Version-Release number of selected component (if applicable):
rpm -q 389-ds-base libdb
389-ds-base-1.3.5.17-3.fc25.x86_64
libdb-5.3.28-14.fc24.x86_64
Attaching a stack trace.

Metadata Update from @firstyear:
- Custom field rhbz adjusted to https://bugzilla.redhat.com/show_bug.cgi?id=1456560

Metadata Update from @firstyear:
- Custom field rhbz adjusted to https://bugzilla.redhat.com/show_bug.cgi?id=1456560

Metadata Update from @firstyear:
- Issue assigned to firstyear

{root@ldapkdc 15:16} /opt/dirsrv/var/lib/dirsrv/slapd-localhost/db I0> sha256sum DBVERSION 
290ac0a972ed0f733833910292885ee23deef934edf2ce0789f968f3e666f57a  DBVERSION
{root@ldapkdc 15:16} /opt/dirsrv/var/lib/dirsrv/slapd-localhost/db I0> sha256sum /home/william/development/389ds/ds/DBVERSION 
290ac0a972ed0f733833910292885ee23deef934edf2ce0789f968f3e666f57a  /home/william/development/389ds/ds/DBVERSION

The supplied DBversion file matches my version, so as a result, I don't know if the issue is in dbversion_read or not. Going to ask for more info.

Metadata Update from @firstyear:
- Custom field type adjusted to defect

It seems the underlying issue is that DBVERSION in the userRoot was an empty file.

We can't avoid this happening (due to disk full), but we can display the error better, and explain recovery steps in our output.

I also noticed a lot of junk in the buffer, so we should set this to {0} too.

Affects 1.3.5, do we want to backport a fix to this @mreynolds ? It's low risk IMO.

Metadata Update from @firstyear:
- Custom field reviewstatus adjusted to review

Metadata Update from @nhosoi:
- Custom field reviewstatus adjusted to ack (was: review)

commit 9e1a761b45dfc2d28199e39c514ea66764c3f127
To ssh://git@pagure.io/389-ds-base.git
9cd5292..9e1a761 master -> master

Metadata Update from @firstyear:
- Issue close_status updated to: fixed
- Issue status updated to: Closed (was: Open)

commit d8cccbf70e2cc8b807190214a93d20b20d77db50
To ssh://git@pagure.io/389-ds-base.git
9e1a761..d8cccbf master -> master

One line rule to correct typo.

This commit: d8cccbf does not add a "\n" to the logging line. Other logging you added is also missing "\n". And there are compiler warnings again :-(

In file included from ../389-ds-base/ldap/servers/slapd/csngen.h:20:0,
                 from ../389-ds-base/ldap/servers/slapd/slap.h:113,
                 from ../389-ds-base/ldap/servers/slapd/back-ldbm/back-ldbm.h:88,
                 from ../389-ds-base/ldap/servers/slapd/back-ldbm/dbversion.c:15:
../389-ds-base/ldap/servers/slapd/back-ldbm/dbversion.c: In function dbversion_write:
../389-ds-base/ldap/servers/slapd/back-ldbm/dbversion.c:105:21: warning: too many arguments for format [-Wformat-extra-args]
                     "Could not write to file \"%s\"\n", filename, 0, 0 );
                     ^
../389-ds-base/ldap/servers/slapd/slapi-private.h:40:81: note: in definition of macro slapi_log_err
 # define slapi_log_err(level, subsystem, ...) slapi_log_error(level, subsystem, __VA_ARGS__)
                                                                                 ^~~~~~~~~~~
../389-ds-base/ldap/servers/slapd/back-ldbm/dbversion.c:115:25: warning: too many arguments for format [-Wformat-extra-args]
                         "Could not write to file \"%s\"\n", filename, 0, 0 );
                         ^
../389-ds-base/ldap/servers/slapd/slapi-private.h:40:81: note: in definition of macro slapi_log_err
 # define slapi_log_err(level, subsystem, ...) slapi_log_error(level, subsystem, __VA_ARGS__)

Can you please follow the steps we previously discussed before putting patches out for review? Thanks

Metadata Update from @mreynolds:
- Custom field reviewstatus reset (from ack)
- Issue status updated to: Open (was: Closed)

  CC       ldap/servers/slapd/back-ldbm/libback_ldbm_la-dbversion.lo
/home/william/development/389ds/ds/ldap/servers/slapd/back-ldbm/archive.c: In function ldbm_back_archive2ldbm:
/home/william/development/389ds/ds/ldap/servers/slapd/back-ldbm/archive.c:219:24: warning: declaration of inst shadows a previous local [-Wshadow]
         ldbm_instance *inst;
                        ^~~~
/home/william/development/389ds/ds/ldap/servers/slapd/back-ldbm/archive.c:29:20: note: shadowed declaration is here
     ldbm_instance *inst = NULL;
                    ^~~~
  CC       ldap/servers/slapd/back-ldbm/libback_ldbm_la-dn2entry.lo

Only remaining warning.

0001-Ticket-49273-Fix-compiler-warning-in-dbversion_write.patch

Metadata Update from @firstyear:
- Custom field reviewstatus adjusted to review

Metadata Update from @mreynolds:
- Issue set to the milestone: 1.3.7.0 (was: 0.0 NEEDS_TRIAGE)

Thanks! ack

Metadata Update from @mreynolds:
- Custom field reviewstatus adjusted to ack (was: review)

commit 5d5b9c617e8c73f3771720c1f6906bddae2612db
To ssh://git@pagure.io/389-ds-base.git
066aaad..5d5b9c6 master -> master

commit 04904b61138a3bb877d535f221cfc65a5a95f335
To ssh://git@pagure.io/389-ds-base.git
bf34218..04904b6 389-ds-base-1.3.6 -> 389-ds-base-1.3.6

commit ad0855f87850351f9b5253683fae8ae8f7cc3996
To ssh://git@pagure.io/389-ds-base.git
556674c..ad0855f 389-ds-base-1.3.5 -> 389-ds-base-1.3.5

Metadata Update from @firstyear:
- Issue close_status updated to: fixed
- Issue status updated to: Closed (was: Open)

Metadata Update from @firstyear:
- Custom field reviewstatus adjusted to review (was: ack)
- Issue status updated to: Open (was: Closed)

Metadata Update from @mreynolds:
- Custom field reviewstatus adjusted to ack (was: review)

commit d46a524f49e9beca4cc6afc4498e03eb8fee595f
To ssh://git@pagure.io/389-ds-base.git
bcbc3e9..18ccdb4 master -> master

commit 6725e03187610ef852e1577f1a2745320f30b088
To ssh://git@pagure.io/389-ds-base.git
306e217..6725e03 389-ds-base-1.3.6 -> 389-ds-base-1.3.6

commit 1b4d2c63311a544bf845ae6e491ef27855f9f9c6
To ssh://git@pagure.io/389-ds-base.git
ad0855f..1b4d2c6 389-ds-base-1.3.5 -> 389-ds-base-1.3.5

Metadata Update from @firstyear:
- Issue close_status updated to: fixed
- Issue status updated to: Closed (was: Open)

Fix cherry-pick error:

1b4d2c6..88d42bb 389-ds-base-1.3.5 -> 389-ds-base-1.3.5

389-ds-base is moving from Pagure to Github. This means that new issues and pull requests
will be accepted only in 389-ds-base's github repository.

This issue has been cloned to Github and is available here:
- https://github.com/389ds/389-ds-base/issues/2332

If you want to receive further updates on the issue, please navigate to the github issue
and click on subscribe button.

Thank you for understanding. We apologize for all inconvenience.

Metadata Update from @spichugi:
- Issue close_status updated to: wontfix (was: fixed)

Metadata