-
Notifications
You must be signed in to change notification settings - Fork 8.1k
Description
Original issue 9 created by winwasher on 2011-06-19T09:56:51.000Z:
Hi. I have some problems installing leveldb.
I run make check and corruption_test test fails. Running it under gdb i get
(gdb) run
Starting program: /home/spyros/src/leveldb/corruption_test
[Thread debugging using libthread_db enabled]
==== Test CorruptionTest.Recovery
Program received signal SIGSEGV, Segmentation fault.
0x0805d4b2 in leveldb::SkipList<char const_, leveldb::MemTable::KeyComparator>::FindGreaterOrEqual(char const_ const&, leveldb::SkipList<char const_, leveldb::MemTable::KeyComparator>::Node_*) const ()
(gdb) bt
0 0x0805d4b2 in leveldb::SkipList<char const_, leveldb::MemTable::KeyComparator>::FindGreaterOrEqual(char const_ const&, leveldb::SkipList<char const_, leveldb::MemTable::KeyComparator>::Node_*) const ()
1 0x0805d5bc in leveldb::SkipList<char const_, leveldb::MemTable::KeyComparator>::Insert(char const_ const&) ()
2 0x0805cf2a in leveldb::MemTable::Add(unsigned long long, leveldb::ValueType, leveldb::Slice const&, leveldb::Slice const&) ()
3 0x08069779 in leveldb::(anonymous namespace)::MemTableInserter::Put(leveldb::Slice const&, leveldb::Slice const&) ()
4 0x08069a9d in leveldb::WriteBatch::Iterate(leveldb::WriteBatch::Handler*) const ()
5 0x08069b40 in leveldb::WriteBatchInternal::InsertInto(leveldb::WriteBatch const_, leveldb::MemTable_) ()
6 0x0805685e in leveldb::DBImpl::Write(leveldb::WriteOptions const&, leveldb::WriteBatch*) ()
7 0x0804f090 in leveldb::CorruptionTest::Build(int) ()
8 0x0804cd6a in leveldb::_Test_Recovery::_Run() ()
9 0x0805053a in leveldb::_Test_Recovery::_RunIt() ()
10 0x08074b4e in leveldb::test::RunAllTests() ()
11 0x0804a84b in main ()
I get an analogous error if i run this minimal snippet
int
main(int argc, char* argv[])
{
leveldb::DB* db;
leveldb::Options options;
options.create_if_missing = true;
leveldb::Status s = leveldb::DB::Open(options, "/home/spyros/src/async/leveldb/keystore", &db);
leveldb::WriteOptions wopts;
wopts.sync = true;
if (s.ok()) s = db->Put(wopts, "Hello", "World");
std::string val;
if (s.ok()) s = db->Get(leveldb::ReadOptions(), "Hello", &val);
if (s.ok())
std::cerr << "Value of 'Hello' is " << val << std::endl;
else
std::cerr << "DB error: " << s.ToString() << std::endl;
delete db;
}
the gdb output in this case is
(gdb) run
Starting program: /home/spyros/src/async/minimal
[Thread debugging using libthread_db enabled]
Program received signal SIGSEGV, Segmentation fault.
0x08056cd2 in leveldb::SkipList<char const_, leveldb::MemTable::KeyComparator>::FindGreaterOrEqual(char const_ const&, leveldb::SkipList<char const_, leveldb::MemTable::KeyComparator>::Node_*) const ()
(gdb) bt
0 0x08056cd2 in leveldb::SkipList<char const_, leveldb::MemTable::KeyComparator>::FindGreaterOrEqual(char const_ const&, leveldb::SkipList<char const_, leveldb::MemTable::KeyComparator>::Node_*) const ()
1 0x08056d9e in leveldb::MemTableIterator::Seek(leveldb::Slice const&) ()
2 0x08053da1 in leveldb::(anonymous namespace)::DBIter::Seek(leveldb::Slice const&) ()
3 0x0804df82 in leveldb::DBImpl::Get(leveldb::ReadOptions const&, leveldb::Slice const&, std::string*) ()
4 0x0804a4d3 in main ()
I use ubuntu 10.04 LTS 32-bit gcc 4.4.3 and gdb 7.1, leveldb revision 31
Any suggestions for this setup?
Thank you
Spyros