We had a problem today, one of our two 389 DS servers hanged showing the errors:
ERR - libdb - BDB2055 Lock table is out of available lock entries
ERR - NSMMReplicationPlugin - changelog program - _cl5CompactDBs - Failed to compact
db5f7bb9-ab0611e6-9bc8987f-40ec05bf; db error - 12 Cannot allocate memory
We redirected all the queries to our second 389 DS Server and started debugging the
problem.
It's the second time that this happens to us. We did our homework the first time, four
months ago, and didn't found any problem.
At that time, we just increased the number of open files and reviewed the documentation
about tunning nsslapd-db-locks (
https://access.redhat.com/solutions/3217591). We set the
nsslapd-db-locks to 100000 as recommended.
But today, with a little more time, we reviewed the documentation about compacting the log
manually
(
https://access.redhat.com/documentation/en-us/red_hat_directory_server/10...).
We started to increase the nsslapd-db-locks, first up to 200000, then to half a million,
and at the end to 1.5 millions.
Every check failed but the last one. We have no error logs (nor an affirmative one), but
the database file in the 'changelogdb' folder went from 13GB to 2.8GB.
Is it reasonable to keep nsslapd-db-locks so high?