Archived

This forum has been archived. Please start a new discussion on GitHub.

ICE Test fail in./test/Freeze/dbmap

Hello!

I'm using ICE for a schoolproject and i'm encountering a problem with the "make test".

I'm using Mandriva 2008.1 , with gcc 4.2.3 and installed all the required dependances ( DB-Berkely 4.6, mcpp 2.7, bunzip2, openssl, expat ... ) . I compiled ICE 3.2.1 ( because our project is only compatible with this version for now ) and also ICE 3.3.0 wihtout any problem, but a problem is occuring for both versions while testing :

*** running tests in ./test/IceSSL/configuration
starting server... ok
starting client... ok
testing manual initialization... ok
testing certificate verification... ok
testing custom certificate verifier... ok
testing protocols... ok
testing expired certificates... ok
testing CA certificate directory... ok
testing password prompt... ok
testing ciphers... ok
testing IceSSL.TrustOnly... ok
testing IceSSL.TrustOnly.Client... ok
testing IceSSL.TrustOnly.Server... ok
testing IceSSL.TrustOnly.Server.<AdapterName>... ok

*** running tests in ./test/Freeze/dbmap
starting client... ok
./test/Freeze/dbmap/client: symbol lookup error: ./lib/libFreeze.so.32: undefined symbol: _ZN2Db9associateEP5DbTxnPS_PFiS2_PK3DbtS5_PS3_Ej
*** test in ./test/Freeze/dbmap failed with exit status 256


stands the "db" in "dbmap" for db_berkeley? Might the problem has anything to do with this dependancy? Wenn I execute the "icegridnode"-command, i also get :

bash-3.2$ icegridnode
icegridnode: symbol lookup error: /opt/Ice-3.2.1/lib/libFreeze.so.32: undefined symbol: _ZN2Db9associateEP5DbTxnPS_PFiS2_PK3DbtS5_PS3_Ej

I would be very thanksfull for a bit of advice, I must say i'm a bit lost!
Thanks in advance !!
Ronan

Comments

  • benoit
    benoit Rennes, France
    Hi Ronan,

    It sounds like the dynamic linker is picking up the wrong BerkeleyDB shared library. You can check it out by running "ldd ./icegridnode" for example.

    If you compiled and installed BerkeleyDB in a non-standard location, you'll most likely need to add its lib directory to the LD_LIBRARY_PATH environment variable.

    Cheers,
    Benoit.
  • I added the lib directory of BerkeleyDB to the LD_LIBRARY_PATH environment variable as you said and it worked!

    Thank you so much!

    Ronan
  • Hi Benoit,

    After having completed the build for Ice 3.3.1 on Mandriva OS, I try launching ./icegridnode from my cpp/bin directory.

    As Ronan, I get an error from the dynamic linker on the libFreeze library :

    ./icegridnode --Ice.Config=configTest.cfg
    ./icegridnode: symbol lookup error: /usr/local/icedep/Ice-3.3.1/cpp/lib/libFreeze.so.33: undefined symbol: _ZN2Db9associateEP5DbTxnPS_PFiS2_PK3DbtS5_PS3_Ej

    ldd ./icegridnode gives :
    linux-gate.so.1 => (0xffffe000)
    libIceGrid.so.33 => /usr/local/icedep/Ice-3.3.1/cpp/lib/libIceGrid.so.33 (0xb7c9b000)
    libIceStormService.so.33 => /usr/local/icedep/Ice-3.3.1/cpp/lib/libIceStormService.so.33 (0xb7b0a000)
    libIceBox.so.33 => /usr/local/icedep/Ice-3.3.1/cpp/lib/libIceBox.so.33 (0xb7ac9000)
    libGlacier2.so.33 => /usr/local/icedep/Ice-3.3.1/cpp/lib/libGlacier2.so.33 (0xb7a2c000)
    libIcePatch2.so.33 => /usr/local/icedep/Ice-3.3.1/cpp/lib/libIcePatch2.so.33 (0xb79b5000)
    libFreeze.so.33 => /usr/local/icedep/Ice-3.3.1/cpp/lib/libFreeze.so.33 (0xb78a4000)
    libIceXML.so.33 => /usr/local/icedep/Ice-3.3.1/cpp/lib/libIceXML.so.33 (0xb7891000)
    libIceSSL.so.33 => /usr/local/icedep/Ice-3.3.1/cpp/lib/libIceSSL.so.33 (0xb76f2000)
    libIce.so.33 => /usr/local/icedep/Ice-3.3.1/cpp/lib/libIce.so.33 (0xb736c000)
    libIceUtil.so.33 => /usr/local/icedep/Ice-3.3.1/cpp/lib/libIceUtil.so.33 (0xb730c000)
    libpthread.so.0 => /lib/i686/libpthread.so.0 (0xb72e1000)
    librt.so.1 => /lib/i686/librt.so.1 (0xb72d8000)
    libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb71ea000)
    libm.so.6 => /lib/i686/libm.so.6 (0xb71c5000)
    libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb71b9000)
    libc.so.6 => /lib/i686/libc.so.6 (0xb7075000)
    libdb_cxx-4.6.so => /usr/lib/libdb_cxx-4.6.so (0xb6f29000)
    libexpat.so.1 => /usr/lib/libexpat.so.1 (0xb6f07000)
    libdl.so.2 => /lib/libdl.so.2 (0xb6f03000)
    /lib/ld-linux.so.2 (0xb7f20000)

    I set the LD_LIBRARY_PATH environment variable :
    export LD_LIBRARY_PATH=/usr/local/icedep/Ice-3.3.1/cpp/lib:/usr/local/BerkeleyDB.4.7/lib

    I hope you will be able to give me any tip so that I can get rid of that error ! ;)

    Cheers,

    Simon.
  • Sorry everybody,

    I corrected the error myself by replacing the Berkeley DB 4.7 dependance by an older version. It runs perfectly with the 4.6.

    Bye,

    Simon.