wbolster / plyvel

Plyvel, a fast and feature-rich Python interface to LevelDB
https://plyvel.readthedocs.io/
Other
530 stars 75 forks source link

Program received signal SIGSEGV, Segmentation fault. #59

Closed ghost closed 6 years ago

ghost commented 6 years ago

OS kali-linux

version 0.8 work`s fine and in 0.9 i have this issue

Starting program: venv/bin/python index_db_test.py [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

Program received signal SIGSEGV, Segmentation fault. 0x00007ffff662c18d in leveldb::InternalFilterPolicy::CreateFilter(leveldb::Slice const, int, std::__cxx11::basic_string<char, std::char_traits, std::allocator >) const () from /usr/lib/x86_64-linux-gnu/libleveldb.so.1

wbolster commented 6 years ago

likely not a plyvel issue since it does not call this leveldb api directly

wbolster commented 6 years ago

try removing .cache/pip from your homedir and rebuild in fresh venv

ghost commented 6 years ago

if i downgrade to v 0.8 all my source works, and with 0.9 not magic?)

wbolster commented 6 years ago

https://github.com/wbolster/plyvel/compare/0.8...0.9

if you look at the diff between 0.8 and 0.9 the actual code has only one change, which seems not relevant here.

i suspect cached builds or something unexpected like that on your side.

also, i doubt that is the complete backtrace? can you reproduce under gdb and share "thread apply all bt" output?

ghost commented 6 years ago

(venv) root@Kali:~/PythonProjects/project# gdb -ex r --args python index_db_test.py GNU gdb (Debian 7.12-6+b1) 7.12.0.20161007-git Copyright (C) 2016 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: http://www.gnu.org/software/gdb/bugs/. Find the GDB manual and other documentation resources online at: http://www.gnu.org/software/gdb/documentation/. For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from python...(no debugging symbols found)...done. Starting program: /root/PythonProjects/venv/bin/python index_db_test.py [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

Program received signal SIGSEGV, Segmentation fault. 0x00007ffff662c157 in leveldb::InternalFilterPolicy::Name() const () from /usr/lib/x86_64-linux-gnu/libleveldb.so.1

ghost commented 6 years ago

and if i downgrade to 0.8 all works again: (venv) root@Kali-video:~/PythonProjects/project# gdb -ex r --args python index_db_test.py GNU gdb (Debian 7.12-6+b1) 7.12.0.20161007-git Copyright (C) 2016 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: http://www.gnu.org/software/gdb/bugs/. Find the GDB manual and other documentation resources online at: http://www.gnu.org/software/gdb/documentation/. For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from python...(no debugging symbols found)...done. Starting program: /root/PythonProjects/venv/bin/python index_db_test.py [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". b'META:chrome-extension://pkedcjkdefgpdelpmeomcjbeemfm' b'\x08\xd5\xc1\..............

wbolster commented 6 years ago

i do not see any backtraces... see earlier comments.

also try completely fresh installs, remove .pip/cache, venvs, and so on. other people have had issues with that before.

wbolster commented 6 years ago

leveldb versions are the same?

https://github.com/google/leveldb/issues/425

ghost commented 6 years ago

yes all same, the only version of plyvel changed, and this is the full traceback

ghost commented 6 years ago

as test chrome version 60+ indexdb you can try it by your hands C:\Users\USERNAME\AppData\Local\Google\Chrome\User Data\Default\Local Storage

wbolster commented 6 years ago

in a fresh virtualenv using python3.5:

$ pip install plyvel
[...]
Successfully installed plyvel-0.9

this works without error:

>>> import plyvel
>>> db = plyvel.DB('testdb', create_if_missing=True)
>>> db.put(b'foo', b'bar')
>>> db.get(b'foo')
b'bar'
>>> db.close()

i can also open ~/.config/chromium/Default/Local Storage/leveldb (i made a copy first) without problems:

[Python 3.5.2, IPython 6.2.1, sys.prefix ~/.virtualenvs/tmp-9cd801a3b41874cf]
>>> import plyvel
>>> db = plyvel.DB('/tmp/chromium-db/')
>>> it = db.iterator()
>>> next(it)
(b'META:chrome-devtools://devtools', b'...')
>>> db.close()