saleyn / eixx

Erlang C++ Interface
Apache License 2.0
137 stars 26 forks source link

Segfault running test_node #9

Open myers opened 9 years ago

myers commented 9 years ago

Following readme

Shell 1:

$ erl -sname abc
Erlang R16B03 (erts-5.10.4) [source] [64-bit] [smp:6:6] [async-threads:10] [kernel-poll:false]

Eshell V5.10.4  (abort with ^G)
(abc@gir)1> register(test, self()).
true

Shell 2:

eixx/src$ libtool --mode=execute gdb test_node
GNU gdb (Ubuntu 7.7.1-0ubuntu5~14.04.2) 7.7.1
Copyright (C) 2014 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 /home/myers/test_eixx/eixx/src/.libs/lt-test_node...done.
(gdb) run -n a@gir -r abc@gir
Starting program: /home/myers/test_eixx/eixx/src/.libs/lt-test_node -n a@gir -r abc@gir
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ffff5394700 (LWP 15159)]

Program received signal SIGSEGV, Segmentation fault.
0x00007fffffffdd10 in ?? ()
(gdb) bt
#0  0x00007fffffffdd10 in ?? ()
#1  0x000000000043eb5f in std::function<bool (eixx::connect::transport_msg<std::allocator<char> >*&, boost::system::error_code const&)>::operator()(eixx::connect::transport_msg<std::allocator<char> >*&, boost::system::error_code const&) const (
    this=0x7fffffffdc40,
    __args#0=@0x7fffffffd7f8: 0x4256ca <std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_add_ref_lock()+24>,
    __args#1=...) at /usr/include/c++/4.8/functional:2464
#2  0x00000000004443c7 in eixx::util::async_queue<eixx::connect::transport_msg<std::allocator<char> >*, std::allocator<char> >::process_queue(std::function<bool (eixx::connect::transport_msg<std::allocator<char> >*&, boost::system::error_code const&)> const&, boost::system::error_code const&, std::chrono::duration<long, std::ratio<1l, 1000l> >, int) (this=0x6ca440,
    h=..., ec=..., repeat=..., repeat_count=2147483647) at ./../include/eixx/util/async_queue.hpp:109
#3  0x000000000043ebde in eixx::util::async_queue<eixx::connect::transport_msg<std::allocator<char> >*, std::allocator<char> >::operator()(std::function<bool (eixx::connect::transport_msg<std::allocator<char> >*&, boost::system::error_code const&)> const&, boost::system::error_code const&, std::chrono::duration<long, std::ratio<1l, 1000l> >, int) (this=0x6ca440,
    h=..., ec=..., repeat=..., repeat_count=2147483647) at ./../include/eixx/util/async_queue.hpp:132
#4  0x00000000004399be in eixx::util::async_queue<eixx::connect::transport_msg<std::allocator<char> >*, std::allocator<char> >::async_dequeue(std::function<bool (eixx::connect::transport_msg<std::allocator<char> >*&, boost::system::error_code const&)> const&, std::chrono::duration<long, std::ratio<1l, 1000l> >, int)::{lambda(boost::system::error_code const&)#2}::operator()(boost::system::error_code const&) const (__closure=0x7fffffffd9d0, e=...)
    at ./../include/eixx/util/async_queue.hpp:222
#5  0x0000000000462163 in boost::asio::detail::binder1<eixx::util::async_queue<eixx::connect::transport_msg<std::allocator<char> >*, std::allocator<char> >::async_dequeue(std::function<bool (eixx::connect::transport_msg<std::allocator<char> >*&, boost::system::error_code const&)> const&, std::chrono::duration<long, std::ratio<1l, 1000l> >, int)::{lambda(boost::system::error_code const&)#2}, boost::system::error_code>::operator()() (this=0x7fffffffd9d0)
    at /usr/include/boost/asio/detail/bind_handler.hpp:47
#6  0x000000000045f2c7 in boost::asio::asio_handler_invoke<boost::asio::detail::binder1<eixx::util::async_queue<eixx::connect::transport_msg<std::allocator<char> >*, std::allocator<char> >::async_dequeue(std::function<bool (eixx::connect::transport_msg<std::allocator<char> >*&, boost::system::error_code const&)> const&, std::chrono::duration<long, std::ratio<1l, 1000l> >, int)::{lambda(boost::system::error_code const&)#2}, boost::system::error_code> >(boost::asio::detail::binder1<eixx::util::async_queue<eixx::connect::transport_msg<std::allocator<char> >*, std::allocator<char> >::async_dequeue(std::function<bool (eixx::connect::transport_msg<std::allocator<char> >*&, boost::system::error_code const&)> const&, std::chrono::duration<long, std::ratio<1l, 1000l> >, int)::{lambda(boost::system::error_code const&)#2}, boost::system::error_code>, ...) (
    function=...) at /usr/include/boost/asio/handler_invoke_hook.hpp:64
#7  0x000000000045b779 in boost_asio_handler_invoke_helpers::invoke<boost::asio::detail::binder1<eixx::util::async_queue<eixx::connect::transport_msg<std::allocator<char> >*, std::allocator<char> >::async_dequeue(std::function<bool (eixx::connect::transport_msg<std::allocator<char> >*&, boost::system::error_code const&)> const&, std::chrono::duration<long, std::ratio<1l, 1000l> >, int)::{lambda(boost::system::error_code const&)#2}, boost::system::error_code>, {lambda(boost::system::error_code const&)#2}>(boost::asio::detail::binder1<eixx::util::async_queue<eixx::connect::transport_msg<std::allocator<char> >*, std::allocator<char> >::async_dequeue(std::function<bool (eixx::connect::transport_msg<std::allocator<char> >*&, boost::system::error_code const&)> const&, std::chrono::duration<long, std::ratio<1l, 1000l> >, int)::{lambda(boost::system::error_code const&)#2}, boost::system::error_code>&, {lambda(boost::system::error_code const&)#2}&) (function=..., context=...)
    at /usr/include/boost/asio/detail/handler_invoke_helpers.hpp:37
#8  0x0000000000456dda in boost::asio::detail::wait_handler<eixx::util::async_queue<eixx::connect::transport_msg<std::allocator<char> >*, std::allocator<char> >::async_dequeue(std::function<bool (eixx::connect::transport_msg<std::allocator<char> >*&, boost::system::error_code const&)> const&, std::chrono::duration<long, std::ratio<1l, 1000l> >, int)::{lambda(boost::system::error_code const&)#2}>::do_complete(boost::asio::detail::task_io_service*, boost::asio::detail::task_io_service_operation*, boost::system::error_code const&, unsigned long) (owner=0x6c6d80, base=0x6ef320)
    at /usr/include/boost/asio/detail/wait_handler.hpp:70
#9  0x00000000004293b0 in boost::asio::detail::task_io_service_operation::complete (this=0x6ef320, owner=..., ec=...,
    bytes_transferred=0) at /usr/include/boost/asio/detail/task_io_service_operation.hpp:37
#10 0x000000000042bcf7 in boost::asio::detail::task_io_service::do_run_one (this=0x6c6d80, lock=..., this_thread=...,
    ec=...) at /usr/include/boost/asio/detail/impl/task_io_service.ipp:384
#11 0x000000000042b717 in boost::asio::detail::task_io_service::run (this=0x6c6d80, ec=...)
    at /usr/include/boost/asio/detail/impl/task_io_service.ipp:153
#12 0x000000000042c0a3 in boost::asio::io_service::run (this=0x7fffffffdd10)
    at /usr/include/boost/asio/impl/io_service.ipp:59
#13 0x0000000000434d10 in eixx::connect::basic_otp_node<std::allocator<char>, std::recursive_mutex>::run (
    this=0x7fffffffdd60) at ./../include/eixx/connect/basic_otp_node.hpp:165
#14 0x0000000000423bf7 in main (argc=5, argv=0x7fffffffe008) at test_node.cpp:145