Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Peers can (un)intentionally DOS a letheand node by asking for a block it doesn't have #144

Closed
Venthos opened this issue Nov 1, 2018 · 3 comments

Comments

@Venthos
Copy link

Venthos commented Nov 1, 2018

My pool's blockchain daemon seized up last night and was unable to progress due to a "BLOCK_DNE" exception that occurred in letheand.

OS: Linux
Lethean 'Proxy Beta 4' (v3.0.0.b4-release)

2018-11-01 04:51:13.983	[P2P6]	INFO 	stacktrace	src/common/stack_trace.cpp:120	Exception: cryptonote::BLOCK_DNE
2018-11-01 04:51:13.983	[P2P6]	INFO 	stacktrace	src/common/stack_trace.cpp:121	Unwound call stack:
2018-11-01 04:51:13.986	[P2P6]	INFO 	stacktrace	src/common/stack_trace.cpp:159	    [1] /home/itnsd/bin/letheand:__wrap___cxa_throw+0x7b [0x7eb45b]
2018-11-01 04:51:13.986	[P2P6]	INFO 	stacktrace	src/common/stack_trace.cpp:159	    [2] /home/itnsd/bin/letheand() [0x73fab3]
2018-11-01 04:51:13.986	[P2P6]	INFO 	stacktrace	src/common/stack_trace.cpp:159	    [3] /home/itnsd/bin/letheand:cryptonote::BlockchainLMDB::get_block_height(crypto::hash const&) const+0x333 [0x7492c3]
2018-11-01 04:51:13.986	[P2P6]	INFO 	stacktrace	src/common/stack_trace.cpp:159	    [4] /home/itnsd/bin/letheand:cryptonote::BlockchainLMDB::get_block_blob(crypto::hash const&) const+0xdf [0x74014f]
2018-11-01 04:51:13.986	[P2P6]	INFO 	stacktrace	src/common/stack_trace.cpp:159	    [5] /home/itnsd/bin/letheand:bool cryptonote::Blockchain::get_blocks<std::list<crypto::hash, std::allocator<crypto::hash> >, std::list<std::pair<std::string, cryptonote::block>, std::allocator<std::pair<std::string, cryptonote::block> > >, std::list<crypto::hash, std::allocator<crypto::hash> > >(std::list<crypto::hash, std::allocator<crypto::hash> > const&, std::list<std::pair<std::string, cryptonote::block>, std::allocator<std::pair<std::string, cryptonote::block> > >&, std::list<crypto::hash, std::allocator<crypto::hash> >&) const+0x218 [0x7980c8]
2018-11-01 04:51:13.986	[P2P6]	INFO 	stacktrace	src/common/stack_trace.cpp:159	    [6] /home/itnsd/bin/letheand:cryptonote::Blockchain::handle_get_objects(cryptonote::NOTIFY_REQUEST_GET_OBJECTS::request&, cryptonote::NOTIFY_RESPONSE_GET_OBJECTS::request&)+0x198 [0x780ef8]
2018-11-01 04:51:13.986	[P2P6]	INFO 	stacktrace	src/common/stack_trace.cpp:159	    [7] /home/itnsd/bin/letheand:cryptonote::t_cryptonote_protocol_handler<cryptonote::core>::handle_request_get_objects(int, cryptonote::NOTIFY_REQUEST_GET_OBJECTS::request&, cryptonote::cryptonote_connection_context&)+0x178 [0x6a1d28]
2018-11-01 04:51:13.986	[P2P6]	INFO 	stacktrace	src/common/stack_trace.cpp:159	    [8] /home/itnsd/bin/letheand:int epee::net_utils::buff_to_t_adapter<cryptonote::t_cryptonote_protocol_handler<cryptonote::core>, cryptonote::NOTIFY_REQUEST_GET_OBJECTS::request, cryptonote::cryptonote_connection_context, boost::_bi::bind_t<int, boost::_mfi::mf3<int, cryptonote::t_cryptonote_protocol_handler<cryptonote::core>, int, cryptonote::NOTIFY_REQUEST_GET_OBJECTS::request&, cryptonote::cryptonote_connection_context&>, boost::_bi::list4<boost::_bi::value<cryptonote::t_cryptonote_protocol_handler<cryptonote::core>*>, boost::arg<1>, boost::arg<2>, boost::arg<3> > > >(cryptonote::t_cryptonote_protocol_handler<cryptonote::core>*, int, std::string const&, boost::_bi::bind_t<int, boost::_mfi::mf3<int, cryptonote::t_cryptonote_protocol_handler<cryptonote::core>, int, cryptonote::NOTIFY_REQUEST_GET_OBJECTS::request&, cryptonote::cryptonote_connection_context&>, boost::_bi::list4<boost::_bi::value<cryptonote::t_cryptonote_protocol_handler<cryptonote::core>*>, boost::arg<1>, boost::arg<2>, boost::arg<3> > >, cryptonote::cryptonote_connection_context&)+0x1e8 [0x69e8e8]
2018-11-01 04:51:13.986	[P2P6]	INFO 	stacktrace	src/common/stack_trace.cpp:159	    [9] /home/itnsd/bin/letheand:int nodetool::node_server<cryptonote::t_cryptonote_protocol_handler<cryptonote::core> >::handle_invoke_map<nodetool::p2p_connection_context_t<cryptonote::cryptonote_connection_context> >(bool, int, std::string const&, std::string&, nodetool::p2p_connection_context_t<cryptonote::cryptonote_connection_context>&, bool&)+0x5e2 [0x6b2d22]
2018-11-01 04:51:13.986	[P2P6]	INFO 	stacktrace	src/common/stack_trace.cpp:159	    [10] /home/itnsd/bin/letheand:nodetool::node_server<cryptonote::t_cryptonote_protocol_handler<cryptonote::core> >::notify(int, std::string const&, nodetool::p2p_connection_context_t<cryptonote::cryptonote_connection_context>&)+0x33 [0x6b2fa3]
2018-11-01 04:51:13.986	[P2P6]	INFO 	stacktrace	src/common/stack_trace.cpp:159	    [11] /home/itnsd/bin/letheand:epee::levin::async_protocol_handler<nodetool::p2p_connection_context_t<cryptonote::cryptonote_connection_context> >::handle_recv(void const*, unsigned long)+0x563 [0x61d0e3]
2018-11-01 04:51:13.986	[P2P6]	INFO 	stacktrace	src/common/stack_trace.cpp:159	    [12] /home/itnsd/bin/letheand:epee::net_utils::connection<epee::levin::async_protocol_handler<nodetool::p2p_connection_context_t<cryptonote::cryptonote_connection_context> > >::handle_read(boost::system::error_code const&, unsigned long)+0x1da [0x6b801a]
2018-11-01 04:51:13.986	[P2P6]	INFO 	stacktrace	src/common/stack_trace.cpp:159	    [13] /home/itnsd/bin/letheand:void boost::asio::detail::strand_service::dispatch<boost::asio::detail::binder2<boost::_bi::bind_t<void, boost::_mfi::mf2<void, epee::net_utils::connection<epee::levin::async_protocol_handler<nodetool::p2p_connection_context_t<cryptonote::cryptonote_connection_context> > >, boost::system::error_code const&, unsigned long>, boost::_bi::list3<boost::_bi::value<boost::shared_ptr<epee::net_utils::connection<epee::levin::async_protocol_handler<nodetool::p2p_connection_context_t<cryptonote::cryptonote_connection_context> > > > >, boost::arg<1> (*)(), boost::arg<2> (*)()> >, boost::system::error_code, unsigned long> >(boost::asio::detail::strand_service::strand_impl*&, boost::asio::detail::binder2<boost::_bi::bind_t<void, boost::_mfi::mf2<void, epee::net_utils::connection<epee::levin::async_protocol_handler<nodetool::p2p_connection_context_t<cryptonote::cryptonote_connection_context> > >, boost::system::error_code const&, unsigned long>, boost::_bi::list3<boost::_bi::value<boost::shared_ptr<epee::net_utils::connection<epee::levin::async_protocol_handler<nodetool::p2p_connection_context_t<cryptonote::cryptonote_connection_context> > > > >, boost::arg<1> (*)(), boost::arg<2> (*)()> >, boost::system::error_code, unsigned long>&)+0x61 [0x667bc1]
2018-11-01 04:51:13.986	[P2P6]	INFO 	stacktrace	src/common/stack_trace.cpp:159	    [14] /home/itnsd/bin/letheand:boost::asio::detail::completion_handler<boost::asio::detail::rewrapped_handler<boost::asio::detail::binder2<boost::asio::detail::wrapped_handler<boost::asio::io_service::strand, boost::_bi::bind_t<void, boost::_mfi::mf2<void, epee::net_utils::connection<epee::levin::async_protocol_handler<nodetool::p2p_connection_context_t<cryptonote::cryptonote_connection_context> > >, boost::system::error_code const&, unsigned long>, boost::_bi::list3<boost::_bi::value<boost::shared_ptr<epee::net_utils::connection<epee::levin::async_protocol_handler<nodetool::p2p_connection_context_t<cryptonote::cryptonote_connection_context> > > > >, boost::arg<1> (*)(), boost::arg<2> (*)()> >, boost::asio::detail::is_continuation_if_running>, boost::system::error_code, unsigned long>, boost::_bi::bind_t<void, boost::_mfi::mf2<void, epee::net_utils::connection<epee::levin::async_protocol_handler<nodetool::p2p_connection_context_t<cryptonote::cryptonote_connection_context> > >, boost::system::error_code const&, unsigned long>, boost::_bi::list3<boost::_bi::value<boost::shared_ptr<epee::net_utils::connection<epee::levin::async_protocol_handler<nodetool::p2p_connection_context_t<cryptonote::cryptonote_connection_context> > > > >, boost::arg<1> (*)(), boost::arg<2> (*)()> > > >::do_complete(boost::asio::detail::task_io_service*, boost::asio::detail::task_io_service_operation*, boost::system::error_code const&, unsigned long)+0x186 [0x667f56]
2018-11-01 04:51:13.986	[P2P6]	INFO 	stacktrace	src/common/stack_trace.cpp:159	    [15] /home/itnsd/bin/letheand:void boost::asio::detail::strand_service::dispatch<boost::asio::detail::rewrapped_handler<boost::asio::detail::binder2<boost::asio::detail::wrapped_handler<boost::asio::io_service::strand, boost::_bi::bind_t<void, boost::_mfi::mf2<void, epee::net_utils::connection<epee::levin::async_protocol_handler<nodetool::p2p_connection_context_t<cryptonote::cryptonote_connection_context> > >, boost::system::error_code const&, unsigned long>, boost::_bi::list3<boost::_bi::value<boost::shared_ptr<epee::net_utils::connection<epee::levin::async_protocol_handler<nodetool::p2p_connection_context_t<cryptonote::cryptonote_connection_context> > > > >, boost::arg<1> (*)(), boost::arg<2> (*)()> >, boost::asio::detail::is_continuation_if_running>, boost::system::error_code, unsigned long>, boost::_bi::bind_t<void, boost::_mfi::mf2<void, epee::net_utils::connection<epee::levin::async_protocol_handler<nodetool::p2p_connection_context_t<cryptonote::cryptonote_connection_context> > >, boost::system::error_code const&, unsigned long>, boost::_bi::list3<boost::_bi::value<boost::shared_ptr<epee::net_utils::connection<epee::levin::async_protocol_handler<nodetool::p2p_connection_context_t<cryptonote::cryptonote_connection_context> > > > >, boost::arg<1> (*)(), boost::arg<2> (*)()> > > >(boost::asio::detail::strand_service::strand_impl*&, boost::asio::detail::rewrapped_handler<boost::asio::detail::binder2<boost::asio::detail::wrapped_handler<boost::asio::io_service::strand, boost::_bi::bind_t<void, boost::_mfi::mf2<void, epee::net_utils::connection<epee::levin::async_protocol_handler<nodetool::p2p_connection_context_t<cryptonote::cryptonote_connection_context> > >, boost::system::error_code const&, unsigned long>, boost::_bi::list3<boost::_bi::value<boost::shared_ptr<epee::net_utils::connection<epee::levin::async_protocol_handler<nodetool::p2p_connection_context_t<cryptonote::cryptonote_connection_context> > > > >, boost::arg<1> (*)(), boost::arg<2> (*)()> >, boost::asio::detail::is_continuation_if_running>, boost::system::error_code, unsigned long>, boost::_bi::bind_t<void, boost::_mfi::mf2<void, epee::net_utils::connection<epee::levin::async_protocol_handler<nodetool::p2p_connection_context_t<cryptonote::cryptonote_connection_context> > >, boost::system::error_code const&, unsigned long>, boost::_bi::list3<boost::_bi::value<boost::shared_ptr<epee::net_utils::connection<epee::levin::async_protocol_handler<nodetool::p2p_connection_context_t<cryptonote::cryptonote_connection_context> > > > >, boost::arg<1> (*)(), boost::arg<2> (*)()> > >&)+0x255 [0x6682a5]
2018-11-01 04:51:13.986	[P2P6]	INFO 	stacktrace	src/common/stack_trace.cpp:159	    [16] /home/itnsd/bin/letheand:boost::asio::detail::reactive_socket_recv_op<boost::asio::mutable_buffers_1, boost::asio::detail::wrapped_handler<boost::asio::io_service::strand, boost::_bi::bind_t<void, boost::_mfi::mf2<void, epee::net_utils::connection<epee::levin::async_protocol_handler<nodetool::p2p_connection_context_t<cryptonote::cryptonote_connection_context> > >, boost::system::error_code const&, unsigned long>, boost::_bi::list3<boost::_bi::value<boost::shared_ptr<epee::net_utils::connection<epee::levin::async_protocol_handler<nodetool::p2p_connection_context_t<cryptonote::cryptonote_connection_context> > > > >, boost::arg<1> (*)(), boost::arg<2> (*)()> >, boost::asio::detail::is_continuation_if_running> >::do_complete(boost::asio::detail::task_io_service*, boost::asio::detail::task_io_service_operation*, boost::system::error_code const&, unsigned long)+0x231 [0x6685c1]
2018-11-01 04:51:13.986	[P2P6]	INFO 	stacktrace	src/common/stack_trace.cpp:159	    [17] /home/itnsd/bin/letheand:boost::asio::detail::epoll_reactor::descriptor_state::do_complete(boost::asio::detail::task_io_service*, boost::asio::detail::task_io_service_operation*, boost::system::error_code const&, unsigned long)+0x101 [0x5f3e91]
2018-11-01 04:51:13.986	[P2P6]	INFO 	stacktrace	src/common/stack_trace.cpp:159	    [18] /home/itnsd/bin/letheand:boost::asio::detail::task_io_service::do_run_one(boost::asio::detail::scoped_lock<boost::asio::detail::posix_mutex>&, boost::asio::detail::task_io_service_thread_info&, boost::system::error_code const&)+0x2fb [0x5eea1b]
2018-11-01 04:51:13.986	[P2P6]	INFO 	stacktrace	src/common/stack_trace.cpp:159	    [19] /home/itnsd/bin/letheand:epee::net_utils::boosted_tcp_server<epee::levin::async_protocol_handler<nodetool::p2p_connection_context_t<cryptonote::cryptonote_connection_context> > >::worker_thread()+0x1ed [0x60e25d]
2018-11-01 04:51:13.986	[P2P6]	INFO 	stacktrace	src/common/stack_trace.cpp:159	    [20] /home/itnsd/bin/letheand() [0x8c2b4f]
2018-11-01 04:51:13.986	[P2P6]	INFO 	stacktrace	src/common/stack_trace.cpp:159	    [21] /lib64/libpthread.so.0+0x7e25 [0x7f15a6621e25]
2018-11-01 04:51:13.986	[P2P6]	INFO 	stacktrace	src/common/stack_trace.cpp:159	    [22] /lib64/libc.so.6:clone+0x6d [0x7f15a5976bad]
2018-11-01 04:51:13.986	[P2P6]	INFO 	stacktrace	src/common/stack_trace.cpp:159	

This looks like it was brought up at Monero via monero-project/monero#3284 and fixed by monero-project/monero#3726

@cryptpho
Copy link

cryptpho commented Nov 1, 2018 via email

@pallas1
Copy link

pallas1 commented Nov 1, 2018

Thanks for reporting!

#145

@valiant1x
Copy link
Collaborator

Fixed in #145

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants