#49273 crash in ldbm backend, adjust_idl_switch
Closed: fixed 3 years ago Opened 3 years ago 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

3 years ago

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

3 years ago

Metadata Update from @firstyear:
- Issue assigned to firstyear

3 years ago
{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

3 years ago

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

3 years ago

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

3 years ago

commit 9e1a761
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)

3 years ago

commit d8cccbf
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)

3 years ago
  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

3 years ago

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

3 years ago

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

3 years ago

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

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

commit ad0855f
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)

3 years ago

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

3 years ago

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

3 years ago

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

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

commit 1b4d2c6
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)

3 years ago

Fix cherry-pick error:

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

Login to comment on this ticket.

Metadata