maidsafe-archive / MaidSafe-RUDP

Implementation of Reliable UDP
Other
97 stars 51 forks source link

Assertion in Session::Open fails intermittently in routing tests ClientFindVaultNode and similar #5

Open Fraser999 opened 11 years ago

Fraser999 commented 11 years ago

Migrated from https://github.com/maidsafe/MaidSafe/issues/102

Occurs intermittently in the ClientFindClient, ClientFindVault, VaultFindClient and VautFindVault tests in the TESTrouting_big target.

FindNodeNetwork.FUNC_VaultFindClientNode in GDB:

TESTrouting_big: /home/alison/Development/Workspace/MaidSafe/src/rudp/src/maidsafe/rudp/core/session.cc:67: void maidsafe::rudp::detail::Session::Open(uint32_t, maidsafe::NodeId, std::shared_ptr<CryptoPP::RSAFunction>, uint32_t, maidsafe::rudp::detail::Session::Mode, const slot_type&): Assertion `id != 0' failed.
[New Thread 0x7fffde7fc700 (LWP 26046)]

Program received signal SIGABRT, Aborted.
[Switching to Thread 0x7fffd5ffb700 (LWP 25621)]
0x00007ffff711a425 in __GI_raise (sig=<optimised out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
64  ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) where
#0  0x00007ffff711a425 in __GI_raise (sig=<optimised out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#1  0x00007ffff711db8b in __GI_abort () at abort.c:91
#2  0x00007ffff71130ee in __assert_fail_base (fmt=<optimised out>, assertion=0xd0a5b7 "id != 0", file=0xd0a560 "/home/alison/Development/Workspace/MaidSafe/src/rudp/src/maidsafe/rudp/core/session.cc", 
    line=<optimised out>, function=<optimised out>) at assert.c:94
#3  0x00007ffff7113192 in __GI___assert_fail (assertion=0xd0a5b7 "id != 0", file=0xd0a560 "/home/alison/Development/Workspace/MaidSafe/src/rudp/src/maidsafe/rudp/core/session.cc", line=67, 
    function=0xd11e80 "void maidsafe::rudp::detail::Session::Open(uint32_t, maidsafe::NodeId, std::shared_ptr<CryptoPP::RSAFunction>, uint32_t, maidsafe::rudp::detail::Session::Mode, const slot_type&)")
    at assert.c:103
#4  0x0000000000a1ed0d in maidsafe::rudp::detail::Session::Open(unsigned int, maidsafe::NodeId, std::shared_ptr<CryptoPP::RSAFunction>, unsigned int, maidsafe::rudp::detail::Session::Mode, boost::signals2::slot<void (boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const&, maidsafe::NodeId const&, boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const&, unsigned short&), boost::function<void (boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const&, maidsafe::NodeId const&, boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const&, unsigned short&)> > const&) (this=0x7fff2c0009d0, id=0, this_node_id=..., 
    this_public_key=..., sequence_number=633174301, mode=maidsafe::rudp::detail::Session::kNormal, on_nat_detection_requested_slot=...)
    at /home/alison/Development/Workspace/MaidSafe/src/rudp/src/maidsafe/rudp/core/session.cc:67
#5  0x0000000000a1882d in maidsafe::rudp::detail::Socket::StartConnect(maidsafe::NodeId const&, std::shared_ptr<CryptoPP::RSAFunction>, boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const&, maidsafe::NodeId const&, maidsafe::rudp::detail::Session::Mode, boost::signals2::slot<void (boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const&, maidsafe::NodeId const&, boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const&, unsigned short&), boost::function<void (boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const&, maidsafe::NodeId const&, boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const&, unsigned short&)> > const&) (this=0x7fff2c000920, this_node_id=..., this_public_key=..., remote=..., peer_node_id=..., open_mode=maidsafe::rudp::detail::Session::kNormal, on_nat_detection_requested_slot=...)
    at /home/alison/Development/Workspace/MaidSafe/src/rudp/src/maidsafe/rudp/core/socket.cc:157
#6  0x00000000009dc948 in maidsafe::rudp::detail::Socket::AsyncConnect<boost::asio::detail::wrapped_handler<boost::asio::io_service::strand, std::_Bind<std::_Mem_fn<void (maidsafe::rudp::detail::Connection::*)(boost::system::error_code const&, std::string const&, std::function<void (int)>)> (std::shared_ptr<maidsafe::rudp::detail::Connection>, std::_Placeholder<1>, std::string, std::function<void (int)>)> > >(maidsafe::NodeId const&, std::shared_ptr<CryptoPP::RSAFunction>, boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const&, maidsafe::NodeId const&, boost::asio::detail::wrapped_handler<boost::asio::io_service::strand, std::_Bind<std::_Mem_fn<void (maidsafe::rudp::detail::Connection::*)(boost::system::error_code const&, std::string const&, std::function<void (int)>)> (std::shared_ptr<maidsafe::rudp::detail::Connection>, std::_Placeholder<1>, std::string, std::function<void (int)>)> >, maidsafe::rudp::detail::Session::Mode, boost::signals2::slot<void (boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const&, maidsafe::NodeId const&, boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const&, unsigned short&), boost::function<void (boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const&, maidsafe::NodeId const&, boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const&, unsigned short&)> >) (this=0x7fff2c000920, this_node_id=..., this_public_key=..., remote=..., peer_node_id=..., handler=..., 
    open_mode=maidsafe::rudp::detail::Session::kNormal, on_nat_detection_requested_slot=...) at /home/alison/Development/Workspace/MaidSafe/src/rudp/src/maidsafe/rudp/core/socket.h:132
#7  0x00000000009d4e09 in maidsafe::rudp::detail::Connection::StartConnect(std::string const&, boost::posix_time::time_duration const&, boost::posix_time::time_duration const&, std::function<void (int)> const&)
    (this=0x7fff2c0008e0, validation_data=..., connect_attempt_timeout=..., lifespan=..., ping_functor=...) at /home/alison/Development/Workspace/MaidSafe/src/rudp/src/maidsafe/rudp/connection.cc:332
#8  0x00000000009d31c2 in maidsafe::rudp::detail::Connection::DoStartConnecting(maidsafe::NodeId const&, boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const&, std::string const&, boost::posix_time::time_duration const&, boost::posix_time::time_duration const&, std::function<void (int)> const&, std::function<void ()> const&) (this=0x7fff2c0008e0, peer_node_id=..., peer_endpoint=..., validation_data=..., 
    connect_attempt_timeout=..., lifespan=..., ping_functor=..., failure_functor=...) at /home/alison/Development/Workspace/MaidSafe/src/rudp/src/maidsafe/rudp/connection.cc:141
#9  0x00000000009f1d8f in std::_Mem_fn<void (maidsafe::rudp::detail::Connection::*)(maidsafe::NodeId const&, boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const&, std::string const&, boost::posix_time::time_duration const&, boost::posix_time::time_duration const&, std::function<void (int)> const&, std::function<void ()> const&)>::_M_call<std::shared_ptr<maidsafe::rudp::detail::Connection> >(std::shared_ptr<maidsafe::rudp::detail::Connection>&, void const volatile*, maidsafe::NodeId const&, boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const&, std::string const&, boost::posix_time::time_duration const&, boost::posix_time::time_duration const&, std::function<void (int)> const&, std::function<void ()> const&) const (this=0x7fffd5ffa1b0, __ptr=..., __args#0=..., __args#1=..., __args#2=..., __args#3=..., __args#4=..., 
    __args#5=..., __args#6=...) at /usr/include/c++/4.6/functional:536
#10 0x00000000009efcc4 in std::_Mem_fn<void (maidsafe::rudp::detail::Connection::*)(maidsafe::NodeId const&, boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const&, std::string const&, boost::posix_time::time_duration const&, boost::posix_time::time_duration const&, std::function<void (int)> const&, std::function<void ()> const&)>::operator()<std::shared_ptr<maidsafe::rudp::detail::Connection> >(std::shared_ptr<maidsafe::rudp::detail::Connection>&, maidsafe::NodeId const&, boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const&, std::string const&, boost::posix_time::time_duration const&, boost::posix_time::time_duration const&, std::function<void (int)> const&, std::function<void ()> const&) const (this=0x7fffd5ffa1b0, __object=..., __args#0=..., __args#1=..., __args#2=..., __args#3=..., __args#4=..., __args#5=..., 
    __args#6=...) at /usr/include/c++/4.6/functional:559
#11 0x00000000009ed0b1 in std::_Bind<std::_Mem_fn<void (maidsafe::rudp::detail::Connection::*)(maidsafe::NodeId const&, boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const&, std::string const&, boost::posix_time::time_duration const&, boost::posix_time::time_duration const&, std::function<void (int)> const&, std::function<void ()> const&)> (std::shared_ptr<maidsafe::rudp::detail::Connection>, maidsafe::NodeId, boost::asio::ip::basic_endpoint<boost::asio::ip::udp>, std::string, boost::posix_time::time_duration, boost::posix_time::time_duration, std::function<void (int)>, std::function<void ()>)>::__call<void, , 0, 1, 2, 3, 4, 5, 6, 7>(std::tuple<>&&, std::_Index_tuple<0, 1, 2, 3, 4, 5, 6, 7>) (this=0x7fffd5ffa1b0, __args=...) at /usr/include/c++/4.6/functional:1146
#12 0x00000000009eaa8c in std::_Bind<std::_Mem_fn<void (maidsafe::rudp::detail::Connection::*)(maidsafe::NodeId const&, boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const&, std::string const&, boost::posix_time::time_duration const&, boost::posix_time::time_duration const&, std::function<void (int)> const&, std::function<void ()> const&)> (std::shared_ptr<maidsafe::rudp::detail::Connection>, maidsafe::NodeId, boost::asio::ip::basic_endpoint<boost::asio::ip::udp>, std::string, boost::posix_time::time_duration, boost::posix_time::time_duration, std::function<void (int)>, std::function<void ()>)>::operator()<, void>() (
    this=0x7fffd5ffa1b0) at /usr/include/c++/4.6/functional:1205
#13 0x00000000009e77db in boost::asio::asio_handler_invoke<std::_Bind<std::_Mem_fn<void (maidsafe::rudp::detail::Connection::*)(maidsafe::NodeId const&, boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const&, std::string const&, boost::posix_time::time_duration const&, boost::posix_time::time_duration const&, std::function<void (int)> const&, std::function<void ()> const&)> (std::shared_ptr<maidsafe::rudp::detail::Connection>, maidsafe::NodeId, boost::asio::ip::basic_endpoint<boost::asio::ip::udp>, std::string, boost::posix_time::time_duration, boost::posix_time::time_duration, std::function<void (int)>, std::function<void ()>)> >(std::_Bind<std::_Mem_fn<void (maidsafe::rudp::detail::Connection::*)(maidsafe::NodeId const&, boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const&, std::string const&, boost::posix_time::time_duration const&, boost::posix_time::time_duration const&, std::function<void (int)> const&, std::function<void ()> const&)> (std::shared_ptr<maidsafe::rudp::detail::Connection>, maidsafe::NodeId, boost::asio::ip::basic_endpoint<boost::asio::ip::udp>, std::string, boost::posix_time::time_duration, boost::posix_time::time_duration, std::function<void (int)>, std::function<void ()>)>, ...) (function=...)
    at /home/alison/Development/Workspace/MaidSafe/src/third_party_libs/boost/boost/asio/handler_invoke_hook.hpp:64
chandraprakash commented 10 years ago

Same assertion happened on Win 8.1 while running Vault network of 36 Vaults on single machine with Verbose level logs enabled.

Stack trace :

    msvcr120d.dll!00007ffb467ccce4()    Unknown
    vault.exe!maidsafe::rudp::detail::Session::Open(unsigned int id, maidsafe::NodeId this_node_id, std::shared_ptr<CryptoPP::RSAFunction> this_public_key, unsigned int sequence_number, maidsafe::rudp::detail::Session::Mode mode, const boost::signals2::slot<void __cdecl(boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const &,maidsafe::NodeId const &,boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const &,unsigned short &),boost::function<void __cdecl(boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const &,maidsafe::NodeId const &,boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const &,unsigned short &)> > & on_nat_detection_requested_slot) Line 69 C++
>   vault.exe!maidsafe::rudp::detail::Socket::StartConnect(const maidsafe::NodeId & this_node_id, std::shared_ptr<CryptoPP::RSAFunction> this_public_key, const boost::asio::ip::basic_endpoint<boost::asio::ip::udp> & remote, const maidsafe::NodeId & peer_node_id, maidsafe::rudp::detail::Session::Mode open_mode, const boost::signals2::slot<void __cdecl(boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const &,maidsafe::NodeId const &,boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const &,unsigned short &),boost::function<void __cdecl(boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const &,maidsafe::NodeId const &,boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const &,unsigned short &)> > & on_nat_detection_requested_slot) Line 157  C++
    vault.exe!maidsafe::rudp::detail::Socket::AsyncConnect<boost::asio::detail::wrapped_handler<boost::asio::io_service::strand,std::_Bind<1,void,std::_Pmf_wrap<void (__cdecl maidsafe::rudp::detail::Connection::*)(boost::system::error_code const & __ptr64,std::basic_string<char,std::char_traits<char>,std::allocator<char> > const & __ptr64,std::function<void __cdecl(int)>) __ptr64,void,maidsafe::rudp::detail::Connection,boost::system::error_code const & __ptr64,std::basic_string<char,std::char_traits<char>,std::allocator<char> > const & __ptr64,std::function<void __cdecl(int)> >,std::shared_ptr<maidsafe::rudp::detail::Connection>,std::_Ph<1> & __ptr64,std::basic_string<char,std::char_traits<char>,std::allocator<char> > const & __ptr64,std::function<void __cdecl(int)> const & __ptr64>,boost::asio::detail::is_continuation_if_running> >(const maidsafe::NodeId & this_node_id, std::shared_ptr<CryptoPP::RSAFunction> this_public_key, const boost::asio::ip::basic_endpoint<boost::asio::ip::udp> & remote, const maidsafe::NodeId & peer_node_id, boost::asio::detail::wrapped_handler<boost::asio::io_service::strand,std::_Bind<1,void,std::_Pmf_wrap<void (__cdecl maidsafe::rudp::detail::Connection::*)(boost::system::error_code const &,std::basic_string<char,std::char_traits<char>,std::allocator<char> > const &,std::function<void __cdecl(int)>),void,maidsafe::rudp::detail::Connection,boost::system::error_code const &,std::basic_string<char,std::char_traits<char>,std::allocator<char> > const &,std::function<void __cdecl(int)> >,std::shared_ptr<maidsafe::rudp::detail::Connection>,std::_Ph<1> &,std::basic_string<char,std::char_traits<char>,std::allocator<char> > const &,std::function<void __cdecl(int)> const &>,boost::asio::detail::is_continuation_if_running> handler, maidsafe::rudp::detail::Session::Mode open_mode, boost::signals2::slot<void __cdecl(boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const &,maidsafe::NodeId const &,boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const &,unsigned short &),boost::function<void __cdecl(boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const &,maidsafe::NodeId const &,boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const &,unsigned short &)> > on_nat_detection_requested_slot) Line 136   C++
    vault.exe!maidsafe::rudp::detail::Connection::StartConnect(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & validation_data, const boost::posix_time::time_duration & connect_attempt_timeout, const boost::posix_time::time_duration & lifespan, const std::function<void __cdecl(int)> & ping_functor) Line 345   C++
    vault.exe!maidsafe::rudp::detail::Connection::DoStartConnecting(const maidsafe::NodeId & peer_node_id, const boost::asio::ip::basic_endpoint<boost::asio::ip::udp> & peer_endpoint, const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & validation_data, const boost::posix_time::time_duration & connect_attempt_timeout, const boost::posix_time::time_duration & lifespan, const std::function<void __cdecl(int)> & ping_functor, const std::function<void __cdecl(void)> & failure_functor) Line 150   C++
    [External Code] 
    vault.exe!boost::asio::asio_handler_invoke<std::_Bind<1,void,std::_Pmf_wrap<void (__cdecl maidsafe::rudp::detail::Connection::*)(maidsafe::NodeId const & __ptr64,boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const & __ptr64,std::basic_string<char,std::char_traits<char>,std::allocator<char> > const & __ptr64,boost::posix_time::time_duration const & __ptr64,boost::posix_time::time_duration const & __ptr64,std::function<void __cdecl(int)> const & __ptr64,std::function<void __cdecl(void)> const & __ptr64) __ptr64,void,maidsafe::rudp::detail::Connection,maidsafe::NodeId const & __ptr64,boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const & __ptr64,std::basic_string<char,std::char_traits<char>,std::allocator<char> > const & __ptr64,boost::posix_time::time_duration const & __ptr64,boost::posix_time::time_duration const & __ptr64,std::function<void __cdecl(int)> const & __ptr64,std::function<void __cdecl(void)> const & __ptr64>,std::shared_ptr<maidsafe::rudp::detail::Connection>,maidsafe::NodeId const & __ptr64,boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const & __ptr64,std::basic_string<char,std::char_traits<char>,std::allocator<char> > const & __ptr64,boost::posix_time::time_duration const & __ptr64,boost::posix_time::time_duration const & __ptr64,std::function<void __cdecl(int)>,std::function<void __cdecl(void)> const & __ptr64> >(std::_Bind<1,void,std::_Pmf_wrap<void (__cdecl maidsafe::rudp::detail::Connection::*)(maidsafe::NodeId const &,boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const &,std::basic_string<char,std::char_traits<char>,std::allocator<char> > const &,boost::posix_time::time_duration const &,boost::posix_time::time_duration const &,std::function<void __cdecl(int)> const &,std::function<void __cdecl(void)> const &),void,maidsafe::rudp::detail::Connection,maidsafe::NodeId const &,boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const &,std::basic_string<char,std::char_traits<char>,std::allocator<char> > const &,boost::posix_time::time_duration const &,boost::posix_time::time_duration const &,std::function<void __cdecl(int)> const &,std::function<void __cdecl(void)> const &>,std::shared_ptr<maidsafe::rudp::detail::Connection>,maidsafe::NodeId const &,boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const &,std::basic_string<char,std::char_traits<char>,std::allocator<char> > const &,boost::posix_time::time_duration const &,boost::posix_time::time_duration const &,std::function<void __cdecl(int)>,std::function<void __cdecl(void)> const &> & function, ...) Line 70   C++
    vault.exe!boost_asio_handler_invoke_helpers::invoke<std::_Bind<1,void,std::_Pmf_wrap<void (__cdecl maidsafe::rudp::detail::Connection::*)(maidsafe::NodeId const & __ptr64,boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const & __ptr64,std::basic_string<char,std::char_traits<char>,std::allocator<char> > const & __ptr64,boost::posix_time::time_duration const & __ptr64,boost::posix_time::time_duration const & __ptr64,std::function<void __cdecl(int)> const & __ptr64,std::function<void __cdecl(void)> const & __ptr64) __ptr64,void,maidsafe::rudp::detail::Connection,maidsafe::NodeId const & __ptr64,boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const & __ptr64,std::basic_string<char,std::char_traits<char>,std::allocator<char> > const & __ptr64,boost::posix_time::time_duration const & __ptr64,boost::posix_time::time_duration const & __ptr64,std::function<void __cdecl(int)> const & __ptr64,std::function<void __cdecl(void)> const & __ptr64>,std::shared_ptr<maidsafe::rudp::detail::Connection>,maidsafe::NodeId const & __ptr64,boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const & __ptr64,std::basic_string<char,std::char_traits<char>,std::allocator<char> > const & __ptr64,boost::posix_time::time_duration const & __ptr64,boost::posix_time::time_duration const & __ptr64,std::function<void __cdecl(int)>,std::function<void __cdecl(void)> const & __ptr64>,std::_Bind<1,void,std::_Pmf_wrap<void (__cdecl maidsafe::rudp::detail::Connection::*)(maidsafe::NodeId const & __ptr64,boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const & __ptr64,std::basic_string<char,std::char_traits<char>,std::allocator<char> > const & __ptr64,boost::posix_time::time_duration const & __ptr64,boost::posix_time::time_duration const & __ptr64,std::function<void __cdecl(int)> const & __ptr64,std::function<void __cdecl(void)> const & __ptr64) __ptr64,void,maidsafe::rudp::detail::Connection,maidsafe::NodeId const & __ptr64,boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const & __ptr64,std::basic_string<char,std::char_traits<char>,std::allocator<char> > const & __ptr64,boost::posix_time::time_duration const & __ptr64,boost::posix_time::time_duration const & __ptr64,std::function<void __cdecl(int)> const & __ptr64,std::function<void __cdecl(void)> const & __ptr64>,std::shared_ptr<maidsafe::rudp::detail::Connection>,maidsafe::NodeId const & __ptr64,boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const & __ptr64,std::basic_string<char,std::char_traits<char>,std::allocator<char> > const & __ptr64,boost::posix_time::time_duration const & __ptr64,boost::posix_time::time_duration const & __ptr64,std::function<void __cdecl(int)>,std::function<void __cdecl(void)> const & __ptr64> >(std::_Bind<1,void,std::_Pmf_wrap<void (__cdecl maidsafe::rudp::detail::Connection::*)(maidsafe::NodeId const &,boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const &,std::basic_string<char,std::char_traits<char>,std::allocator<char> > const &,boost::posix_time::time_duration const &,boost::posix_time::time_duration const &,std::function<void __cdecl(int)> const &,std::function<void __cdecl(void)> const &),void,maidsafe::rudp::detail::Connection,maidsafe::NodeId const &,boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const &,std::basic_string<char,std::char_traits<char>,std::allocator<char> > const &,boost::posix_time::time_duration const &,boost::posix_time::time_duration const &,std::function<void __cdecl(int)> const &,std::function<void __cdecl(void)> const &>,std::shared_ptr<maidsafe::rudp::detail::Connection>,maidsafe::NodeId const &,boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const &,std::basic_string<char,std::char_traits<char>,std::allocator<char> > const &,boost::posix_time::time_duration const &,boost::posix_time::time_duration const &,std::function<void __cdecl(int)>,std::function<void __cdecl(void)> const &> & function, std::_Bind<1,void,std::_Pmf_wrap<void (__cdecl maidsafe::rudp::detail::Connection::*)(maidsafe::NodeId const &,boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const &,std::basic_string<char,std::char_traits<char>,std::allocator<char> > const &,boost::posix_time::time_duration const &,boost::posix_time::time_duration const &,std::function<void __cdecl(int)> const &,std::function<void __cdecl(void)> const &),void,maidsafe::rudp::detail::Connection,maidsafe::NodeId const &,boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const &,std::basic_string<char,std::char_traits<char>,std::allocator<char> > const &,boost::posix_time::time_duration const &,boost::posix_time::time_duration const &,std::function<void __cdecl(int)> const &,std::function<void __cdecl(void)> const &>,std::shared_ptr<maidsafe::rudp::detail::Connection>,maidsafe::NodeId const &,boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const &,std::basic_string<char,std::char_traits<char>,std::allocator<char> > const &,boost::posix_time::time_duration const &,boost::posix_time::time_duration const &,std::function<void __cdecl(int)>,std::function<void __cdecl(void)> const &> & context) Line 39    C++
    vault.exe!boost::asio::detail::completion_handler<std::_Bind<1,void,std::_Pmf_wrap<void (__cdecl maidsafe::rudp::detail::Connection::*)(maidsafe::NodeId const & __ptr64,boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const & __ptr64,std::basic_string<char,std::char_traits<char>,std::allocator<char> > const & __ptr64,boost::posix_time::time_duration const & __ptr64,boost::posix_time::time_duration const & __ptr64,std::function<void __cdecl(int)> const & __ptr64,std::function<void __cdecl(void)> const & __ptr64) __ptr64,void,maidsafe::rudp::detail::Connection,maidsafe::NodeId const & __ptr64,boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const & __ptr64,std::basic_string<char,std::char_traits<char>,std::allocator<char> > const & __ptr64,boost::posix_time::time_duration const & __ptr64,boost::posix_time::time_duration const & __ptr64,std::function<void __cdecl(int)> const & __ptr64,std::function<void __cdecl(void)> const & __ptr64>,std::shared_ptr<maidsafe::rudp::detail::Connection>,maidsafe::NodeId const & __ptr64,boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const & __ptr64,std::basic_string<char,std::char_traits<char>,std::allocator<char> > const & __ptr64,boost::posix_time::time_duration const & __ptr64,boost::posix_time::time_duration const & __ptr64,std::function<void __cdecl(int)>,std::function<void __cdecl(void)> const & __ptr64> >::do_complete(boost::asio::detail::win_iocp_io_service * owner, boost::asio::detail::win_iocp_operation * base, const boost::system::error_code & __formal, unsigned __int64 __formal) Line 68   C++
    vault.exe!boost::asio::detail::win_iocp_operation::complete(boost::asio::detail::win_iocp_io_service & owner, const boost::system::error_code & ec, unsigned __int64 bytes_transferred) Line 47 C++
    vault.exe!boost::asio::detail::strand_service::do_complete(boost::asio::detail::win_iocp_io_service * owner, boost::asio::detail::win_iocp_operation * base, const boost::system::error_code & ec, unsigned __int64 __formal) Line 168  C++
    vault.exe!boost::asio::detail::win_iocp_operation::complete(boost::asio::detail::win_iocp_io_service & owner, const boost::system::error_code & ec, unsigned __int64 bytes_transferred) Line 47 C++
    vault.exe!boost::asio::detail::win_iocp_io_service::do_one(bool block, boost::system::error_code & ec) Line 404 C++
    vault.exe!boost::asio::detail::win_iocp_io_service::run(boost::system::error_code & ec) Line 162    C++
    vault.exe!boost::asio::io_service::run() Line 59    C++
    vault.exe!maidsafe::AsioService::{ctor}::__l8::<lambda>() Line 33   C++