Symptoms
Summary: program fails with error: "unable to initialize mutex: Function not implemented"
A program (
rpm
,
OpenLDAP's
slapd
) aborts with error:
rpmdb: unable to initialize mutex: Function not implemented
...
error: db4 error(38) from dbenv->open: Function not implemented
The exact db4 function in which the problem occurs may vary, but the
error code 38 and the message
unable to initialize mutex: Function not implemented
are constant.
The problem we are facing (and its variations, depending on the
workarounds that one can try) is quite accurately described at
http://www.openldap.org/lists/openldap-software/200603/msg00199.html
Occurrences
Reproduceable on any Xen
DomU running RHEL4-derived systems (
CentOS4, SL4, SLC4).
Observations
On the site-BDII, the problem was fixed by using the "ldbm" backend
and avoiding Berkeley DB4 completely.
We cannot do this for Phedex, since it uses a CMS-built version of
apt+rpm+db4, so we cannot rebuild that with different flags.
Solution or Workaround
None known so far.
I wasn't able to find much information by googling: all the related
pages date back to 2005/2006 (when
CentOS4/RHEL4 was current), and the
links to software packages or patches are often broken. Some suggest
fixing the problem by recompiling the libc with a special gcc option;
finally I found the exact patch here:
http://lists.centos.org/pipermail/centos-devel/2005-December/000175.html
Monitoring for this condition
--
RiccardoMurri - 05 Nov 2008