citp / BlockSci

A high-performance tool for blockchain science and exploration
https://citp.github.io/BlockSci/
GNU General Public License v3.0
1.34k stars 259 forks source link

Accessing transaction iterator output data segfaults in rocksdb::MemTableIterator::value() #303

Open nothingmuch opened 5 years ago

nothingmuch commented 5 years ago

Trying to query an iterator results in a segmentation fault from rocksdb:

Thread 1 "python3" received signal SIGSEGV, Segmentation fault.
0x00007fffe9927c29 in rocksdb::MemTableIterator::value() const () from /gnu/store/sxjjjsklaqb3v5xss065hvvrd35530c6-blocksci-0.6/lib/libblocksci.so
(gdb) bt
#0  0x00007fffe9927c29 in rocksdb::MemTableIterator::value() const () from /gnu/store/sxjjjsklaqb3v5xss065hvvrd35530c6-blocksci-0.6/lib/libblocksci.so
#1  0x00007fffe98ed95f in rocksdb::ArenaWrappedDBIter::value() const () from /gnu/store/sxjjjsklaqb3v5xss065hvvrd35530c6-blocksci-0.6/lib/libblocksci.so
#2  0x00007fffe984b690 in ranges::v3::detail::any_cursor_impl<ranges::v3::basic_iterator<ranges::v3::adaptor_cursor<ranges::v3::basic_iterator<blocksci::ColumnIterator::cursor>, ranges::v3::iter_transform_view<blocksci::ColumnIterator, ranges::v3::indirected<blocksci::AddressIndex::getOutputPointers(blocksci::RawAddress const&) const::{lambda(std::pair<blocksci::MemoryView, blocksci::MemoryView>)#1}> >::adaptor<true> > >, blocksci::InoutPointer, (ranges::v3::category)3>::read() const () from /gnu/store/sxjjjsklaqb3v5xss065hvvrd35530c6-blocksci-0.6/lib/libblocksci.so
#3  0x00007fffe97e7642 in ranges::v3::detail::any_input_view_impl<ranges::v3::transform_view<ranges::v3::any_view<blocksci::InoutPointer, (ranges::v3::category)3, void>, blocksci::AddressAllTxRange::AddressAllTxRange(blocksci::Address const&, blocksci::DataAccess*)::{lambda(blocksci::InoutPointer const&)#1}>, blocksci::OutputPointer, false>::read() const ()
   from /gnu/store/sxjjjsklaqb3v5xss065hvvrd35530c6-blocksci-0.6/lib/libblocksci.so
#4  0x00007fffe97e7a60 in ranges::v3::detail::any_input_view_impl<blocksci::AddressAllTxRange, blocksci::Transaction, false>::init() ()
   from /gnu/store/sxjjjsklaqb3v5xss065hvvrd35530c6-blocksci-0.6/lib/libblocksci.so
#5  0x00007fffe9ea581e in ?? () from /home/nothingmuch/.guix-profile/lib/python3.7/site-packages/blocksci/_blocksci.cpython-37m-x86_64-linux-gnu.so
#6  0x00007fffea08694e in ?? () from /home/nothingmuch/.guix-profile/lib/python3.7/site-packages/blocksci/_blocksci.cpython-37m-x86_64-linux-gnu.so
#7  0x00007fffe9fb8568 in ?? () from /home/nothingmuch/.guix-profile/lib/python3.7/site-packages/blocksci/_blocksci.cpython-37m-x86_64-linux-gnu.so
#8  0x00007fffea11d37c in ?? () from /home/nothingmuch/.guix-profile/lib/python3.7/site-packages/blocksci/_blocksci.cpython-37m-x86_64-linux-gnu.so
#9  0x00007ffff7cfce8a in _PyMethodDef_RawFastCallDict () from /gnu/store/rf4m9vlr5b8126l5xjxzdwrqpcbvhqv1-python-3.7.4/lib/libpython3.7m.so.1.0
#10 0x00007ffff7cfd0e5 in _PyCFunction_FastCallDict () from /gnu/store/rf4m9vlr5b8126l5xjxzdwrqpcbvhqv1-python-3.7.4/lib/libpython3.7m.so.1.0
#11 0x00007ffff7cfd44d in _PyObject_Call_Prepend () from /gnu/store/rf4m9vlr5b8126l5xjxzdwrqpcbvhqv1-python-3.7.4/lib/libpython3.7m.so.1.0
#12 0x00007ffff7cfe8c8 in PyObject_Call () from /gnu/store/rf4m9vlr5b8126l5xjxzdwrqpcbvhqv1-python-3.7.4/lib/libpython3.7m.so.1.0
#13 0x00007ffff7d6a982 in slot_tp_call () from /gnu/store/rf4m9vlr5b8126l5xjxzdwrqpcbvhqv1-python-3.7.4/lib/libpython3.7m.so.1.0
#14 0x00007ffff7cfcaa3 in _PyObject_FastCallKeywords () from /gnu/store/rf4m9vlr5b8126l5xjxzdwrqpcbvhqv1-python-3.7.4/lib/libpython3.7m.so.1.0
#15 0x00007ffff7cd1070 in _PyEval_EvalFrameDefault () from /gnu/store/rf4m9vlr5b8126l5xjxzdwrqpcbvhqv1-python-3.7.4/lib/libpython3.7m.so.1.0
#16 0x00007ffff7de6c1e in _PyEval_EvalCodeWithName () from /gnu/store/rf4m9vlr5b8126l5xjxzdwrqpcbvhqv1-python-3.7.4/lib/libpython3.7m.so.1.0
#17 0x00007ffff7cfc32f in _PyFunction_FastCallDict () from /gnu/store/rf4m9vlr5b8126l5xjxzdwrqpcbvhqv1-python-3.7.4/lib/libpython3.7m.so.1.0
#18 0x00007ffff7d04692 in property_descr_get () from /gnu/store/rf4m9vlr5b8126l5xjxzdwrqpcbvhqv1-python-3.7.4/lib/libpython3.7m.so.1.0
#19 0x00007ffff7d4f7ef in _PyObject_GenericGetAttrWithDict () from /gnu/store/rf4m9vlr5b8126l5xjxzdwrqpcbvhqv1-python-3.7.4/lib/libpython3.7m.so.1.0
#20 0x00007ffff7cd1480 in _PyEval_EvalFrameDefault () from /gnu/store/rf4m9vlr5b8126l5xjxzdwrqpcbvhqv1-python-3.7.4/lib/libpython3.7m.so.1.0
#21 0x00007ffff7de6c1e in _PyEval_EvalCodeWithName () from /gnu/store/rf4m9vlr5b8126l5xjxzdwrqpcbvhqv1-python-3.7.4/lib/libpython3.7m.so.1.0
#22 0x00007ffff7de6cfe in PyEval_EvalCodeEx () from /gnu/store/rf4m9vlr5b8126l5xjxzdwrqpcbvhqv1-python-3.7.4/lib/libpython3.7m.so.1.0
#23 0x00007ffff7de6d2b in PyEval_EvalCode () from /gnu/store/rf4m9vlr5b8126l5xjxzdwrqpcbvhqv1-python-3.7.4/lib/libpython3.7m.so.1.0
#24 0x00007ffff7e1aeea in PyRun_FileExFlags () from /gnu/store/rf4m9vlr5b8126l5xjxzdwrqpcbvhqv1-python-3.7.4/lib/libpython3.7m.so.1.0
#25 0x00007ffff7e1b04d in PyRun_SimpleFileExFlags () from /gnu/store/rf4m9vlr5b8126l5xjxzdwrqpcbvhqv1-python-3.7.4/lib/libpython3.7m.so.1.0
#26 0x00007ffff7e3f756 in pymain_main () from /gnu/store/rf4m9vlr5b8126l5xjxzdwrqpcbvhqv1-python-3.7.4/lib/libpython3.7m.so.1.0
#27 0x00007ffff7e3f989 in _Py_UnixMain () from /gnu/store/rf4m9vlr5b8126l5xjxzdwrqpcbvhqv1-python-3.7.4/lib/libpython3.7m.so.1.0
#28 0x00007ffff78d0b37 in __libc_start_main () from /gnu/store/n0zcbqrv8fmhgmi6k6mg57kvy19wfdzz-glibc-2.29/lib/libc.so.6
#29 0x000000000040107a in _start ()

Reproduction Steps

import blocksci

chain = blocksci.Blockchain("/mnt/blocksci/blocksci.conf")

# wasabi coordinator address, several thousand transactions
address = chain.address_from_string("bc1qs604c7jv6amk4cxqlnvuxv26hv3e48cds4m0ew")
address.txes.output_count

System Information

Using AMI: no, guix package for blocksci: https://github.com/nothingmuch/guix/commit/29eca3a9b9cdc82efe02c2c6fc54ecb3bc3cae6e BlockSci version: 4e26aae493674e46ff4a13b9187e1e272f4bb0ca Blockchain: Bitcoin Parser: Disk Total memory: 128GB when building index, 16 GB when running query

This should be reproducible with guix. If you want to try, you should be able to install it on any linux distro (i used debian 9), then to get my package definitions

guix pull --url=https://github.com/nothingmuch/guix.git --commit=04fb98289da8b9feba749d747bf02358f76045ab
guix environment --ad-hoc blocksci{,py} python -- python3 segfault.py

I will proceed to try with a debug compilation (see latest commit to blockscipy-0.6 branch) and update with a more detailed backtrace.

The data directory was built by running core-update against a freshly synced 0.18.0 release of bitcoin core, with update run after catching up with tip to build the indices. I attempted to compact-indexes to see if that would persuade rocksdb to rebuild something, but saw no change in behaviour.

nothingmuch commented 5 years ago

sorry, correct guix commit should be 04fb98289da8b9feba749d747bf02358f76045ab, the commit in the original report is not stable (names branch not commit in package definition).

maltemoeser commented 5 years ago

This error doesn't occur on my BlockSci instance, could you run a full parse with a normal update instead of core-update? core-update does not update address indexes, which are needed if you want to look up transactions corresponding to an address.

nothingmuch commented 5 years ago

FWIW with the debug build, instead of a segfault i'm seeing assert(valid_) fail in the rocksdb iterator code:

python3: /tmp/guix-build-blocksci-4e26aae493674e46ff4a13b9187e1e272f4bb0ca.drv-0/source/external/rocksdb/db/db_iter.cc:173: virtual rocksdb::Slice rocksdb::DBIter::key() const: Assertion `valid_' failed.

Thread 1 "python3" received signal SIGABRT, Aborted.
0x00007ffff78e37fa in raise ()
   from /gnu/store/n0zcbqrv8fmhgmi6k6mg57kvy19wfdzz-glibc-2.29/lib/libc.so.6
(gdb) bt
#0  0x00007ffff78e37fa in raise () from /gnu/store/n0zcbqrv8fmhgmi6k6mg57kvy19wfdzz-glibc-2.29/lib/libc.so.6
#1  0x00007ffff78e4891 in abort () from /gnu/store/n0zcbqrv8fmhgmi6k6mg57kvy19wfdzz-glibc-2.29/lib/libc.so.6
#2  0x00007ffff78dc52a in __assert_fail_base () from /gnu/store/n0zcbqrv8fmhgmi6k6mg57kvy19wfdzz-glibc-2.29/lib/libc.so.6
#3  0x00007ffff78dc5a2 in __assert_fail () from /gnu/store/n0zcbqrv8fmhgmi6k6mg57kvy19wfdzz-glibc-2.29/lib/libc.so.6
#4  0x00007fffe9736f2c in rocksdb::DBIter::key() const () from /gnu/store/59nzqnym6h31zfmb1ks09sr8g8ggi8wk-blocksci-4e26aae493674e46ff4a13b9187e1e272f4bb0ca/lib/libblocksci.so
#5  0x00007fffe9737888 in rocksdb::ArenaWrappedDBIter::key() const () from /gnu/store/59nzqnym6h31zfmb1ks09sr8g8ggi8wk-blocksci-4e26aae493674e46ff4a13b9187e1e272f4bb0ca/lib/libblocksci.so
#6  0x00007fffe96317a3 in blocksci::ColumnIterator::cursor::read() const () from /gnu/store/59nzqnym6h31zfmb1ks09sr8g8ggi8wk-blocksci-4e26aae493674e46ff4a13b9187e1e272f4bb0ca/lib/libblocksci.so
#7  0x00007fffe96321ca in decltype (({parm#1}.read)()) ranges::v3::range_access::read<blocksci::ColumnIterator::cursor>(blocksci::ColumnIterator::cursor const&) ()
   from /gnu/store/59nzqnym6h31zfmb1ks09sr8g8ggi8wk-blocksci-4e26aae493674e46ff4a13b9187e1e272f4bb0ca/lib/libblocksci.so
#8  0x00007fffe9632218 in std::pair<blocksci::MemoryView, blocksci::MemoryView> ranges::v3::basic_iterator<blocksci::ColumnIterator::cursor>::operator*<false, (void*)0>() const ()
   from /gnu/store/59nzqnym6h31zfmb1ks09sr8g8ggi8wk-blocksci-4e26aae493674e46ff4a13b9187e1e272f4bb0ca/lib/libblocksci.so
#9  0x00007fffe9627053 in decltype (ranges::v3::(anonymous namespace)::invoke((declval<{lambda(std::pair<blocksci::MemoryView, blocksci::MemoryView>)#1} const&>)(), (*{parm#1})...)) ranges::v3::indirected<blocksci::AddressIndex::getOutputPointers(blocksci::RawAddress const&) const::{lambda(std::pair<blocksci::MemoryView, blocksci::MemoryView>)#1}>::operator()<ranges::v3::basic_iterator<blocksci::ColumnIterator::cursor> >(ranges::v3::basic_iterator<blocksci::ColumnIterator::cursor>) const () from /gnu/store/59nzqnym6h31zfmb1ks09sr8g8ggi8wk-blocksci-4e26aae493674e46ff4a13b9187e1e272f4bb0ca/lib/libblocksci.so
#10 0x00007fffe96223ec in decltype (((declval<blocksci::AddressIndex::getOutputPointers(blocksci::RawAddress const&) const::{lambda(std::pair<blocksci::MemoryView, blocksci::MemoryView>)#1} const&>)())(static_cast<ranges::v3::basic_iterator<blocksci::ColumnIterator::cursor>&>({parm#1}))) ranges::v3::semiregular<ranges::v3::indirected<blocksci::AddressIndex::getOutputPointers(blocksci::RawAddress const&) const::{lambda(std::pair<blocksci::MemoryView, blocksci::MemoryView>)#1}> >::operator()<ranges::v3::basic_iterator<blocksci::ColumnIterator::cursor>&>(ranges::v3::basic_iterator<blocksci::ColumnIterator::cursor>&) const & ()
   from /gnu/store/59nzqnym6h31zfmb1ks09sr8g8ggi8wk-blocksci-4e26aae493674e46ff4a13b9187e1e272f4bb0ca/lib/libblocksci.so
#11 0x00007fffe9622449 in decltype ((static_cast<ranges::v3::semiregular<ranges::v3::indirected<blocksci::AddressIndex::getOutputPointers(blocksci::RawAddress const&) const::{lambda(std::pair<blocksci::MemoryView, blocksci::MemoryView>)#1}> > const&>({parm#1}))(static_cast<ranges::v3::basic_iterator<blocksci::ColumnIterator::cursor>&>({parm#2}))) ranges::v3::invoke_fn::operator()<ranges::v3::semiregular<ranges::v3::indirected<blocksci::AddressIndex::getOutputPointers(blocksci::RawAddress const&) const::{lambda(std::pair<blocksci::MemoryView, blocksci::MemoryView>)#1}> > const&, ranges::v3::basic_iterator<blocksci::ColumnIterator::cursor>&, 0>(ranges::v3::semiregular<ranges::v3::indirected<blocksci::AddressIndex::getOutputPointers(blocksci::RawAddress const&) const::{lambda(std::pair<blocksci::MemoryView, blocksci::MemoryView>)#1}> > const&, ranges::v3::basic_iterator<blocksci::ColumnIterator::cursor>&) const () from /gnu/store/59nzqnym6h31zfmb1ks09sr8g8ggi8wk-blocksci-4e26aae493674e46ff4a13b9187e1e272f4bb0ca/lib/libblocksci.so
#12 0x00007fffe962249f in decltype (ranges::v3::(anonymous namespace)::invoke((declval<ranges::v3::semiregular<ranges::v3::indirected<blocksci::AddressIndex::getOutputPointers(blocksci::RawAddress const&) const::{lambda(std::pair<blocksci::MemoryView, blocksci::MemoryView>)#1}> >&>)(), (declval<ranges::v3::basic_iterator<blocksci::ColumnIterator::cursor>&>)())) ranges::v3::reference_wrapper<ranges::v3::semiregular<ranges::v3::indirected<blocksci::AddressIndex::getOutputPointers(blocksci::RawAddress const&) const::{lambda(std::pair<blocksci::MemoryView, blocksci::MemoryView>)#1}> > const>::operator()<ranges::v3::basic_iterator<blocksci::ColumnIterator::cursor>&>((ranges::v3::semiregular<ranges::v3::indirected<blocksci::AddressIndex::getOutputPointers(blocksci::RawAddress const&) const::{lambda(std::pair<blocksci::MemoryView, blocksci::MemoryView>)#1}> >&)...) const () from /gnu/store/59nzqnym6h31zfmb1ks09sr8g8ggi8wk-blocksci-4e26aae493674e46ff4a13b9187e1e272f4bb0ca/lib/libblocksci.so
#13 0x00007fffe962a0bb in decltype ((static_cast<ranges::v3::reference_wrapper<ranges::v3::semiregular<ranges::v3::indirected<blocksci::AddressIndex::getOutputPointers(blocksci::RawAddress const&) const::{lambda(std::pair<blocksci::MemoryView, blocksci::MemoryView>)#1}> > const> const&>({parm#1}))(static_cast<ranges::v3::basic_iterator<blocksci::ColumnIterator::cursor>&>({parm#2}))) ranges::v3::invoke_fn::operator()<ranges::v3::reference_wrapper<ranges::v3::semiregular<ranges::v3::indirected<blocksci::AddressIndex::getOutputPointers(blocksci::RawAddress const&) const::{lambda(std::pair<blocksci::MemoryView, blocksci::MemoryView>)#1}> > const> const&, ranges::v3::basic_iterator<blocksci::ColumnIterator::cursor>&, 0>(ranges::v3::reference_wrapper<ranges::v3::semiregular<ranges::v3::indirected<blocksci::AddressIndex::getOutputPointers(blocksci::RawAddress const&) const::{lambda(std::pair<blocksci::MemoryView, blocksci::MemoryView>)#1}> > const> const&, ranges::v3::basic_iterator<blocksci::ColumnIterator::cursor>&) const () from /gnu/store/59nzqnym6h31zfmb1ks09sr8g8ggi8wk-blocksci-4e26aae493674e46ff4a13b9187e1e272f4bb0ca/lib/libblocksci.so
#14 0x00007fffe9629992 in ranges::v3::iter_transform_view<blocksci::ColumnIterator, ranges::v3::indirected<blocksci::AddressIndex::getOutputPointers(blocksci::RawAddress const&) const::{lambda(std::pair<blocksci::MemoryView, blocksci::MemoryView>)#1}> >::adaptor<true>::read(ranges::v3::basic_iterator<blocksci::ColumnIterator::cursor>) const () from /gnu/store/59nzqnym6h31zfmb1ks09sr8g8ggi8wk-blocksci-4e26aae493674e46ff4a13b9187e1e272f4bb0ca/lib/libblocksci.so
#15 0x00007fffe96271c5 in blocksci::InoutPointer ranges::v3::adaptor_cursor<ranges::v3::basic_iterator<blocksci::ColumnIterator::cursor>, ranges::v3::iter_transform_view<blocksci::ColumnIterator, ranges::v3::indirected<blocksci::AddressIndex::getOutputPointers(blocksci::RawAddress const&) const::{lambda(std::pair<blocksci::MemoryView, blocksci::MemoryView>)#1}> >::adaptor<true> >::read<ranges::v3::iter_transform_view<blocksci::ColumnIterator, ranges::v3::indirected<blocksci::AddressIndex::getOutputPointers(blocksci::RawAddress const&) const::{lambda(std::pair<blocksci::MemoryView, blocksci::MemoryView>)#1}> >::adaptor, blocksci::InoutPointer>() const () from /gnu/store/59nzqnym6h31zfmb1ks09sr8g8ggi8wk-blocksci-4e26aae493674e46ff4a13b9187e1e272f4bb0ca/lib/libblocksci.so
#16 0x00007fffe9622a39 in decltype (({parm#1}.read)()) ranges::v3::range_access::read<ranges::v3::adaptor_cursor<ranges::v3::basic_iterator<blocksci::ColumnIterator::cursor>, ranges::v3::iter_transform_view<blocksci::ColumnIterator, ranges::v3::indirected<blocksci::AddressIndex::getOutputPointers(blocksci::RawAddress const&) const::{lambda(std::pair<blocksci::MemoryView, blocksci::MemoryView>)#1}> >::adaptor<true> > >(ranges::v3::adaptor_cursor<ranges::v3::basic_iterator<blocksci::ColumnIterator::cursor>, ranges::v3::iter_transform_view<blocksci::ColumnIterator, ranges::v3::indirected<blocksci::AddressIndex::getOutputPointers(blocksci::RawAddress const&) const::{lambda(std::pair<blocksci::MemoryView, blocksci::MemoryView>)#1}> >::adaptor<true> > const&) () from /gnu/store/59nzqnym6h31zfmb1ks09sr8g8ggi8wk-blocksci-4e26aae493674e46ff4a13b9187e1e272f4bb0ca/lib/libblocksci.so
#17 0x00007fffe962fb52 in blocksci::InoutPointer ranges::v3::basic_iterator<ranges::v3::adaptor_cursor<ranges::v3::basic_iterator<blocksci::ColumnIterator::cursor>, ranges::v3::iter_transform_view<blocksci::ColumnIterator, ranges::v3::indirected<blocksci::AddressIndex::getOutputPointers(blocksci::RawAddress const&) const::{lambda(std::pair<blocksci::MemoryView, blocksci::MemoryView>)#1}> >::adaptor<true> > >::operator*<false, (void*)0>() const () from /gnu/store/59nzqnym6h31zfmb1ks09sr8g8ggi8wk-blocksci-4e26aae493674e46ff4a13b9187e1e272f4bb0ca/lib/libblocksci.so
#18 0x00007fffe962fa4e in ranges::v3::detail::any_cursor_impl<ranges::v3::basic_iterator<ranges::v3::adaptor_cursor<ranges::v3::basic_iterator<blocksci::ColumnIterator::cursor>, ranges::v3::iter_transform_view<blocksci::ColumnIterator, ranges::v3::indirected<blocksci::AddressIndex::getOutputPointers(blocksci::RawAddress const&) const::{lambda(std::pair<blocksci::MemoryView, blocksci::MemoryView>)#1}> >::adaptor<true> > >, blocksci::InoutPointer, (ranges::v3::category)3>::read() const () from /gnu/store/59nzqnym6h31zfmb1ks09sr8g8ggi8wk-blocksci-4e26aae493674e46ff4a13b9187e1e272f4bb0ca/lib/libblocksci.so
#19 0x00007fffe94b3e64 in ranges::v3::detail::any_cursor<blocksci::InoutPointer, (ranges::v3::category)3>::read() const () from /gnu/store/59nzqnym6h31zfmb1ks09sr8g8ggi8wk-blocksci-4e26aae493674e46ff4a13b9187e1e272f4bb0ca/lib/libblocksci.so
#20 0x00007fffe94aed23 in decltype (({parm#1}.read)()) ranges::v3::range_access::read<ranges::v3::detail::any_cursor<blocksci::InoutPointer, (ranges::v3::category)3> >(ranges::v3::detail::any_cursor<blocksci::InoutPointer, (ranges::v3::category)3> const&) () from /gnu/store/59nzqnym6h31zfmb1ks09sr8g8ggi8wk-blocksci-4e26aae493674e46ff4a13b9187e1e272f4bb0ca/lib/libblocksci.so
#21 0x00007fffe94aef88 in blocksci::InoutPointer ranges::v3::basic_iterator<ranges::v3::detail::any_cursor<blocksci::InoutPointer, (ranges::v3::category)3> >::operator*<false, (void*)0>() const () from /gnu/store/59nzqnym6h31zfmb1ks09sr8g8ggi8wk-blocksci-4e26aae493674e46ff4a13b9187e1e272f4bb0ca/lib/libblocksci.so
#22 0x00007fffe94b5176 in decltype (ranges::v3::(anonymous namespace)::invoke((declval<{lambda(blocksci::InoutPointer const&)#1} const&>)(), (*{parm#1})...)) ranges::v3::indirected<blocksci::AddressAllTxRange::AddressAllTxRange(blocksci::Address const&, blocksci::DataAccess*)::{lambda(blocksci::InoutPointer const&)#1}>::operator()<ranges::v3::basic_iterator<ranges::v3::detail::any_cursor<blocksci::InoutPointer, (ranges::v3::category)3> > >(ranges::v3::basic_iterator<ranges::v3::detail::any_cursor<blocksci::InoutPointer, (ranges::v3::category)3> >) const () from /gnu/store/59nzqnym6h31zfmb1ks09sr8g8ggi8wk-blocksci-4e26aae493674e46ff4a13b9187e1e272f4bb0ca/lib/libblocksci.so
#23 0x00007fffe94b0fd2 in decltype (((declval<blocksci::AddressAllTxRange::AddressAllTxRange(blocksci::Address const&, blocksci::DataAccess*)::{lambda(blocksci::InoutPointer const&)#1} const&>)())(static_cast<ranges::v3::basic_iterator<ranges::v3::detail::any_cursor<blocksci::InoutPointer, (ranges::v3::category)3> >&>({parm#1}))) ranges::v3::semiregular<ranges::v3::indirected<blocksci::AddressAllTxRange::AddressAllTxRange(blocksci::Address const&, blocksci::DataAccess*)::{lambda(blocksci::InoutPointer const&)#1}> >::operator()<ranges::v3::basic_iterator<ranges::v3::detail::any_cursor<blocksci::InoutPointer, (ranges::v3::category)3> >&>(ranges::v3::basic_iterator<ranges::v3::detail::any_cursor<blocksci::InoutPointer, (ranges::v3::category)3> >&) const & () from /gnu/store/59nzqnym6h31zfmb1ks09sr8g8ggi8wk-blocksci-4e26aae493674e46ff4a13b9187e1e272f4bb0ca/lib/libblocksci.so
#24 0x00007fffe94b1053 in decltype ((static_cast<ranges::v3::semiregular<ranges::v3::indirected<blocksci::AddressAllTxRange::AddressAllTxRange(blocksci::Address const&, blocksci::DataAccess*)::{lambda(blocksci::InoutPointer const&)#1}> > const&>({parm#1}))(static_cast<ranges::v3::basic_iterator<ranges::v3::detail::any_cursor<blocksci::InoutPointer, (ranges::v3::category)3> >&>({parm#2}))) ranges::v3::invoke_fn::operator()<ranges::v3::semiregular<ranges::v3::indirected<blocksci::AddressAllTxRange::AddressAllTxRange(blocksci::Address const&, blocksci::DataAccess*)::{lambda(blocksci::InoutPointer const&)#1}> > const&, ranges::v3::basic_iterator<ranges::v3::detail::any_cursor<blocksci::InoutPointer, (ranges::v3::category)3> >&, 0>(ranges::v3::semiregular<ranges::v3::indirected<blocksci::AddressAllTxRange::AddressAllTxRange(blocksci::Address const&, blocksci::DataAccess*)::{lambda(blocksci::InoutPointer const&)#1}> > const&, ranges::v3::basic_iterator<ranges::v3::detail::any_cursor<blocksci::InoutPointer, (ranges::v3::category)3> >&) const () from /gnu/store/59nzqnym6h31zfmb1ks09sr8g8ggi8wk-blocksci-4e26aae493674e46ff4a13b9187e1e272f4bb0ca/lib/libblocksci.so
#25 0x00007fffe94b10d3 in decltype (ranges::v3::(anonymous namespace)::invoke((declval<ranges::v3::semiregular<ranges::v3::indirected<blocksci::AddressAllTxRange::AddressAllTxRange(blocksci::Address const&, blocksci::DataAccess*)::{lambda(blocksci::InoutPointer const&)#1}> >&>)(), (declval<ranges::v3::basic_iterator<ranges::v3::detail::any_cursor<blocksci::InoutPointer, (ranges::v3::category)3> >&>)())) ranges::v3::reference_wrapper<ranges::v3::semiregular<ranges::v3::indirected<blocksci::AddressAllTxRange::AddressAllTxRange(blocksci::Address const&, blocksci::DataAccess*)::{lambda(blocksci::InoutPointer const&)#1}> > const>::operator()<ranges::v3::basic_iterator<ranges::v3::detail::any_cursor<blocksci::InoutPointer, (ranges::v3::category)3> >&>((ranges::v3::semiregular<ranges::v3::indirected<blocksci::AddressAllTxRange::AddressAllTxRange(blocksci::Address const&, blocksci::DataAccess*)::{lambda(blocksci::InoutPointer const&)#1}> >&)...) const () from /gnu/store/59nzqnym6h31zfmb1ks09sr8g8ggi8wk-blocksci-4e26aae493674e46ff4a13b9187e1e272f4bb0ca/lib/libblocksci.so
#26 0x00007fffe94b960f in decltype ((static_cast<ranges::v3::reference_wrapper<ranges::v3::semiregular<ranges::v3::indirected<blocksci::AddressAllTxRange::AddressAllTxRange(blocksci::Address const&, blocksci::DataAccess*)::{lambda(blocksci::InoutPointer const&)#1}> > const> const&>({parm#1}))(static_cast<ranges::v3::basic_iterator<ranges::v3::detail::any_cursor<blocksci::InoutPointer, (ranges::v3::category)3> >&>({parm#2}))) ranges::v3::invoke_fn::operator()<ranges::v3::reference_wrapper<ranges::v3::semiregular<ranges::v3::indirected<blocksci::AddressAllTxRange::AddressAllTxRange(blocksci::Address const&, blocksci::DataAccess*)::{lambda(blocksci::InoutPointer const&)#1}> > const> const&, ranges::v3::basic_iterator<ranges::v3::detail::any_cursor<blocksci::InoutPointer, (ranges::v3::category)3> >&, 0>(ranges::v3::reference_wrapper<ranges::v3::semiregular<ranges::v3::indirected<blocksci::AddressAllTxRange::AddressAllTxRange(blocksci::Address const&, blocksci::DataAccess*)::{lambda(blocksci::InoutPointer const&)#1}> > const> const&, ranges::v3::basic_iterator<ranges::v3::detail::any_cursor<blocksci::InoutPointer, (ranges::v3::category)3> >&) const () from /gnu/store/59nzqnym6h31zfmb1ks09sr8g8ggi8wk-blocksci-4e26aae493674e46ff4a13b9187e1e272f4bb0ca/lib/libblocksci.so
#27 0x00007fffe94b7cd8 in ranges::v3::iter_transform_view<ranges::v3::any_view<blocksci::InoutPointer, (ranges::v3::category)3, void>, ranges::v3::indirected<blocksci::AddressAllTxRange::AddressAllTxRange(blocksci::Address const&, blocksci::DataAccess*)::{lambda(blocksci::InoutPointer const&)#1}> >::adaptor<true>::read(ranges::v3::basic_iterator<ranges::v3::detail::any_cursor<blocksci::InoutPointer, (ranges::v3::category)3> >) const () from /gnu/store/59nzqnym6h31zfmb1ks09sr8g8ggi8wk-blocksci-4e26aae493674e46ff4a13b9187e1e272f4bb0ca/lib/libblocksci.so
#28 0x00007fffe94b5315 in blocksci::OutputPointer ranges::v3::adaptor_cursor<ranges::v3::basic_iterator<ranges::v3::detail::any_cursor<blocksci::InoutPointer, (ranges::v3::category)3> >, ranges::v3::iter_transform_view<ranges::v3::any_view<blocksci::InoutPointer, (ranges::v3::category)3, void>, ranges::v3::indirected<blocksci::AddressAllTxRange::AddressAllTxRange(blocksci::Address const&, blocksci::DataAccess*)::{lambda(blocksci::InoutPointer const&)#1}> >::adaptor<true> >::read<ranges::v3::iter_transform_view<ranges::v3::any_view<blocksci::InoutPointer, (ranges::v3::category)3, void>, ranges::v3::indirected<blocksci::AddressAllTxRange::AddressAllTxRange(blocksci::Address const&, blocksci::DataAccess*)::{lambda(blocksci::InoutPointer const&)#1}> >::adaptor, blocksci::OutputPointer>() const () from /gnu/store/59nzqnym6h31zfmb1ks09sr8g8ggi8wk-blocksci-4e26aae493674e46ff4a13b9187e1e272f4bb0ca/lib/libblocksci.so
#29 0x00007fffe94b1875 in decltype (({parm#1}.read)()) ranges::v3::range_access::read<ranges::v3::adaptor_cursor<ranges::v3::basic_iterator<ranges::v3::detail::any_cursor<blocksci::InoutPointer, (ranges::v3::category)3> >, ranges::v3::iter_transform_view<ranges::v3::any_view<blocksci::InoutPointer, (ranges::v3::category)3, void>, ranges::v3::indirected<blocksci::AddressAllTxRange::AddressAllTxRange(blocksci::Address const&, blocksci::DataAccess*)::{lambda(blocksci::InoutPointer const&)#1}> >::adaptor<true> > >(ranges::v3::adaptor_cursor<ranges::v3::basic_iterator<ranges::v3::detail::any_cursor<blocksci::InoutPointer, (ranges::v3::category)3> >, ranges::v3::iter_transform_view<ranges::v3::any_view<blocksci::InoutPointer, (ranges::v3::category)3, void>, ranges::v3::indirected<blocksci::AddressAllTxRange::AddressAllTxRange(blocksci::Address const&, blocksci::DataAccess*)::{lambda(blocksci::InoutPointer const&)#1}> >::adaptor<true> > const&) () from /gnu/store/59nzqnym6h31zfmb1ks09sr8g8ggi8wk-blocksci-4e26aae493674e46ff4a13b9187e1e272f4bb0ca/lib/libblocksci.so
#30 0x00007fffe94c0a48 in blocksci::OutputPointer ranges::v3::basic_iterator<ranges::v3::adaptor_cursor<ranges::v3::basic_iterator<ranges::v3::detail::any_cursor<blocksci::InoutPointer, (ranges::v3::category)3> >, ranges::v3::iter_transform_view<ranges::v3::any_view<blocksci::InoutPointer, (ranges::v3::category)3, void>, ranges::v3::indirected<blocksci::AddressAllTxRange::AddressAllTxRange(blocksci::Address const&, blocksci::DataAccess*)::{lambda(blocksci::InoutPointer const&)#1}> >::adaptor<true> > >::operator*<false, (void*)0>() const () from /gnu/store/59nzqnym6h31zfmb1ks09sr8g8ggi8wk-blocksci-4e26aae493674e46ff4a13b9187e1e272f4bb0ca/lib/libblocksci.so
#31 0x00007fffe94c04e0 in ranges::v3::detail::any_input_view_impl<ranges::v3::transform_view<ranges::v3::any_view<blocksci::InoutPointer, (ranges::v3::category)3, void>, blocksci::AddressAllTxRange::AddressAllTxRange(blocksci::Address const&, blocksci::DataAccess*)::{lambda(blocksci::InoutPointer const&)#1}>, blocksci::OutputPointer, false>::read() const () from /gnu/store/59nzqnym6h31zfmb1ks09sr8g8ggi8wk-blocksci-4e26aae493674e46ff4a13b9187e1e272f4bb0ca/lib/libblocksci.so
#32 0x00007fffe94b41a1 in ranges::v3::detail::any_input_cursor<blocksci::OutputPointer>::read() const () from /gnu/store/59nzqnym6h31zfmb1ks09sr8g8ggi8wk-blocksci-4e26aae493674e46ff4a13b9187e1e272f4bb0ca/lib/libblocksci.so
#33 0x00007fffe94af28b in decltype (({parm#1}.read)()) ranges::v3::range_access::read<ranges::v3::detail::any_input_cursor<blocksci::OutputPointer> >(ranges::v3::detail::any_input_cursor<blocksci::OutputPointer> const&) () from /gnu/store/59nzqnym6h31zfmb1ks09sr8g8ggi8wk-blocksci-4e26aae493674e46ff4a13b9187e1e272f4bb0ca/lib/libblocksci.so
#34 0x00007fffe94af490 in blocksci::OutputPointer ranges::v3::basic_iterator<ranges::v3::detail::any_input_cursor<blocksci::OutputPointer> >::operator*<false, (void*)0>() const () from /gnu/store/59nzqnym6h31zfmb1ks09sr8g8ggi8wk-blocksci-4e26aae493674e46ff4a13b9187e1e272f4bb0ca/lib/libblocksci.so
#35 0x00007fffe94b0476 in blocksci::AddressAllTxRange::cursor::initializeFromCurrentOutput() () from /gnu/store/59nzqnym6h31zfmb1ks09sr8g8ggi8wk-blocksci-4e26aae493674e46ff4a13b9187e1e272f4bb0ca/lib/libblocksci.so
#36 0x00007fffe94b0ba0 in blocksci::AddressAllTxRange::cursor::cursor(ranges::v3::basic_iterator<ranges::v3::detail::any_input_cursor<blocksci::OutputPointer> >&&, ranges::v3::default_sentinel&&, blocksci::Address const&, blocksci::DataAccess*) () from /gnu/store/59nzqnym6h31zfmb1ks09sr8g8ggi8wk-blocksci-4e26aae493674e46ff4a13b9187e1e272f4bb0ca/lib/libblocksci.so
#37 0x00007fffe94b0dba in blocksci::AddressAllTxRange::begin_cursor() () from /gnu/store/59nzqnym6h31zfmb1ks09sr8g8ggi8wk-blocksci-4e26aae493674e46ff4a13b9187e1e272f4bb0ca/lib/libblocksci.so
#38 0x00007fffe94b7ed1 in decltype (({parm#1}.begin_cursor)()) ranges::v3::range_access::begin_cursor<blocksci::AddressAllTxRange>(blocksci::AddressAllTxRange&, long) () from /gnu/store/59nzqnym6h31zfmb1ks09sr8g8ggi8wk-blocksci-4e26aae493674e46ff4a13b9187e1e272f4bb0ca/lib/libblocksci.so
#39 0x00007fffe94b570a in ranges::v3::basic_iterator<std::decay<decltype (ranges::v3::range_access::begin_cursor((declval<blocksci::AddressAllTxRange&>)(), 42))>::type> ranges::v3::view_facade<blocksci::AddressAllTxRange, (ranges::v3::cardinality)-1>::begin<blocksci::AddressAllTxRange, false, (void*)0>() () from /gnu/store/59nzqnym6h31zfmb1ks09sr8g8ggi8wk-blocksci-4e26aae493674e46ff4a13b9187e1e272f4bb0ca/lib/libblocksci.so
#40 0x00007fffe94b1e8a in ranges::v3::basic_iterator<blocksci::AddressAllTxRange::cursor> ranges::v3::_begin_::fn::impl_<blocksci::AddressAllTxRange, ranges::v3::basic_iterator<blocksci::AddressAllTxRange::cursor>, false, (void*)0>(blocksci::AddressAllTxRange&, int) () from /gnu/store/59nzqnym6h31zfmb1ks09sr8g8ggi8wk-blocksci-4e26aae493674e46ff4a13b9187e1e272f4bb0ca/lib/libblocksci.so
#41 0x00007fffe94c08d2 in decltype (ranges::v3::_begin_::fn::impl_({parm#1}, 42)) ranges::v3::_begin_::fn::operator()<blocksci::AddressAllTxRange>(blocksci::AddressAllTxRange&) const () from /gnu/store/59nzqnym6h31zfmb1ks09sr8g8ggi8wk-blocksci-4e26aae493674e46ff4a13b9187e1e272f4bb0ca/lib/libblocksci.so
#42 0x00007fffe94c0095 in ranges::v3::detail::any_input_view_impl<blocksci::AddressAllTxRange, blocksci::Transaction, false>::init() () from /gnu/store/59nzqnym6h31zfmb1ks09sr8g8ggi8wk-blocksci-4e26aae493674e46ff4a13b9187e1e272f4bb0ca/lib/libblocksci.so
#43 0x00007fffea21781e in ?? () from /gnu/store/xx787r7kpzhb1fbbdqqhxz945qb648w4-profile/lib/python3.7/site-packages/blocksci/_blocksci.cpython-37m-x86_64-linux-gnu.so
#44 0x00007fffea3f894e in ?? () from /gnu/store/xx787r7kpzhb1fbbdqqhxz945qb648w4-profile/lib/python3.7/site-packages/blocksci/_blocksci.cpython-37m-x86_64-linux-gnu.so
#45 0x00007fffea32a568 in ?? () from /gnu/store/xx787r7kpzhb1fbbdqqhxz945qb648w4-profile/lib/python3.7/site-packages/blocksci/_blocksci.cpython-37m-x86_64-linux-gnu.so
#46 0x00007fffea48f37c in ?? () from /gnu/store/xx787r7kpzhb1fbbdqqhxz945qb648w4-profile/lib/python3.7/site-packages/blocksci/_blocksci.cpython-37m-x86_64-linux-gnu.so
#47 0x00007ffff7cfce8a in _PyMethodDef_RawFastCallDict () from /gnu/store/rf4m9vlr5b8126l5xjxzdwrqpcbvhqv1-python-3.7.4/lib/libpython3.7m.so.1.0
#48 0x00007ffff7cfd0e5 in _PyCFunction_FastCallDict () from /gnu/store/rf4m9vlr5b8126l5xjxzdwrqpcbvhqv1-python-3.7.4/lib/libpython3.7m.so.1.0
#49 0x00007ffff7cfd44d in _PyObject_Call_Prepend () from /gnu/store/rf4m9vlr5b8126l5xjxzdwrqpcbvhqv1-python-3.7.4/lib/libpython3.7m.so.1.0
#50 0x00007ffff7cfe8c8 in PyObject_Call () from /gnu/store/rf4m9vlr5b8126l5xjxzdwrqpcbvhqv1-python-3.7.4/lib/libpython3.7m.so.1.0
#51 0x00007ffff7d6a982 in slot_tp_call () from /gnu/store/rf4m9vlr5b8126l5xjxzdwrqpcbvhqv1-python-3.7.4/lib/libpython3.7m.so.1.0
#52 0x00007ffff7cfcaa3 in _PyObject_FastCallKeywords () from /gnu/store/rf4m9vlr5b8126l5xjxzdwrqpcbvhqv1-python-3.7.4/lib/libpython3.7m.so.1.0
#53 0x00007ffff7cd1070 in _PyEval_EvalFrameDefault () from /gnu/store/rf4m9vlr5b8126l5xjxzdwrqpcbvhqv1-python-3.7.4/lib/libpython3.7m.so.1.0
#54 0x00007ffff7de6c1e in _PyEval_EvalCodeWithName () from /gnu/store/rf4m9vlr5b8126l5xjxzdwrqpcbvhqv1-python-3.7.4/lib/libpython3.7m.so.1.0
#55 0x00007ffff7cfc32f in _PyFunction_FastCallDict () from /gnu/store/rf4m9vlr5b8126l5xjxzdwrqpcbvhqv1-python-3.7.4/lib/libpython3.7m.so.1.0
#56 0x00007ffff7d04692 in property_descr_get () from /gnu/store/rf4m9vlr5b8126l5xjxzdwrqpcbvhqv1-python-3.7.4/lib/libpython3.7m.so.1.0
#57 0x00007ffff7d4f7ef in _PyObject_GenericGetAttrWithDict () from /gnu/store/rf4m9vlr5b8126l5xjxzdwrqpcbvhqv1-python-3.7.4/lib/libpython3.7m.so.1.0
#58 0x00007ffff7cd1480 in _PyEval_EvalFrameDefault () from /gnu/store/rf4m9vlr5b8126l5xjxzdwrqpcbvhqv1-python-3.7.4/lib/libpython3.7m.so.1.0
#59 0x00007ffff7de6c1e in _PyEval_EvalCodeWithName () from /gnu/store/rf4m9vlr5b8126l5xjxzdwrqpcbvhqv1-python-3.7.4/lib/libpython3.7m.so.1.0
#60 0x00007ffff7de6cfe in PyEval_EvalCodeEx () from /gnu/store/rf4m9vlr5b8126l5xjxzdwrqpcbvhqv1-python-3.7.4/lib/libpython3.7m.so.1.0
#61 0x00007ffff7de6d2b in PyEval_EvalCode () from /gnu/store/rf4m9vlr5b8126l5xjxzdwrqpcbvhqv1-python-3.7.4/lib/libpython3.7m.so.1.0
#62 0x00007ffff7e1aeea in PyRun_FileExFlags () from /gnu/store/rf4m9vlr5b8126l5xjxzdwrqpcbvhqv1-python-3.7.4/lib/libpython3.7m.so.1.0
#63 0x00007ffff7e1b04d in PyRun_SimpleFileExFlags () from /gnu/store/rf4m9vlr5b8126l5xjxzdwrqpcbvhqv1-python-3.7.4/lib/libpython3.7m.so.1.0
#64 0x00007ffff7e3f756 in pymain_main () from /gnu/store/rf4m9vlr5b8126l5xjxzdwrqpcbvhqv1-python-3.7.4/lib/libpython3.7m.so.1.0
#65 0x00007ffff7e3f989 in _Py_UnixMain () from /gnu/store/rf4m9vlr5b8126l5xjxzdwrqpcbvhqv1-python-3.7.4/lib/libpython3.7m.so.1.0
#66 0x00007ffff78d0b37 in __libc_start_main () from /gnu/store/n0zcbqrv8fmhgmi6k6mg57kvy19wfdzz-glibc-2.29/lib/libc.so.6
#67 0x000000000040107a in _start ()

Unfortunately I didn't manage to build blockscipy itself with debugging enabled, after running python ./setup.py build --debug, the install phase triggers recompilation, still looking into this.

Next, I'll try again with update right from the start.

Is there a point in trying with #266 or 0.5? I ask about the former since range is involved in the backtraces, but I only read a bit of the backtrace code so far, and understood even less, so no theory as to what caused the assertion failure yet.

nothingmuch commented 5 years ago

seeing the same behaviour with a newly created blocksci directory