bitshares / bitshares1-core

Software to run the old chain (before 2015-10-13). Code for current chain is https://github.com/bitshares/bitshares-core
https://bitshares.org/
The Unlicense
219 stars 174 forks source link

build error and segfault on start when compiled with gcc 5.1 #1527

Open maqifrnswa opened 9 years ago

maqifrnswa commented 9 years ago

crash on start up, compiled with gcc 5.1 (released two weeks ago). If i start up with bitshares_client --rebuild-index, it is fine, but will crash the next time again.

backtrace:

(gdb) run
Starting program: /home/showard/bitcoin/bitshares/programs/client/bitshares_client 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
Loading blockchain from: /home/showard/.BitShares/chain
Loading config from file: /home/showard/.BitShares/config.json
Using blockchain checkpoints from file: /home/showard/.BitShares/checkpoints.json
[New Thread 0xb61ffb40 (LWP 21883)]
[New Thread 0xb6bfeb40 (LWP 21882)]
[New Thread 0xb7729b40 (LWP 21881)]
[New Thread 0xb55ffb40 (LWP 21884)]

Program received signal SIGSEGV, Segmentation fault.
__memcpy_sse2_unaligned () at ../sysdeps/i386/i686/multiarch/memcpy-sse2-unaligned.S:482
482 ../sysdeps/i386/i686/multiarch/memcpy-sse2-unaligned.S: No such file or directory.
(gdb) bt full
#0  __memcpy_sse2_unaligned () at ../sysdeps/i386/i686/multiarch/memcpy-sse2-unaligned.S:482
No locals.
#1  0x09305cde in SHA256_Update.part.0 ()
No symbol table info available.
#2  0x09305ea8 in SHA256_Update ()
No symbol table info available.
#3  0x08cdf62b in pack<fc::sha256::encoder> (value=std::vector of length -1497318928, capacity 2007451015 = {...}, s=...)
    at /home/showard/bitcoin/bitshares/libraries/fc/include/fc/io/raw.hpp:198
No locals.
#4  operator()<std::vector<char>, bts::blockchain::operation, &bts::blockchain::operation::data> (name=0x946e9b5 "data", this=<optimized out>)
    at /home/showard/bitcoin/bitshares/libraries/fc/include/fc/io/raw.hpp:234
No locals.
#5  visit<fc::raw::detail::pack_object_visitor<fc::sha256::encoder, bts::blockchain::operation> > (v=...)
    at /home/showard/bitcoin/bitshares/libraries/blockchain/include/bts/blockchain/operations.hpp:156
No locals.
#6  pack<fc::sha256::encoder, bts::blockchain::operation> (v=..., s=...) at /home/showard/bitcoin/bitshares/libraries/fc/include/fc/io/raw.hpp:280
No locals.
#7  pack<fc::sha256::encoder, bts::blockchain::operation> (v=..., s=...) at /home/showard/bitcoin/bitshares/libraries/fc/include/fc/io/raw.hpp:316
No locals.
#8  pack<fc::sha256::encoder, bts::blockchain::operation> (v=..., s=...) at /home/showard/bitcoin/bitshares/libraries/fc/include/fc/io/raw.hpp:462
No locals.
#9  pack<fc::sha256::encoder, bts::blockchain::operation> (value=..., s=...) at /home/showard/bitcoin/bitshares/libraries/fc/include/fc/io/raw.hpp:418
---Type <return> to continue, or q <return> to quit---
        itr = {type = {value = 403577912}, data = std::vector of length -1497318928, capacity 2007451015 = {<error reading variable>
#10 operator()<std::vector<bts::blockchain::operation>, bts::blockchain::transaction, &bts::blockchain::transaction::operations> (name=<synthetic pointer>, 
    this=<optimized out>) at /home/showard/bitcoin/bitshares/libraries/fc/include/fc/io/raw.hpp:234
No locals.
#11 visit<fc::raw::detail::pack_object_visitor<fc::sha256::encoder, bts::blockchain::transaction> > (v=...)
    at /home/showard/bitcoin/bitshares/libraries/blockchain/include/bts/blockchain/transaction.hpp:148
No locals.
#12 pack<fc::sha256::encoder, bts::blockchain::transaction> (v=..., s=...) at /home/showard/bitcoin/bitshares/libraries/fc/include/fc/io/raw.hpp:280
No locals.
#13 pack<fc::sha256::encoder, bts::blockchain::transaction> (v=..., s=...) at /home/showard/bitcoin/bitshares/libraries/fc/include/fc/io/raw.hpp:316
No locals.
#14 pack<fc::sha256::encoder, bts::blockchain::transaction> (v=..., s=...) at /home/showard/bitcoin/bitshares/libraries/fc/include/fc/io/raw.hpp:462
No locals.
#15 bts::blockchain::transaction::digest (this=0xbfffd860, chain_id=...) at /home/showard/bitcoin/bitshares/libraries/blockchain/transaction.cpp:17
        enc = {my = {_store = {_store = {_align = -1.5671249868344602e-22, 
                _data = "g\346\tj\205\256g\273r\363n<:\365O\245\177R\016Q\214h\005\233\253ك\037\031\315\340[\340\317\005\066\005\000\000\000u\301\032\201\000\002\070\360\363\202\266\n", '\000' <repeats 52 times>, "\f\000\000\000 \000\000"}}}}
#16 0x08e945e8 in bts::blockchain::unique_transaction_key::unique_transaction_key (this=0x180e1c78, t=..., chain_id=...)
    at /home/showard/bitcoin/bitshares/libraries/blockchain/include/bts/blockchain/transaction_record.hpp:13
No locals.
#17 0x0906b002 in __gnu_cxx::new_allocator<std::_Rb_tree_node<bts::blockchain::unique_transaction_key> >::construct<bts::blockchain::unique_transaction_key, bts::blockchain::transaction const&, fc::sha256>(bts::blockchain::unique_transaction_key*, bts::blockchain::transaction const&, fc::sha256&&) (this=0xa29c364, 
---Type <return> to continue, or q <return> to quit---
    __p=0x180e1c78) at /usr/include/c++/5/ext/new_allocator.h:120
No locals.
#18 0x090170e8 in std::allocator_traits<std::allocator<std::_Rb_tree_node<bts::blockchain::unique_transaction_key> > >::_S_construct<bts::blockchain::unique_transaction_key, bts::blockchain::transaction const&, fc::sha256>(std::allocator<std::_Rb_tree_node<bts::blockchain::unique_transaction_key> >&, bts::blockchain::unique_transaction_key*, bts::blockchain::transaction const&, fc::sha256&&) (__a=..., __p=0x180e1c78) at /usr/include/c++/5/bits/alloc_traits.h:256
No locals.
#19 0x09001bd0 in std::allocator_traits<std::allocator<std::_Rb_tree_node<bts::blockchain::unique_transaction_key> > >::construct<bts::blockchain::unique_transaction_key, bts::blockchain::transaction const&, fc::sha256>(std::allocator<std::_Rb_tree_node<bts::blockchain::unique_transaction_key> >&, bts::blockchain::unique_transaction_key*, bts::blockchain::transaction const&, fc::sha256&&) (__a=..., __p=0x180e1c78) at /usr/include/c++/5/bits/alloc_traits.h:402
No locals.
#20 0x08fe1d3d in std::_Rb_tree<bts::blockchain::unique_transaction_key, bts::blockchain::unique_transaction_key, std::_Identity<bts::blockchain::unique_transaction_key>, std::less<bts::blockchain::unique_transaction_key>, std::allocator<bts::blockchain::unique_transaction_key> >::_M_construct_node<bts::blockchain::transaction const&, fc::sha256>(std::_Rb_tree_node<bts::blockchain::unique_transaction_key>*, bts::blockchain::transaction const&, fc::sha256&&) (this=0xa29c364, 
    __node=0x180e1c68) at /usr/include/c++/5/bits/stl_tree.h:530
No locals.
#21 0x08fb414f in std::_Rb_tree<bts::blockchain::unique_transaction_key, bts::blockchain::unique_transaction_key, std::_Identity<bts::blockchain::unique_transaction_key>, std::less<bts::blockchain::unique_transaction_key>, std::allocator<bts::blockchain::unique_transaction_key> >::_M_create_node<bts::blockchain::transaction const&, fc::sha256>(bts::blockchain::transaction const&, fc::sha256&&) (this=0xa29c364) at /usr/include/c++/5/bits/stl_tree.h:547
        __tmp = 0x180e1c68
#22 0x08f5f765 in std::_Rb_tree<bts::blockchain::unique_transaction_key, bts::blockchain::unique_transaction_key, std::_Identity<bts::blockchain::unique_transaction_key>, std::less<bts::blockchain::unique_transaction_key>, std::allocator<bts::blockchain::unique_transaction_key> >::_M_emplace_unique<bts::blockchain::transaction const&, fc::sha256>(bts::blockchain::transaction const&, fc::sha256&&) (this=0xa29c364) at /usr/include/c++/5/bits/stl_tree.h:2133
---Type <return> to continue, or q <return> to quit---
        __z = 0xa29afa8
#23 0x08ecafd3 in std::set<bts::blockchain::unique_transaction_key, std::less<bts::blockchain::unique_transaction_key>, std::allocator<bts::blockchain::unique_transaction_key> >::emplace<bts::blockchain::transaction const&, fc::sha256>(bts::blockchain::transaction const&, fc::sha256&&) (this=0xa29c364)
    at /usr/include/c++/5/bits/stl_set.h:433
No locals.
#24 0x08e23641 in bts::blockchain::detail::chain_database_impl::populate_indexes (this=0xa29b5d0)
    at /home/showard/bitcoin/bitshares/libraries/blockchain/chain_database.cpp:219
        trx = @0xbfffd860: {expiration = {utc_seconds = 2166014325}, reserved = {_value = {1.9311681893100275e+158, 1.5167383556035335e+53, 618139517139303.38, 
              -1.9904865014251045, -1.9918442151055986, -1.9905895214891984, 1.0440941560640541e-259, -1.9937064647655642}, _valid = false}, 
          operations = std::vector of length 2, capacity 2 = {{type = {value = 403577912}, data = std::vector of length -1497318928, capacity 2007451015 = {
                <error reading variable>, {type = {value = 1257854519}, data = std::vector of length -1337473453, capacity -856541716 = {
                <error reading variable>}}
        iter = {_it = std::shared_ptr (count 1, weak 0) 0x180d5ff8}
        __FUNCTION__ = "populate_indexes"
#25 0x08e456c4 in bts::blockchain::chain_database::open(fc::path const&, fc::optional<fc::path> const&, bool, std::function<void (float)>) (this=0xa29af74, 
    data_dir=..., genesis_file=..., statistics_enabled=false, replay_status_callback=...)
    at /home/showard/bitcoin/bitshares/libraries/blockchain/chain_database.cpp:1523
        head_block_num = 564789
        head_block_id = {_hash = {369923190, 305955985, 3610495823, 2097984202, 1272405642}}
        error_opening_database = {_M_exception_object = 0x0}
        __FUNCTION__ = "open"
#26 0x08557986 in bts::client::client::open(fc::path const&, fc::optional<fc::path> const&, fc::optional<bool>, std::function<void (float)>) (this=0xa261334, 
---Type <return> to continue, or q <return> to quit---
    data_dir=..., genesis_file_path=..., statistics_enabled=..., replay_status_callback=...) at /home/showard/bitcoin/bitshares/libraries/client/client.cpp:1298
        attempt_to_recover_database = false
        __FUNCTION__ = "open"
#27 0x0855a55b in bts::client::client::configure_from_command_line (this=0xa261334, argc=1, argv=0xbfffefd4)
    at /home/showard/bitcoin/bitshares/libraries/client/client.cpp:1503
        option_variables = <incomplete type>
        datadir = {static separator_char = 47 '/', _p = {_store = {_store = {_align = 8.4246566040498253e-316, 
                _data = "\324\341)\n\000\000\000\000n\000\000\000\351I\376\267t)\222\b\274\204\265\267x\t\000\000\351I\376\267"}}}}
        genesis_file_path = {_value = {-7.4283563662964846e-41, 9.9344877739104338e-310, -1.7362648492373199e-40, 2.1221480448180652e-310, 
            3.0896258716839736e-311, 4.6683908132453147e-313, 1.6551567178570525e-312, 1.9734560856075846e-312, 2.3341953700617995e-312, 
            2.5251749912486741e-312, 2.6312747807969377e-312, 1.432790372939615e-322, -1.7362654773618394e-40, 8.9828091888678975e-260, 
            8.9828049843777306e-260, 8.4124047641642541e-316, 8.2666130473818203e+182, 7.1935958034485497e-321, 8.9733564235526405e-260, -1.9956894298968244, 
            1.5709485988470787e-268, 8.9733522209913325e-260, -3.8213155136754235e-40, 3.5465520191039433e-264, 8.9732821958347856e-260, -1.9958198070516389, 
            1.4819181452160391e-268, 3.5477028990144435e-264, -3.2444118835589918e-40, 8.586681850838804e-260, -1.7362654773618394e-40, 
            -6.4858844304953735e-40}, _valid = false}
        statistics_enabled = {_value = {<optimized out>, <optimized out>, <optimized out>, <optimized out>, <optimized out>, <optimized out>, <optimized out>, 
            <optimized out>}, _valid = <optimized out>}
        p2p_port = <optimized out>
        __FUNCTION__ = "configure_from_command_line"
#28 0x085324b8 in main (argc=1, argv=0xbfffefd4) at /home/showard/bitcoin/bitshares/programs/client/main.cpp:32
        client = std::shared_ptr (count 1, weak 1) 0xa261334
        __FUNCTION__ = "main"
(gdb) 
maqifrnswa commented 9 years ago

So it bulds on 32 bit but fails to start.

On 64 bit, version 0.9.1 fails to compile with gcc 5.1:

[ 40%] Building CXX object libraries/fc/CMakeFiles/fc.dir/src/io/sstream.cpp.o
In file included from /home/showard/bitcoin/bitshares/libraries/fc/src/io/sstream.cpp:2:0:
/home/showard/bitcoin/bitshares/libraries/fc/include/fc/fwd_impl.hpp: In instantiation of ‘void fc::check_size() [with long unsigned int RequiredSize = 392ul; long unsigned int ProvidedSize = 368ul]’:
/home/showard/bitcoin/bitshares/libraries/fc/include/fc/fwd_impl.hpp:63:43:   required from ‘fc::fwd<T, S, Align>::fwd(U&&) [with U = std::__cxx11::basic_string<char>&; T = fc::stringstream::impl; unsigned int S = 368u; Align = double]’
/home/showard/bitcoin/bitshares/libraries/fc/src/io/sstream.cpp:24:8:   required from here
/home/showard/bitcoin/bitshares/libraries/fc/include/fc/fwd_impl.hpp:58:25: error: static assertion failed: Failed to reserve enough space in fc::fwd<T,S>
     void check_size() { static_assert( (ProvidedSize >= RequiredSize), "Failed to reserve enough space in fc::fwd<T,S>" 
                         ^
libraries/fc/CMakeFiles/fc.dir/build.make:583: recipe for target 'libraries/fc/CMakeFiles/fc.dir/src/io/sstream.cpp.o' failed```