eleveldb make test failure

Jared Morrow jared at basho.com
Tue Nov 1 09:30:45 EDT 2011


When we pulled in LevelDB in the effort to use it as a backend for Riak,
changes needed to be made to make sure it worked across platforms.  In
fact, many of these changes were eventually accepted by the LevelDB team at
Google.  Snappy was one of the features which we didn't get a chance to
fully check out if it worked properly on some of our platforms, most
notably Solaris.   This is not to say it won't eventually be used, but in
an effort to provide LevelDB as a backend while still providing a stable
product, some things were cut from it.

Thanks,
Jared


On Mon, Oct 31, 2011 at 8:07 PM, Phil Sorber <phil at omniti.com> wrote:

> Jared,
>
> Can I ask why you guys don't use Snappy? Have you had problems with it?
> Did it not perform well in tests?
>
> Thanks.
>
> On Fri, Oct 28, 2011 at 10:47 PM, Jared Morrow <jared at basho.com> wrote:
>
>> Phil,
>>
>> I tried reproducing the issue on OSX, Ubuntu 11, and Fedora 13 with no
>> luck.   The curiosity I have is the following
>>
>>>    undefined symbol: _ZN6snappy13RawUncompressEPKcmPc'"}}
>>> *** test module not found ***
>>>
>> You have -DSNAPPY being passed into the compiler, and it appears that is
>> where the 'undefined symbol' error is coming from.   We don't compile with
>> snappy installed, so I'm not too familiar with its versions.   So if I was
>> you, I'd either double check if your snappy install is up to date, or
>> simply disable its use.   To do that, it seems like if you make a simple
>> change to:  c_src/leveldb/Makefile
>>
>> Simply comment out the following section
>>
>>  # If Snappy is installed, add compilation and linker flags
>>>>
>>>>
>>>
>>> # (see http://code.google.com/p/snappy/)
>>>>
>>>>
>>>
>>>  ifeq ($(SNAPPY), 1)
>>>
>>> SNAPPY_CFLAGS=-DSNAPPY
>>>
>>> SNAPPY_LDFLAGS=-lsnappy
>>>
>>> else
>>>
>>> SNAPPY_CFLAGS=
>>>
>>> SNAPPY_LDFLAGS=
>>>
>>> endif
>>>
>>>
>>
>>
>> Then try a 'make clean' and 'make test' again.
>>
>> If you are still having issues after that, please let me know.
>>
>> -Jared
>>
>>
>>
>> On Fri, Oct 28, 2011 at 1:09 PM, Phil Sorber <phil at omniti.com> wrote:
>>
>>> I am trying to do some benchmarking with eleveldb but even getting the
>>> basic 'make test' going is failing. Am I doing something obviously
>>> wrong here?
>>>
>>> Also, I tried to put the eleveldb driver into basho bench, but not
>>> sure if that is the intent there.
>>>
>>> $ make test
>>> ./rebar compile
>>> ==> eleveldb (compile)
>>> make[1]: Entering directory `/home/phil/git/basho/eleveldb/c_src/leveldb'
>>> g++  -fPIC -c -I. -I./include -fno-builtin-memcmp
>>> -DLEVELDB_PLATFORM_POSIX -pthread -DOS_LINUX -O2 -DNDEBUG
>>> -DSNAPPY db/builder.cc -o db/builder.o
>>> g++  -fPIC -c -I. -I./include -fno-builtin-memcmp
>>> -DLEVELDB_PLATFORM_POSIX -pthread -DOS_LINUX -O2 -DNDEBUG
>>> -DSNAPPY db/c.cc -o db/c.o
>>> g++  -fPIC -c -I. -I./include -fno-builtin-memcmp
>>> -DLEVELDB_PLATFORM_POSIX -pthread -DOS_LINUX -O2 -DNDEBUG
>>> -DSNAPPY db/db_impl.cc -o db/db_impl.o
>>> g++  -fPIC -c -I. -I./include -fno-builtin-memcmp
>>> -DLEVELDB_PLATFORM_POSIX -pthread -DOS_LINUX -O2 -DNDEBUG
>>> -DSNAPPY db/db_iter.cc -o db/db_iter.o
>>> g++  -fPIC -c -I. -I./include -fno-builtin-memcmp
>>> -DLEVELDB_PLATFORM_POSIX -pthread -DOS_LINUX -O2 -DNDEBUG
>>> -DSNAPPY db/filename.cc -o db/filename.o
>>> g++  -fPIC -c -I. -I./include -fno-builtin-memcmp
>>> -DLEVELDB_PLATFORM_POSIX -pthread -DOS_LINUX -O2 -DNDEBUG
>>> -DSNAPPY db/dbformat.cc -o db/dbformat.o
>>> g++  -fPIC -c -I. -I./include -fno-builtin-memcmp
>>> -DLEVELDB_PLATFORM_POSIX -pthread -DOS_LINUX -O2 -DNDEBUG
>>> -DSNAPPY db/log_reader.cc -o db/log_reader.o
>>> g++  -fPIC -c -I. -I./include -fno-builtin-memcmp
>>> -DLEVELDB_PLATFORM_POSIX -pthread -DOS_LINUX -O2 -DNDEBUG
>>> -DSNAPPY db/log_writer.cc -o db/log_writer.o
>>> g++  -fPIC -c -I. -I./include -fno-builtin-memcmp
>>> -DLEVELDB_PLATFORM_POSIX -pthread -DOS_LINUX -O2 -DNDEBUG
>>> -DSNAPPY db/memtable.cc -o db/memtable.o
>>> g++  -fPIC -c -I. -I./include -fno-builtin-memcmp
>>> -DLEVELDB_PLATFORM_POSIX -pthread -DOS_LINUX -O2 -DNDEBUG
>>> -DSNAPPY db/repair.cc -o db/repair.o
>>> g++  -fPIC -c -I. -I./include -fno-builtin-memcmp
>>> -DLEVELDB_PLATFORM_POSIX -pthread -DOS_LINUX -O2 -DNDEBUG
>>> -DSNAPPY db/table_cache.cc -o db/table_cache.o
>>> g++  -fPIC -c -I. -I./include -fno-builtin-memcmp
>>> -DLEVELDB_PLATFORM_POSIX -pthread -DOS_LINUX -O2 -DNDEBUG
>>> -DSNAPPY db/version_edit.cc -o db/version_edit.o
>>> g++  -fPIC -c -I. -I./include -fno-builtin-memcmp
>>> -DLEVELDB_PLATFORM_POSIX -pthread -DOS_LINUX -O2 -DNDEBUG
>>> -DSNAPPY db/version_set.cc -o db/version_set.o
>>> g++  -fPIC -c -I. -I./include -fno-builtin-memcmp
>>> -DLEVELDB_PLATFORM_POSIX -pthread -DOS_LINUX -O2 -DNDEBUG
>>> -DSNAPPY db/write_batch.cc -o db/write_batch.o
>>> g++  -fPIC -c -I. -I./include -fno-builtin-memcmp
>>> -DLEVELDB_PLATFORM_POSIX -pthread -DOS_LINUX -O2 -DNDEBUG
>>> -DSNAPPY port/port_posix.cc -o port/port_posix.o
>>> g++  -fPIC -c -I. -I./include -fno-builtin-memcmp
>>> -DLEVELDB_PLATFORM_POSIX -pthread -DOS_LINUX -O2 -DNDEBUG
>>> -DSNAPPY table/block.cc -o table/block.o
>>> g++  -fPIC -c -I. -I./include -fno-builtin-memcmp
>>> -DLEVELDB_PLATFORM_POSIX -pthread -DOS_LINUX -O2 -DNDEBUG
>>> -DSNAPPY table/block_builder.cc -o table/block_builder.o
>>> g++  -fPIC -c -I. -I./include -fno-builtin-memcmp
>>> -DLEVELDB_PLATFORM_POSIX -pthread -DOS_LINUX -O2 -DNDEBUG
>>> -DSNAPPY table/format.cc -o table/format.o
>>> g++  -fPIC -c -I. -I./include -fno-builtin-memcmp
>>> -DLEVELDB_PLATFORM_POSIX -pthread -DOS_LINUX -O2 -DNDEBUG
>>> -DSNAPPY table/iterator.cc -o table/iterator.o
>>> g++  -fPIC -c -I. -I./include -fno-builtin-memcmp
>>> -DLEVELDB_PLATFORM_POSIX -pthread -DOS_LINUX -O2 -DNDEBUG
>>> -DSNAPPY table/merger.cc -o table/merger.o
>>> g++  -fPIC -c -I. -I./include -fno-builtin-memcmp
>>> -DLEVELDB_PLATFORM_POSIX -pthread -DOS_LINUX -O2 -DNDEBUG
>>> -DSNAPPY table/table.cc -o table/table.o
>>> g++  -fPIC -c -I. -I./include -fno-builtin-memcmp
>>> -DLEVELDB_PLATFORM_POSIX -pthread -DOS_LINUX -O2 -DNDEBUG
>>> -DSNAPPY table/table_builder.cc -o table/table_builder.o
>>> g++  -fPIC -c -I. -I./include -fno-builtin-memcmp
>>> -DLEVELDB_PLATFORM_POSIX -pthread -DOS_LINUX -O2 -DNDEBUG
>>> -DSNAPPY table/two_level_iterator.cc -o table/two_level_iterator.o
>>> g++  -fPIC -c -I. -I./include -fno-builtin-memcmp
>>> -DLEVELDB_PLATFORM_POSIX -pthread -DOS_LINUX -O2 -DNDEBUG
>>> -DSNAPPY util/arena.cc -o util/arena.o
>>> g++  -fPIC -c -I. -I./include -fno-builtin-memcmp
>>> -DLEVELDB_PLATFORM_POSIX -pthread -DOS_LINUX -O2 -DNDEBUG
>>> -DSNAPPY util/cache.cc -o util/cache.o
>>> g++  -fPIC -c -I. -I./include -fno-builtin-memcmp
>>> -DLEVELDB_PLATFORM_POSIX -pthread -DOS_LINUX -O2 -DNDEBUG
>>> -DSNAPPY util/coding.cc -o util/coding.o
>>> g++  -fPIC -c -I. -I./include -fno-builtin-memcmp
>>> -DLEVELDB_PLATFORM_POSIX -pthread -DOS_LINUX -O2 -DNDEBUG
>>> -DSNAPPY util/comparator.cc -o util/comparator.o
>>> g++  -fPIC -c -I. -I./include -fno-builtin-memcmp
>>> -DLEVELDB_PLATFORM_POSIX -pthread -DOS_LINUX -O2 -DNDEBUG
>>> -DSNAPPY util/crc32c.cc -o util/crc32c.o
>>> g++  -fPIC -c -I. -I./include -fno-builtin-memcmp
>>> -DLEVELDB_PLATFORM_POSIX -pthread -DOS_LINUX -O2 -DNDEBUG
>>> -DSNAPPY util/env.cc -o util/env.o
>>> g++  -fPIC -c -I. -I./include -fno-builtin-memcmp
>>> -DLEVELDB_PLATFORM_POSIX -pthread -DOS_LINUX -O2 -DNDEBUG
>>> -DSNAPPY util/env_posix.cc -o util/env_posix.o
>>> g++  -fPIC -c -I. -I./include -fno-builtin-memcmp
>>> -DLEVELDB_PLATFORM_POSIX -pthread -DOS_LINUX -O2 -DNDEBUG
>>> -DSNAPPY util/hash.cc -o util/hash.o
>>> g++  -fPIC -c -I. -I./include -fno-builtin-memcmp
>>> -DLEVELDB_PLATFORM_POSIX -pthread -DOS_LINUX -O2 -DNDEBUG
>>> -DSNAPPY util/histogram.cc -o util/histogram.o
>>> g++  -fPIC -c -I. -I./include -fno-builtin-memcmp
>>> -DLEVELDB_PLATFORM_POSIX -pthread -DOS_LINUX -O2 -DNDEBUG
>>> -DSNAPPY util/logging.cc -o util/logging.o
>>> g++  -fPIC -c -I. -I./include -fno-builtin-memcmp
>>> -DLEVELDB_PLATFORM_POSIX -pthread -DOS_LINUX -O2 -DNDEBUG
>>> -DSNAPPY util/options.cc -o util/options.o
>>> g++  -fPIC -c -I. -I./include -fno-builtin-memcmp
>>> -DLEVELDB_PLATFORM_POSIX -pthread -DOS_LINUX -O2 -DNDEBUG
>>> -DSNAPPY util/status.cc -o util/status.o
>>> rm -f libleveldb.a
>>> ar -rs libleveldb.a ./db/builder.o ./db/c.o ./db/db_impl.o
>>> ./db/db_iter.o ./db/filename.o ./db/dbformat.o ./db/log_reader.o
>>> ./db/log_writer.o ./db/memtable.o ./db/repair.o ./db/table_cache.o
>>> ./db/version_edit.o ./db/version_set.o ./db/write_batch.o
>>> ./port/port_posix.o ./table/block.o ./table/block_builder.o
>>> ./table/format.o ./table/iterator.o ./table/merger.o ./table/table.o
>>> ./table/table_builder.o ./table/two_level_iterator.o ./util/arena.o
>>> ./util/cache.o ./util/coding.o ./util/comparator.o ./util/crc32c.o
>>> ./util/env.o ./util/env_posix.o ./util/hash.o ./util/histogram.o
>>> ./util/logging.o ./util/options.o ./util/status.o
>>> ar: creating libleveldb.a
>>> make[1]: Leaving directory `/home/phil/git/basho/eleveldb/c_src/leveldb'
>>> Compiled src/eleveldb.erl
>>> Compiling c_src/eleveldb.cc
>>> ./rebar eunit
>>> ==> eleveldb (eunit)
>>> Compiled test/basho_bench_driver_eldb.erl
>>> Compiled src/eleveldb.erl
>>> undefined
>>>
>>> =ERROR REPORT==== 28-Oct-2011::14:52:58 ===
>>> The on_load function for module eleveldb returned {error,
>>>                                                   {load_failed,
>>>                                                    "Failed to load
>>> NIF library: '/home/phil/git/basho/eleveldb/priv/eleveldb.so:
>>> undefined symbol: _ZN6snappy13RawUncompressEPKcmPc'"}}
>>> *** test module not found ***
>>> ::eleveldb
>>>
>>> =======================================================
>>>  Failed: 0.  Skipped: 0.  Passed: 0.
>>> One or more tests were cancelled.
>>> ERROR: One or more eunit tests failed.
>>> make: *** [test] Error 1
>>>
>>> _______________________________________________
>>> riak-users mailing list
>>> riak-users at lists.basho.com
>>> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
>>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.basho.com/pipermail/riak-users_lists.basho.com/attachments/20111101/c77c449d/attachment.html>


More information about the riak-users mailing list