BDB Nightmare

Akshay Kumar akshay at cs.columbia.edu
Sat Oct 23 22:06:12 EDT 2004


Guys,

One more problem, cyradm wont work.

[root at cyrus bin]# ./cyradm
Can't load
'/usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/auto/Cyrus/IMAP/IMAP.so'
for module Cyrus::IMAP:
/usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/auto/Cyrus/IMAP/IMAP.so:
undefined symbol: db_version at
/usr/lib/perl5/5.8.0/i386-linux-thread-multi/DynaLoader.pm line 229.
 at /usr/lib/perl5/5.8.0/i386-linux-thread-multi/Cyrus/IMAP/Admin.pm line
44
Compilation failed in require at
/usr/lib/perl5/5.8.0/i386-linux-thread-multi/Cyrus/IMAP/Admin.pm line 44.
BEGIN failed--compilation aborted at
/usr/lib/perl5/5.8.0/i386-linux-thread-multi/Cyrus/IMAP/Admin.pm line 44.
Compilation failed in require at
/usr/lib/perl5/5.8.0/i386-linux-thread-multi/Cyrus/IMAP/Shell.pm line 60.
BEGIN failed--compilation aborted at
/usr/lib/perl5/5.8.0/i386-linux-thread-multi/Cyrus/IMAP/Shell.pm line 60.
Compilation failed in require.
BEGIN failed--compilation aborted.


Best,
Akshay

On Sat, 23 Oct 2004, Akshay Kumar wrote:

> Fixed.
>
> Like Dominic pointed out bdb was broken.
>
> Making it with
>
> 	make LIBSO_LIBS="-lpthread" LIBXSO_LIBS="-lpthread"
>
> fixed it.
>
> So now finally the following are working in /spare/local:
>
> bdb-4.2.52, SASL 2.1.19, Openldap 2.2.17, Sendmail 8.13.1, Cyrus 2.2.8,
> apache and silkymail.
>
> Believe it or not there was a good reason for putting all of them in a
> non-standard location. Namely the rdist setup at work overwrites
> everything that is not precioused everyday at 4am. Updating the master
> would have broken a lot of other mail servers that were not built with
> SASLv2 and using old bdb and sendmail-8.12. Also sasl was not built with
> ldap.
>
> I am going to wait for rhel as 4 till I build a new master, till then this
> should work fine.
>
>
> Thanks and Best,
> Akshay
>
> On Sat, 23 Oct 2004, Dominic Ijichi wrote:
>
> > Quoting Akshay Kumar <akshay at cs.columbia.edu>:
> >
> > > Hi,
> > >
> > > Thanks for the reply.
> > >
> > > I am running Redhat 9 with updates from Progeny. I can't upgrade the OS
> > > either.
> >
> > nice, lucky you :)
> >
> > > ldd -r /spare/local/lib/libdb-4.2.so give the following output:
> > >
> > >         libc.so.6 => /lib/tls/libc.so.6 (0x42000000)
> > >         /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x55555000)
> > > undefined symbol: pthread_condattr_setpshared
> > > (/spare/local/lib/libdb-4.2.so)
> > > undefined symbol: pthread_mutexattr_destroy
> > > (/spare/local/lib/libdb-4.2.so)
> > > undefined symbol: pthread_mutexattr_setpshared
> > > (/spare/local/lib/libdb-4.2.so)
> > > undefined symbol: pthread_mutexattr_init
> > > (/spare/local/lib/libdb-4.2.so)
> > > undefined symbol: pthread_mutex_trylock (/spare/local/lib/libdb-4.2.so)
> >
> > this means your berkeley db4.2 libs are broken.  try recompiling with -lpthread.
> >    i think you can either try LIBS='-lpthread' ./configure, or run configure and
> > amend resulting Makefile LIBS line with -lpthread.  iirc, i had similar problems
> > when redhat introduced ntpl thread libs out of the blue.
> >
> > > I also have the following rpms of an older version:
> > >
> > > db4-4.0.14-20
> > > db4-devel-4.0.14-20
> >
> > ok, theoretically these shouldn't get in the way.
> >
> > > I can't uninstall them as I need this for other dependencies which is why
> > > I am using /spare/local.
> >
> > fair enough.  it is possible, although particularly with berkeley db4 not
> > recommended, to force remove the rpms with 'rpm -e db4 db4-devel --nodeps' and
> > drop the /spare/local/lib into ld.so.conf to fill in the gaps.  i've done this
> > numerous times on redhat with ssl and ldap where the libs dont vary quite as
> > much from minor version to minor version, unfortunately with berkeley it's
> > extremely sensitive and thus usually a really, really bad idea.
> >
> > > adding "LDFLAGS=-L/spare/local/lib -R/spare/local/lib" doesnt help either.
> >
> > hmm, this is more for solaris, i dont think it does much on linux.
> >
> > > /spare/local/lib is the top entry in ld.so.conf and I then ran ldconfig.
> >
> > unfortunately ldconfig silently inserts the 'system library paths' -ie /lib,
> > /usr/lib before everything else.  i dont know how to change this, although would
> > love to know how.
> >
> > > Everything else picks up the correct version, SASL, Sendmail, Openldap.
> >
> > as you're specifying --bdb-libdir and its ignoring it, i would recommend looking
> > in the config.log for the test for this switch.  i'd hazard a guess and say it's
> > failing because of the broken libraries, and thus falling back to the system db4
> > libs it finds in /usr/lib.  fix these broken libs in /spare/local/lib and i
> > suspect all will be well.
> >
> > good luck :)  let us know if this helps, i'm sure i'm not the only one in the
> > past who has come up against this problem.
> >
> > dom
> >
> > >
> > > ldd ./sendmail
> > >         libsasl2.so.2 => /spare/local/lib/libsasl2.so.2 (0x2aad9000)
> > >         libdb-4.2.so => /spare/local/lib/libdb-4.2.so (0x2aaed000)
> > >         libpthread.so.0 => /lib/tls/libpthread.so.0 (0x2ab94000)
> > >         libssl.so.4 => /lib/libssl.so.4 (0x2aba2000)
> > >         libcrypto.so.4 => /lib/libcrypto.so.4 (0x2abd7000)
> > >         libresolv.so.2 => /lib/libresolv.so.2 (0x2acce000)
> > >         libcrypt.so.1 => /lib/libcrypt.so.1 (0x2ace0000)
> > >         libnsl.so.1 => /lib/libnsl.so.1 (0x2ad0e000)
> > >         libdl.so.2 => /lib/libdl.so.2 (0x2ad23000)
> > >         libldap-2.2.so.7 => /spare/local/lib/libldap-2.2.so.7 (0x2ad27000)
> > >         liblber-2.2.so.7 => /spare/local/lib/liblber-2.2.so.7 (0x2ad54000)
> > >         libc.so.6 => /lib/tls/libc.so.6 (0x42000000)
> > >         /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x2aaab000)
> > >         libgssapi_krb5.so.2 => /usr/kerberos/lib/libgssapi_krb5.so.2
> > > (0x2ad60000)
> > >         libkrb5.so.3 => /usr/kerberos/lib/libkrb5.so.3 (0x2ad74000)
> > >         libcom_err.so.3 => /usr/kerberos/lib/libcom_err.so.3 (0x2add2000)
> > >         libk5crypto.so.3 => /usr/kerberos/lib/libk5crypto.so.3
> > > (0x2add4000)
> > >         libz.so.1 => /usr/lib/libz.so.1 (0x2ade4000)
> > >
> > >  ldd ./slapd
> > >         libdb-4.2.so => /spare/local/lib/libdb-4.2.so (0x2aad9000)
> > >         libsasl2.so.2 => /spare/local/lib/libsasl2.so.2 (0x2ab81000)
> > >         libssl.so.4 => /lib/libssl.so.4 (0x2ab94000)
> > >         libcrypto.so.4 => /lib/libcrypto.so.4 (0x2abc9000)
> > >         libresolv.so.2 => /lib/libresolv.so.2 (0x2acc0000)
> > >         libpthread.so.0 => /lib/tls/libpthread.so.0 (0x2acd2000)
> > >         libc.so.6 => /lib/tls/libc.so.6 (0x42000000)
> > >         libdl.so.2 => /lib/libdl.so.2 (0x2ace1000)
> > >         libgssapi_krb5.so.2 => /usr/kerberos/lib/libgssapi_krb5.so.2
> > > (0x2ace5000)
> > >         libkrb5.so.3 => /usr/kerberos/lib/libkrb5.so.3 (0x2acf8000)
> > >         libcom_err.so.3 => /usr/kerberos/lib/libcom_err.so.3 (0x2ad56000)
> > >         libk5crypto.so.3 => /usr/kerberos/lib/libk5crypto.so.3
> > > (0x2ad58000)
> > >         libz.so.1 => /usr/lib/libz.so.1 (0x2ad68000)
> > >         /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x2aaab000)
> > >
> > > and say for openldap I used this:
> > >
> > >
> > > env "CPPFLAGS=-I/spare/local/include -I/usr/kerberos/include"
> > > "LDFLAGS=-L/spare/local/lib" ./configure --prefix=/spare/local
> > > --enable-ldap --enable-bdb
> > >
> > >
> > >
> > > Its just cyrus that has a problem with it, everything else finds the
> > > correct version.
> > >
> > >
> > > Best,
> > > Akshay
> > >
> > >
> > >
> > > On Sat, 23 Oct 2004, Dominic Ijichi wrote:
> > >
> > > > Quoting Akshay Kumar <akshay at cs.columbia.edu>:
> > > >
> > > > > Has anyone had any luck using the lastest version of BDB 4.2.52 w/ the
> > > > > cyrus 2.2.8?
> > > > >
> > > > > I compiled Berkeley DB 4.2.52. I also succesfully build sendmail, sasl
> > > and
> > > > > openldap against this version installed in /spare/local.
> > > > > But I am having problems getting cyrus-imap to use this version.
> > > > >
> > > > > I tried:
> > > > >
> > > > > env "CPPFLAGS=-I/spare/local/include -I/usr/kerberos/include"
> > > > > "LDFLAGS=-L/spare/local/lib" ./configure --prefix=/spare/local
> > > > > --with-cyrus-prefix=/spare/local/cyrus --with-bdb=/spare/local
> > > > > --with-bdb-libdir=/spare/local/lib
> > > > > --with-bdb-incdir=/spare/local/include --with-snmp=/spare/local/lib
> > > > >
> > > > > make depend
> > > > > make all CFLAGS=-O
> > > > >
> > > > > BDB is installed in /spare/local
> > > > >
> > > > > Syslog throws the following error:
> > > > >
> > > > > Oct 20 11:28:19 test ctl_cyrusdb[18987]: incorrect version of Berkeley
> > > db:
> > > > > compiled against 4.2.52, linked against 4.0.14
> > > >
> > > > hi, you dont say what OS you're using, which doesnt help much here...
> > > >
> > > > looks like its picking up the correct db.h but not the correct libdb-4.so.
> > > if
> > > > its linux, make sure you haven't got the db4 and db4-devel rpms installed,
> > > as
> > > > even if you put /spare/local/lib in /etc/ld.so.conf it will still look in
> > > > /usr/lib first which is where the system db4 rpm throws the libs.  you
> > > could try
> > > > changing 'LDFLAGS=-L/spare/local/lib" to 'LDFLAGS=-L/spare/local/lib
> > > > -R/spare/local/lib".  if you use LD_LIBRARY_PATH, put /spare/local/lib in
> > > first,
> > > > or at least before /usr/lib.  if you're using crle/ldconfig then i'm not
> > > sure
> > > > how you override the system lib paths, if you can at all, i usually
> > > forcibly
> > > > remove the system db4 rpms to eliminate any conflict,but this is not
> > > advised
> > > > unless you know the OS really well.
> > > >
> > > > oh, also make sure your libs have built correctly, do 'ldd -r
> > > > /space/local/lib/libdb-4.2.so' and make sure you don't get any errors.
> > > >
> > > > ------------------------------------------
> > > > This message was penned by the hand of Dom
> > > >
> >
> >
> > ------------------------------------------
> > This message was penned by the hand of Dom
> > ---
> > Cyrus Home Page: http://asg.web.cmu.edu/cyrus
> > Cyrus Wiki/FAQ: http://cyruswiki.andrew.cmu.edu
> > List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html
> >
> ---
> Cyrus Home Page: http://asg.web.cmu.edu/cyrus
> Cyrus Wiki/FAQ: http://cyruswiki.andrew.cmu.edu
> List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html
>
---
Cyrus Home Page: http://asg.web.cmu.edu/cyrus
Cyrus Wiki/FAQ: http://cyruswiki.andrew.cmu.edu
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html




More information about the Info-cyrus mailing list