yourWaifu / sleepy-discord

C++ library for the Discord chat client. Please use Rust for new bots
https://yourWaifu.github.io/sleepy-discord/
MIT License
709 stars 98 forks source link

Memory Leak (Linux) and Critical Error in Visual Studio #98

Closed TylerTheFox closed 6 years ago

TylerTheFox commented 6 years ago

Windows image

    ntdll.dll!7723883c()    Unknown
    [Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll] 
    [External Code] 
>   TIPBOT.exe!cpr::Session::Session() Line 426 C++
    [External Code] 
    TIPBOT.exe!SleepyDiscord::BaseDiscordClient::getTheGateway() Line 208   C++
    TIPBOT.exe!SleepyDiscord::BaseDiscordClient::start(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > _token, const char maxNumOfThreads) Line 25   C++
    TIPBOT.exe!SleepyDiscord::WebsocketppDiscordClient::WebsocketppDiscordClient(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > token, const char numOfThreads) Line 11 C++
    [External Code] 
    TIPBOT.exe!main() Line 154  C++
    [External Code] 

Exception thrown at 0x7558DB52 in TIPBOT.exe: Microsoft C++ exception: RPCGeneralError at memory location 0x0175EF50.
Exception thrown at 0x7558DB52 in TIPBOT.exe: Microsoft C++ exception: RPCGeneralError at memory location 0x0175EF50.
Critical error detected c0000374
TIPBOT.exe has triggered a breakpoint.

Windows sleepy discord is unable to start due to "Heap Corruption" and "Critical Error"

Linux Valgrind (Shutdown using quit() )

==187722== 
==187722== HEAP SUMMARY:
==187722==     in use at exit: 125,015 bytes in 3,296 blocks
==187722==   total heap usage: 201,494 allocs, 198,198 frees, 19,330,866 bytes allocated
==187722== 
==187722== 16 bytes in 1 blocks are possibly lost in loss record 6 of 684
==187722==    at 0x4C2E216: operator new(unsigned long) (vg_replace_malloc.c:334)
==187722==    by 0x86540F: websocketpp::transport::asio::endpoint<websocketpp::config::asio_tls_client::transport_config>::init_asio() (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x8494AE: SleepyDiscord::WebsocketppDiscordClient::init() (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x849204: SleepyDiscord::WebsocketppDiscordClient::WebsocketppDiscordClient(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x80B36F: Discord::WebsocketppDiscordClient(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char) (Discord.h:20)
==187722==    by 0x80A585: main (main.cpp:154)
==187722== 
==187722== 16 bytes in 1 blocks are possibly lost in loss record 7 of 684
==187722==    at 0x4C2E216: operator new(unsigned long) (vg_replace_malloc.c:334)
==187722==    by 0x8B22D5: __gnu_cxx::new_allocator<asio::detail::timer_queue<asio::detail::chrono_time_traits<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >::heap_entry>::allocate(unsigned long, void const*) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x8AC13D: std::allocator_traits<std::allocator<asio::detail::timer_queue<asio::detail::chrono_time_traits<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >::heap_entry> >::allocate(std::allocator<asio::detail::timer_queue<asio::detail::chrono_time_traits<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >::heap_entry>&, unsigned long) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x8A4D43: std::_Vector_base<asio::detail::timer_queue<asio::detail::chrono_time_traits<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >::heap_entry, std::allocator<asio::detail::timer_queue<asio::detail::chrono_time_traits<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >::heap_entry> >::_M_allocate(unsigned long) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x89BA4D: void std::vector<asio::detail::timer_queue<asio::detail::chrono_time_traits<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >::heap_entry, std::allocator<asio::detail::timer_queue<asio::detail::chrono_time_traits<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >::heap_entry> >::_M_realloc_insert<asio::detail::timer_queue<asio::detail::chrono_time_traits<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >::heap_entry const&>(__gnu_cxx::__normal_iterator<asio::detail::timer_queue<asio::detail::chrono_time_traits<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >::heap_entry*, std::vector<asio::detail::timer_queue<asio::detail::chrono_time_traits<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >::heap_entry, std::allocator<asio::detail::timer_queue<asio::detail::chrono_time_traits<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >::heap_entry> > >, asio::detail::timer_queue<asio::detail::chrono_time_traits<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >::heap_entry const&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x890425: std::vector<asio::detail::timer_queue<asio::detail::chrono_time_traits<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >::heap_entry, std::allocator<asio::detail::timer_queue<asio::detail::chrono_time_traits<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >::heap_entry> >::push_back(asio::detail::timer_queue<asio::detail::chrono_time_traits<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >::heap_entry const&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x886A82: asio::detail::timer_queue<asio::detail::chrono_time_traits<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >::enqueue_timer(std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > > const&, asio::detail::timer_queue<asio::detail::chrono_time_traits<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >::per_timer_data&, asio::detail::wait_op*) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x87D54A: void asio::detail::epoll_reactor::schedule_timer<asio::detail::chrono_time_traits<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >(asio::detail::timer_queue<asio::detail::chrono_time_traits<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >&, asio::detail::chrono_time_traits<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> >::time_type const&, asio::detail::timer_queue<asio::detail::chrono_time_traits<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >::per_timer_data&, asio::detail::wait_op*) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x883052: void asio::detail::deadline_timer_service<asio::detail::chrono_time_traits<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >::async_wait<asio::detail::wrapped_handler<asio::io_context::strand, std::_Bind<void (websocketpp::transport::asio::connection<websocketpp::config::asio_tls_client::transport_config>::*(std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::asio_tls_client::transport_config> >, std::shared_ptr<asio::basic_waitable_timer<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >, std::function<void (std::error_code const&)>, std::_Placeholder<1>))(std::shared_ptr<asio::basic_waitable_timer<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >, std::function<void (std::error_code const&)>, std::error_code const&)>, asio::detail::is_continuation_if_running> >(asio::detail::deadline_timer_service<asio::detail::chrono_time_traits<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >::implementation_type&, asio::detail::wrapped_handler<asio::io_context::strand, std::_Bind<void (websocketpp::transport::asio::connection<websocketpp::config::asio_tls_client::transport_config>::*(std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::asio_tls_client::transport_config> >, std::shared_ptr<asio::basic_waitable_timer<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >, std::function<void (std::error_code const&)>, std::_Placeholder<1>))(std::shared_ptr<asio::basic_waitable_timer<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >, std::function<void (std::error_code const&)>, std::error_code const&)>, asio::detail::is_continuation_if_running>&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x87A443: asio::async_result<std::decay<asio::detail::wrapped_handler<asio::io_context::strand, std::_Bind<void (websocketpp::transport::asio::connection<websocketpp::config::asio_tls_client::transport_config>::*(std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::asio_tls_client::transport_config> >, std::shared_ptr<asio::basic_waitable_timer<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >, std::function<void (std::error_code const&)>, std::_Placeholder<1>))(std::shared_ptr<asio::basic_waitable_timer<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >, std::function<void (std::error_code const&)>, std::error_code const&)>, asio::detail::is_continuation_if_running> >::type, void (std::error_code)>::return_type asio::basic_waitable_timer<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> >::async_wait<asio::detail::wrapped_handler<asio::io_context::strand, std::_Bind<void (websocketpp::transport::asio::connection<websocketpp::config::asio_tls_client::transport_config>::*(std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::asio_tls_client::transport_config> >, std::shared_ptr<asio::basic_waitable_timer<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >, std::function<void (std::error_code const&)>, std::_Placeholder<1>))(std::shared_ptr<asio::basic_waitable_timer<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >, std::function<void (std::error_code const&)>, std::error_code const&)>, asio::detail::is_continuation_if_running> >(asio::detail::wrapped_handler<asio::io_context::strand, std::_Bind<void (websocketpp::transport::asio::connection<websocketpp::config::asio_tls_client::transport_config>::*(std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::asio_tls_client::transport_config> >, std::shared_ptr<asio::basic_waitable_timer<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >, std::function<void (std::error_code const&)>, std::_Placeholder<1>))(std::shared_ptr<asio::basic_waitable_timer<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >, std::function<void (std::error_code const&)>, std::error_code const&)>, asio::detail::is_continuation_if_running>&&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x8736DC: websocketpp::transport::asio::connection<websocketpp::config::asio_tls_client::transport_config>::set_timer(long, std::function<void (std::error_code const&)>) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x86BBB1: websocketpp::transport::asio::endpoint<websocketpp::config::asio_tls_client::transport_config>::async_connect(std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::asio_tls_client::transport_config> >, std::shared_ptr<websocketpp::uri>, std::function<void (std::error_code const&)>) (in /home/vm/Monero-TipBot/TIPBOT)
==187722== 
==187722== 16 bytes in 1 blocks are possibly lost in loss record 8 of 684
==187722==    at 0x4C2E216: operator new(unsigned long) (vg_replace_malloc.c:334)
==187722==    by 0x85C05A: asio::detail::resolver_service_base::start_work_thread() (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x85BF77: asio::detail::resolver_service_base::start_resolve_op(asio::detail::resolve_op*) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x87B580: void asio::detail::resolver_service<asio::ip::tcp>::async_resolve<asio::detail::wrapped_handler<asio::io_context::strand, std::_Bind<void (websocketpp::transport::asio::endpoint<websocketpp::config::asio_tls_client::transport_config>::*(websocketpp::transport::asio::endpoint<websocketpp::config::asio_tls_client::transport_config>*, std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::asio_tls_client::transport_config> >, std::shared_ptr<asio::basic_waitable_timer<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >, std::function<void (std::error_code const&)>, std::_Placeholder<1>, std::_Placeholder<2>))(std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::asio_tls_client::transport_config> >, std::shared_ptr<asio::basic_waitable_timer<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >, std::function<void (std::error_code const&)>, std::error_code const&, asio::ip::basic_resolver_iterator<asio::ip::tcp>)>, asio::detail::is_continuation_if_running> >(std::shared_ptr<void>&, asio::ip::basic_resolver_query<asio::ip::tcp> const&, asio::detail::wrapped_handler<asio::io_context::strand, std::_Bind<void (websocketpp::transport::asio::endpoint<websocketpp::config::asio_tls_client::transport_config>::*(websocketpp::transport::asio::endpoint<websocketpp::config::asio_tls_client::transport_config>*, std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::asio_tls_client::transport_config> >, std::shared_ptr<asio::basic_waitable_timer<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >, std::function<void (std::error_code const&)>, std::_Placeholder<1>, std::_Placeholder<2>))(std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::asio_tls_client::transport_config> >, std::shared_ptr<asio::basic_waitable_timer<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >, std::function<void (std::error_code const&)>, std::error_code const&, asio::ip::basic_resolver_iterator<asio::ip::tcp>)>, asio::detail::is_continuation_if_running>&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x8745C0: asio::async_result<std::decay<asio::detail::wrapped_handler<asio::io_context::strand, std::_Bind<void (websocketpp::transport::asio::endpoint<websocketpp::config::asio_tls_client::transport_config>::*(websocketpp::transport::asio::endpoint<websocketpp::config::asio_tls_client::transport_config>*, std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::asio_tls_client::transport_config> >, std::shared_ptr<asio::basic_waitable_timer<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >, std::function<void (std::error_code const&)>, std::_Placeholder<1>, std::_Placeholder<2>))(std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::asio_tls_client::transport_config> >, std::shared_ptr<asio::basic_waitable_timer<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >, std::function<void (std::error_code const&)>, std::error_code const&, asio::ip::basic_resolver_iterator<asio::ip::tcp>)>, asio::detail::is_continuation_if_running> >::type, void (std::error_code, asio::ip::basic_resolver_results<asio::ip::tcp>)>::return_type asio::ip::basic_resolver<asio::ip::tcp>::async_resolve<asio::detail::wrapped_handler<asio::io_context::strand, std::_Bind<void (websocketpp::transport::asio::endpoint<websocketpp::config::asio_tls_client::transport_config>::*(websocketpp::transport::asio::endpoint<websocketpp::config::asio_tls_client::transport_config>*, std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::asio_tls_client::transport_config> >, std::shared_ptr<asio::basic_waitable_timer<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >, std::function<void (std::error_code const&)>, std::_Placeholder<1>, std::_Placeholder<2>))(std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::asio_tls_client::transport_config> >, std::shared_ptr<asio::basic_waitable_timer<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >, std::function<void (std::error_code const&)>, std::error_code const&, asio::ip::basic_resolver_iterator<asio::ip::tcp>)>, asio::detail::is_continuation_if_running> >(asio::ip::basic_resolver_query<asio::ip::tcp> const&, asio::detail::wrapped_handler<asio::io_context::strand, std::_Bind<void (websocketpp::transport::asio::endpoint<websocketpp::config::asio_tls_client::transport_config>::*(websocketpp::transport::asio::endpoint<websocketpp::config::asio_tls_client::transport_config>*, std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::asio_tls_client::transport_config> >, std::shared_ptr<asio::basic_waitable_timer<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >, std::function<void (std::error_code const&)>, std::_Placeholder<1>, std::_Placeholder<2>))(std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::asio_tls_client::transport_config> >, std::shared_ptr<asio::basic_waitable_timer<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >, std::function<void (std::error_code const&)>, std::error_code const&, asio::ip::basic_resolver_iterator<asio::ip::tcp>)>, asio::detail::is_continuation_if_running>&&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x86BCEC: websocketpp::transport::asio::endpoint<websocketpp::config::asio_tls_client::transport_config>::async_connect(std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::asio_tls_client::transport_config> >, std::shared_ptr<websocketpp::uri>, std::function<void (std::error_code const&)>) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x865F5E: websocketpp::client<websocketpp::config::asio_tls_client>::connect(std::shared_ptr<websocketpp::connection<websocketpp::config::asio_tls_client> >) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x849790: SleepyDiscord::WebsocketppDiscordClient::connect(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, SleepyDiscord::GenericMessageReceiver*, std::weak_ptr<void>&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x810C8C: SleepyDiscord::BaseDiscordClient::start(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x849232: SleepyDiscord::WebsocketppDiscordClient::WebsocketppDiscordClient(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x80B36F: Discord::WebsocketppDiscordClient(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char) (Discord.h:20)
==187722==    by 0x80A585: main (main.cpp:154)
==187722== 
==187722== 18 bytes in 1 blocks are definitely lost in loss record 9 of 684
==187722==    at 0x4C2E216: operator new(unsigned long) (vg_replace_malloc.c:334)
==187722==    by 0x5730244: void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char const*>(char const*, char const*, std::forward_iterator_tag) (basic_string.tcc:219)
==187722==    by 0x869FE5: websocketpp::endpoint<websocketpp::connection<websocketpp::config::asio_tls_client>, websocketpp::config::asio_tls_client>::endpoint(bool) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x865077: websocketpp::client<websocketpp::config::asio_tls_client>::client() (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x8491C6: SleepyDiscord::WebsocketppDiscordClient::WebsocketppDiscordClient(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x80B36F: Discord::WebsocketppDiscordClient(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char) (Discord.h:20)
==187722==    by 0x80A585: main (main.cpp:154)
==187722== 
==187722== 19 bytes in 1 blocks are definitely lost in loss record 10 of 684
==187722==    at 0x4C2E216: operator new(unsigned long) (vg_replace_malloc.c:334)
==187722==    by 0x791CD8: void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) (basic_string.tcc:219)
==187722==    by 0x7B4DCC: SleepyDiscord::Snowflake<SleepyDiscord::User>::Snowflake(SleepyDiscord::Snowflake<SleepyDiscord::User> const&) (snowflake.h:11)
==187722==    by 0x81819E: SleepyDiscord::Snowflake<SleepyDiscord::User>::Snowflake(SleepyDiscord::User const&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x813C8F: SleepyDiscord::BaseDiscordClient::processMessage(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x860B1F: SleepyDiscord::BaseDiscordClient::processMessage(SleepyDiscord::GenericMessageReceiver*&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x849DB2: SleepyDiscord::WebsocketppDiscordClient::onMessage(std::weak_ptr<void>, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >, SleepyDiscord::GenericMessageReceiver*) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x88AD87: void std::__invoke_impl<void, void (SleepyDiscord::WebsocketppDiscordClient::*&)(std::weak_ptr<void>, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >, SleepyDiscord::GenericMessageReceiver*), SleepyDiscord::WebsocketppDiscordClient*&, std::weak_ptr<void>, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >, SleepyDiscord::GenericMessageReceiver*&>(std::__invoke_memfun_deref, void (SleepyDiscord::WebsocketppDiscordClient::*&)(std::weak_ptr<void>, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >, SleepyDiscord::GenericMessageReceiver*), SleepyDiscord::WebsocketppDiscordClient*&, std::weak_ptr<void>&&, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >&&, SleepyDiscord::GenericMessageReceiver*&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x88267B: std::__invoke_result<void (SleepyDiscord::WebsocketppDiscordClient::*&)(std::weak_ptr<void>, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >, SleepyDiscord::GenericMessageReceiver*), SleepyDiscord::WebsocketppDiscordClient*&, std::weak_ptr<void>, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >, SleepyDiscord::GenericMessageReceiver*&>::type std::__invoke<void (SleepyDiscord::WebsocketppDiscordClient::*&)(std::weak_ptr<void>, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >, SleepyDiscord::GenericMessageReceiver*), SleepyDiscord::WebsocketppDiscordClient*&, std::weak_ptr<void>, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >, SleepyDiscord::GenericMessageReceiver*&>(void (SleepyDiscord::WebsocketppDiscordClient::*&)(std::weak_ptr<void>, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >, SleepyDiscord::GenericMessageReceiver*), SleepyDiscord::WebsocketppDiscordClient*&, std::weak_ptr<void>&&, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >&&, SleepyDiscord::GenericMessageReceiver*&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x879AA2: void std::_Bind<void (SleepyDiscord::WebsocketppDiscordClient::*(SleepyDiscord::WebsocketppDiscordClient*, std::_Placeholder<1>, std::_Placeholder<2>, SleepyDiscord::GenericMessageReceiver*))(std::weak_ptr<void>, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >, SleepyDiscord::GenericMessageReceiver*)>::__call<void, std::weak_ptr<void>&&, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >&&, 0ul, 1ul, 2ul, 3ul>(std::tuple<std::weak_ptr<void>&&, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >&&>&&, std::_Index_tuple<0ul, 1ul, 2ul, 3ul>) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x87277E: void std::_Bind<void (SleepyDiscord::WebsocketppDiscordClient::*(SleepyDiscord::WebsocketppDiscordClient*, std::_Placeholder<1>, std::_Placeholder<2>, SleepyDiscord::GenericMessageReceiver*))(std::weak_ptr<void>, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >, SleepyDiscord::GenericMessageReceiver*)>::operator()<std::weak_ptr<void>, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >, void>(std::weak_ptr<void>&&, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >&&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x86B2EE: std::_Function_handler<void (std::weak_ptr<void>, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >), std::_Bind<void (SleepyDiscord::WebsocketppDiscordClient::*(SleepyDiscord::WebsocketppDiscordClient*, std::_Placeholder<1>, std::_Placeholder<2>, SleepyDiscord::GenericMessageReceiver*))(std::weak_ptr<void>, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >, SleepyDiscord::GenericMessageReceiver*)> >::_M_invoke(std::_Any_data const&, std::weak_ptr<void>&&, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >&&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722== 
==187722== 32 (24 direct, 8 indirect) bytes in 1 blocks are definitely lost in loss record 588 of 684
==187722==    at 0x4C2E216: operator new(unsigned long) (vg_replace_malloc.c:334)
==187722==    by 0x87D6B9: std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<std::thread*>(std::thread*) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x875B7E: std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<std::thread*>(std::thread*, std::integral_constant<bool, false>) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x86CE7B: std::__shared_ptr<std::thread, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::thread, void>(std::thread*) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x86674F: std::enable_if<std::__sp_is_constructible<std::thread, std::thread>::value, void>::type std::__shared_ptr<std::thread, (__gnu_cxx::_Lock_policy)2>::reset<std::thread>(std::thread*) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x849BBA: SleepyDiscord::WebsocketppDiscordClient::runAsync() (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x810CAB: SleepyDiscord::BaseDiscordClient::start(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x849232: SleepyDiscord::WebsocketppDiscordClient::WebsocketppDiscordClient(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x80B36F: Discord::WebsocketppDiscordClient(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char) (Discord.h:20)
==187722==    by 0x80A585: main (main.cpp:154)
==187722== 
==187722== 33 bytes in 1 blocks are definitely lost in loss record 589 of 684
==187722==    at 0x4C2E216: operator new(unsigned long) (vg_replace_malloc.c:334)
==187722==    by 0x66AA1CC: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
==187722==    by 0x813036: SleepyDiscord::BaseDiscordClient::getTheGateway() (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x810C5F: SleepyDiscord::BaseDiscordClient::start(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x849232: SleepyDiscord::WebsocketppDiscordClient::WebsocketppDiscordClient(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x80B36F: Discord::WebsocketppDiscordClient(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char) (Discord.h:20)
==187722==    by 0x80A585: main (main.cpp:154)
==187722== 
==187722== 33 bytes in 1 blocks are definitely lost in loss record 590 of 684
==187722==    at 0x4C2E216: operator new(unsigned long) (vg_replace_malloc.c:334)
==187722==    by 0x66A9C36: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
==187722==    by 0x66A9F88: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator=(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
==187722==    by 0x813C5E: SleepyDiscord::BaseDiscordClient::processMessage(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x860B1F: SleepyDiscord::BaseDiscordClient::processMessage(SleepyDiscord::GenericMessageReceiver*&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x849DB2: SleepyDiscord::WebsocketppDiscordClient::onMessage(std::weak_ptr<void>, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >, SleepyDiscord::GenericMessageReceiver*) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x88AD87: void std::__invoke_impl<void, void (SleepyDiscord::WebsocketppDiscordClient::*&)(std::weak_ptr<void>, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >, SleepyDiscord::GenericMessageReceiver*), SleepyDiscord::WebsocketppDiscordClient*&, std::weak_ptr<void>, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >, SleepyDiscord::GenericMessageReceiver*&>(std::__invoke_memfun_deref, void (SleepyDiscord::WebsocketppDiscordClient::*&)(std::weak_ptr<void>, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >, SleepyDiscord::GenericMessageReceiver*), SleepyDiscord::WebsocketppDiscordClient*&, std::weak_ptr<void>&&, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >&&, SleepyDiscord::GenericMessageReceiver*&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x88267B: std::__invoke_result<void (SleepyDiscord::WebsocketppDiscordClient::*&)(std::weak_ptr<void>, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >, SleepyDiscord::GenericMessageReceiver*), SleepyDiscord::WebsocketppDiscordClient*&, std::weak_ptr<void>, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >, SleepyDiscord::GenericMessageReceiver*&>::type std::__invoke<void (SleepyDiscord::WebsocketppDiscordClient::*&)(std::weak_ptr<void>, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >, SleepyDiscord::GenericMessageReceiver*), SleepyDiscord::WebsocketppDiscordClient*&, std::weak_ptr<void>, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >, SleepyDiscord::GenericMessageReceiver*&>(void (SleepyDiscord::WebsocketppDiscordClient::*&)(std::weak_ptr<void>, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >, SleepyDiscord::GenericMessageReceiver*), SleepyDiscord::WebsocketppDiscordClient*&, std::weak_ptr<void>&&, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >&&, SleepyDiscord::GenericMessageReceiver*&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x879AA2: void std::_Bind<void (SleepyDiscord::WebsocketppDiscordClient::*(SleepyDiscord::WebsocketppDiscordClient*, std::_Placeholder<1>, std::_Placeholder<2>, SleepyDiscord::GenericMessageReceiver*))(std::weak_ptr<void>, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >, SleepyDiscord::GenericMessageReceiver*)>::__call<void, std::weak_ptr<void>&&, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >&&, 0ul, 1ul, 2ul, 3ul>(std::tuple<std::weak_ptr<void>&&, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >&&>&&, std::_Index_tuple<0ul, 1ul, 2ul, 3ul>) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x87277E: void std::_Bind<void (SleepyDiscord::WebsocketppDiscordClient::*(SleepyDiscord::WebsocketppDiscordClient*, std::_Placeholder<1>, std::_Placeholder<2>, SleepyDiscord::GenericMessageReceiver*))(std::weak_ptr<void>, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >, SleepyDiscord::GenericMessageReceiver*)>::operator()<std::weak_ptr<void>, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >, void>(std::weak_ptr<void>&&, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >&&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x86B2EE: std::_Function_handler<void (std::weak_ptr<void>, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >), std::_Bind<void (SleepyDiscord::WebsocketppDiscordClient::*(SleepyDiscord::WebsocketppDiscordClient*, std::_Placeholder<1>, std::_Placeholder<2>, SleepyDiscord::GenericMessageReceiver*))(std::weak_ptr<void>, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >, SleepyDiscord::GenericMessageReceiver*)> >::_M_invoke(std::_Any_data const&, std::weak_ptr<void>&&, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >&&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x8AB1CA: std::function<void (std::weak_ptr<void>, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >)>::operator()(std::weak_ptr<void>, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >) const (in /home/vm/Monero-TipBot/TIPBOT)
==187722== 
==187722== 48 bytes in 1 blocks are definitely lost in loss record 594 of 684
==187722==    at 0x4C2E216: operator new(unsigned long) (vg_replace_malloc.c:334)
==187722==    by 0x8B3F5E: __gnu_cxx::new_allocator<std::_Sp_counted_ptr_inplace<asio::basic_socket_acceptor<asio::ip::tcp>, std::allocator<asio::basic_socket_acceptor<asio::ip::tcp> >, (__gnu_cxx::_Lock_policy)2> >::allocate(unsigned long, void const*) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x8AF072: std::allocator_traits<std::allocator<std::_Sp_counted_ptr_inplace<asio::basic_socket_acceptor<asio::ip::tcp>, std::allocator<asio::basic_socket_acceptor<asio::ip::tcp> >, (__gnu_cxx::_Lock_policy)2> > >::allocate(std::allocator<std::_Sp_counted_ptr_inplace<asio::basic_socket_acceptor<asio::ip::tcp>, std::allocator<asio::basic_socket_acceptor<asio::ip::tcp> >, (__gnu_cxx::_Lock_policy)2> >&, unsigned long) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x8A747D: std::__allocated_ptr<std::allocator<std::_Sp_counted_ptr_inplace<asio::basic_socket_acceptor<asio::ip::tcp>, std::allocator<asio::basic_socket_acceptor<asio::ip::tcp> >, (__gnu_cxx::_Lock_policy)2> > > std::__allocate_guarded<std::allocator<std::_Sp_counted_ptr_inplace<asio::basic_socket_acceptor<asio::ip::tcp>, std::allocator<asio::basic_socket_acceptor<asio::ip::tcp> >, (__gnu_cxx::_Lock_policy)2> > >(std::allocator<std::_Sp_counted_ptr_inplace<asio::basic_socket_acceptor<asio::ip::tcp>, std::allocator<asio::basic_socket_acceptor<asio::ip::tcp> >, (__gnu_cxx::_Lock_policy)2> >&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x89F2CA: std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<asio::basic_socket_acceptor<asio::ip::tcp>, std::allocator<asio::basic_socket_acceptor<asio::ip::tcp> >, std::reference_wrapper<asio::io_context> >(std::_Sp_make_shared_tag, asio::basic_socket_acceptor<asio::ip::tcp>*, std::allocator<asio::basic_socket_acceptor<asio::ip::tcp> > const&, std::reference_wrapper<asio::io_context>&&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x8951ED: std::__shared_ptr<asio::basic_socket_acceptor<asio::ip::tcp>, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<asio::basic_socket_acceptor<asio::ip::tcp> >, std::reference_wrapper<asio::io_context> >(std::_Sp_make_shared_tag, std::allocator<asio::basic_socket_acceptor<asio::ip::tcp> > const&, std::reference_wrapper<asio::io_context>&&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x88A428: std::shared_ptr<asio::basic_socket_acceptor<asio::ip::tcp> >::shared_ptr<std::allocator<asio::basic_socket_acceptor<asio::ip::tcp> >, std::reference_wrapper<asio::io_context> >(std::_Sp_make_shared_tag, std::allocator<asio::basic_socket_acceptor<asio::ip::tcp> > const&, std::reference_wrapper<asio::io_context>&&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x881A9D: std::shared_ptr<asio::basic_socket_acceptor<asio::ip::tcp> > std::allocate_shared<asio::basic_socket_acceptor<asio::ip::tcp>, std::allocator<asio::basic_socket_acceptor<asio::ip::tcp> >, std::reference_wrapper<asio::io_context> >(std::allocator<asio::basic_socket_acceptor<asio::ip::tcp> > const&, std::reference_wrapper<asio::io_context>&&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x878D88: std::shared_ptr<asio::basic_socket_acceptor<asio::ip::tcp> > std::make_shared<asio::basic_socket_acceptor<asio::ip::tcp>, std::reference_wrapper<asio::io_context> >(std::reference_wrapper<asio::io_context>&&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x871725: websocketpp::transport::asio::endpoint<websocketpp::config::asio_tls_client::transport_config>::init_asio(asio::io_context*, std::error_code&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x86A988: websocketpp::transport::asio::endpoint<websocketpp::config::asio_tls_client::transport_config>::init_asio(asio::io_context*) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x865447: websocketpp::transport::asio::endpoint<websocketpp::config::asio_tls_client::transport_config>::init_asio() (in /home/vm/Monero-TipBot/TIPBOT)
==187722== 
==187722== 56 bytes in 1 blocks are possibly lost in loss record 595 of 684
==187722==    at 0x4C2E216: operator new(unsigned long) (vg_replace_malloc.c:334)
==187722==    by 0x8C321E: asio::execution_context::service* asio::detail::service_registry::create<asio::detail::reactive_socket_service<asio::ip::tcp>, asio::io_context>(void*) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x854268: asio::detail::service_registry::do_use_service(asio::execution_context::service::key const&, asio::execution_context::service* (*)(void*), void*) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x8BDC3B: asio::detail::reactive_socket_service<asio::ip::tcp>& asio::detail::service_registry::use_service<asio::detail::reactive_socket_service<asio::ip::tcp> >(asio::io_context&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x8B8402: asio::detail::reactive_socket_service<asio::ip::tcp>& asio::use_service<asio::detail::reactive_socket_service<asio::ip::tcp> >(asio::io_context&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x8B3395: asio::basic_io_object<asio::detail::reactive_socket_service<asio::ip::tcp>, true>::basic_io_object(asio::io_context&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x8B8DD2: asio::basic_socket_acceptor<asio::ip::tcp>::basic_socket_acceptor(asio::io_context&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x8B4027: void __gnu_cxx::new_allocator<asio::basic_socket_acceptor<asio::ip::tcp> >::construct<asio::basic_socket_acceptor<asio::ip::tcp>, std::reference_wrapper<asio::io_context> >(asio::basic_socket_acceptor<asio::ip::tcp>*, std::reference_wrapper<asio::io_context>&&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x8AF175: void std::allocator_traits<std::allocator<asio::basic_socket_acceptor<asio::ip::tcp> > >::construct<asio::basic_socket_acceptor<asio::ip::tcp>, std::reference_wrapper<asio::io_context> >(std::allocator<asio::basic_socket_acceptor<asio::ip::tcp> >&, asio::basic_socket_acceptor<asio::ip::tcp>*, std::reference_wrapper<asio::io_context>&&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x8A75F9: std::_Sp_counted_ptr_inplace<asio::basic_socket_acceptor<asio::ip::tcp>, std::allocator<asio::basic_socket_acceptor<asio::ip::tcp> >, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<std::reference_wrapper<asio::io_context> >(std::allocator<asio::basic_socket_acceptor<asio::ip::tcp> >, std::reference_wrapper<asio::io_context>&&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x89F332: std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<asio::basic_socket_acceptor<asio::ip::tcp>, std::allocator<asio::basic_socket_acceptor<asio::ip::tcp> >, std::reference_wrapper<asio::io_context> >(std::_Sp_make_shared_tag, asio::basic_socket_acceptor<asio::ip::tcp>*, std::allocator<asio::basic_socket_acceptor<asio::ip::tcp> > const&, std::reference_wrapper<asio::io_context>&&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x8951ED: std::__shared_ptr<asio::basic_socket_acceptor<asio::ip::tcp>, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<asio::basic_socket_acceptor<asio::ip::tcp> >, std::reference_wrapper<asio::io_context> >(std::_Sp_make_shared_tag, std::allocator<asio::basic_socket_acceptor<asio::ip::tcp> > const&, std::reference_wrapper<asio::io_context>&&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722== 
==187722== 64 bytes in 1 blocks are possibly lost in loss record 598 of 684
==187722==    at 0x4C2E216: operator new(unsigned long) (vg_replace_malloc.c:334)
==187722==    by 0x854506: asio::execution_context::execution_context() (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x857F20: asio::io_context::io_context() (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x86541A: websocketpp::transport::asio::endpoint<websocketpp::config::asio_tls_client::transport_config>::init_asio() (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x8494AE: SleepyDiscord::WebsocketppDiscordClient::init() (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x849204: SleepyDiscord::WebsocketppDiscordClient::WebsocketppDiscordClient(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x80B36F: Discord::WebsocketppDiscordClient(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char) (Discord.h:20)
==187722==    by 0x80A585: main (main.cpp:154)
==187722== 
==187722== 64 (40 direct, 24 indirect) bytes in 1 blocks are definitely lost in loss record 599 of 684
==187722==    at 0x4C2E216: operator new(unsigned long) (vg_replace_malloc.c:334)
==187722==    by 0x8AF575: __gnu_cxx::new_allocator<std::_Sp_counted_ptr_inplace<asio::ip::basic_resolver<asio::ip::tcp>, std::allocator<asio::ip::basic_resolver<asio::ip::tcp> >, (__gnu_cxx::_Lock_policy)2> >::allocate(unsigned long, void const*) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x8A7BE4: std::allocator_traits<std::allocator<std::_Sp_counted_ptr_inplace<asio::ip::basic_resolver<asio::ip::tcp>, std::allocator<asio::ip::basic_resolver<asio::ip::tcp> >, (__gnu_cxx::_Lock_policy)2> > >::allocate(std::allocator<std::_Sp_counted_ptr_inplace<asio::ip::basic_resolver<asio::ip::tcp>, std::allocator<asio::ip::basic_resolver<asio::ip::tcp> >, (__gnu_cxx::_Lock_policy)2> >&, unsigned long) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x89F92F: std::__allocated_ptr<std::allocator<std::_Sp_counted_ptr_inplace<asio::ip::basic_resolver<asio::ip::tcp>, std::allocator<asio::ip::basic_resolver<asio::ip::tcp> >, (__gnu_cxx::_Lock_policy)2> > > std::__allocate_guarded<std::allocator<std::_Sp_counted_ptr_inplace<asio::ip::basic_resolver<asio::ip::tcp>, std::allocator<asio::ip::basic_resolver<asio::ip::tcp> >, (__gnu_cxx::_Lock_policy)2> > >(std::allocator<std::_Sp_counted_ptr_inplace<asio::ip::basic_resolver<asio::ip::tcp>, std::allocator<asio::ip::basic_resolver<asio::ip::tcp> >, (__gnu_cxx::_Lock_policy)2> >&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x895998: std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<asio::ip::basic_resolver<asio::ip::tcp>, std::allocator<asio::ip::basic_resolver<asio::ip::tcp> >, std::reference_wrapper<asio::io_context> >(std::_Sp_make_shared_tag, asio::ip::basic_resolver<asio::ip::tcp>*, std::allocator<asio::ip::basic_resolver<asio::ip::tcp> > const&, std::reference_wrapper<asio::io_context>&&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x88AE3D: std::__shared_ptr<asio::ip::basic_resolver<asio::ip::tcp>, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<asio::ip::basic_resolver<asio::ip::tcp> >, std::reference_wrapper<asio::io_context> >(std::_Sp_make_shared_tag, std::allocator<asio::ip::basic_resolver<asio::ip::tcp> > const&, std::reference_wrapper<asio::io_context>&&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x8826FA: std::shared_ptr<asio::ip::basic_resolver<asio::ip::tcp> >::shared_ptr<std::allocator<asio::ip::basic_resolver<asio::ip::tcp> >, std::reference_wrapper<asio::io_context> >(std::_Sp_make_shared_tag, std::allocator<asio::ip::basic_resolver<asio::ip::tcp> > const&, std::reference_wrapper<asio::io_context>&&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x879B63: std::shared_ptr<asio::ip::basic_resolver<asio::ip::tcp> > std::allocate_shared<asio::ip::basic_resolver<asio::ip::tcp>, std::allocator<asio::ip::basic_resolver<asio::ip::tcp> >, std::reference_wrapper<asio::io_context> >(std::allocator<asio::ip::basic_resolver<asio::ip::tcp> > const&, std::reference_wrapper<asio::io_context>&&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x8729C1: std::shared_ptr<asio::ip::basic_resolver<asio::ip::tcp> > std::make_shared<asio::ip::basic_resolver<asio::ip::tcp>, std::reference_wrapper<asio::io_context> >(std::reference_wrapper<asio::io_context>&&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x86B6EA: websocketpp::transport::asio::endpoint<websocketpp::config::asio_tls_client::transport_config>::async_connect(std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::asio_tls_client::transport_config> >, std::shared_ptr<websocketpp::uri>, std::function<void (std::error_code const&)>) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x865F5E: websocketpp::client<websocketpp::config::asio_tls_client>::connect(std::shared_ptr<websocketpp::connection<websocketpp::config::asio_tls_client> >) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x849790: SleepyDiscord::WebsocketppDiscordClient::connect(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, SleepyDiscord::GenericMessageReceiver*, std::weak_ptr<void>&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722== 
==187722== 92 (32 direct, 60 indirect) bytes in 1 blocks are definitely lost in loss record 604 of 684
==187722==    at 0x4C2E216: operator new(unsigned long) (vg_replace_malloc.c:334)
==187722==    by 0x810C04: SleepyDiscord::BaseDiscordClient::start(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x849232: SleepyDiscord::WebsocketppDiscordClient::WebsocketppDiscordClient(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x80B36F: Discord::WebsocketppDiscordClient(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char) (Discord.h:20)
==187722==    by 0x80A585: main (main.cpp:154)
==187722== 
==187722== 96 bytes in 1 blocks are possibly lost in loss record 607 of 684
==187722==    at 0x4C2E216: operator new(unsigned long) (vg_replace_malloc.c:334)
==187722==    by 0x87FF8A: asio::execution_context::service* asio::detail::service_registry::create<asio::detail::deadline_timer_service<asio::detail::chrono_time_traits<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >, asio::io_context>(void*) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x854268: asio::detail::service_registry::do_use_service(asio::execution_context::service::key const&, asio::execution_context::service* (*)(void*), void*) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x877CE3: asio::detail::deadline_timer_service<asio::detail::chrono_time_traits<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >& asio::detail::service_registry::use_service<asio::detail::deadline_timer_service<asio::detail::chrono_time_traits<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > > >(asio::io_context&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x86F277: asio::detail::deadline_timer_service<asio::detail::chrono_time_traits<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >& asio::use_service<asio::detail::deadline_timer_service<asio::detail::chrono_time_traits<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > > >(asio::io_context&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x869014: asio::basic_io_object<asio::detail::deadline_timer_service<asio::detail::chrono_time_traits<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >, true>::basic_io_object(asio::io_context&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x8640CE: asio::basic_waitable_timer<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> >::basic_waitable_timer(asio::io_context&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x85DE85: asio::ssl::detail::stream_core::stream_core(ssl_ctx_st*, asio::io_context&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x8A62F1: asio::ssl::stream<asio::basic_stream_socket<asio::ip::tcp> >::stream<asio::io_context&>(asio::io_context&, asio::ssl::context&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x89D84D: void __gnu_cxx::new_allocator<asio::ssl::stream<asio::basic_stream_socket<asio::ip::tcp> > >::construct<asio::ssl::stream<asio::basic_stream_socket<asio::ip::tcp> >, asio::io_context&, std::reference_wrapper<asio::ssl::context> >(asio::ssl::stream<asio::basic_stream_socket<asio::ip::tcp> >*, asio::io_context&, std::reference_wrapper<asio::ssl::context>&&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x89232B: void std::allocator_traits<std::allocator<asio::ssl::stream<asio::basic_stream_socket<asio::ip::tcp> > > >::construct<asio::ssl::stream<asio::basic_stream_socket<asio::ip::tcp> >, asio::io_context&, std::reference_wrapper<asio::ssl::context> >(std::allocator<asio::ssl::stream<asio::basic_stream_socket<asio::ip::tcp> > >&, asio::ssl::stream<asio::basic_stream_socket<asio::ip::tcp> >*, asio::io_context&, std::reference_wrapper<asio::ssl::context>&&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x888BA0: std::_Sp_counted_ptr_inplace<asio::ssl::stream<asio::basic_stream_socket<asio::ip::tcp> >, std::allocator<asio::ssl::stream<asio::basic_stream_socket<asio::ip::tcp> > >, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<asio::io_context&, std::reference_wrapper<asio::ssl::context> >(std::allocator<asio::ssl::stream<asio::basic_stream_socket<asio::ip::tcp> > >, asio::io_context&, std::reference_wrapper<asio::ssl::context>&&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722== 
==187722== 96 (16 direct, 80 indirect) bytes in 1 blocks are definitely lost in loss record 608 of 684
==187722==    at 0x4C2E216: operator new(unsigned long) (vg_replace_malloc.c:334)
==187722==    by 0x84A6DB: std::_Function_base::_Base_manager<SleepyDiscord::WebsocketppDiscordClient::schedule(std::function<void ()>, long)::{lambda()#1}>::_M_clone(std::_Any_data&, std::_Function_base::_Base_manager<SleepyDiscord::WebsocketppDiscordClient::schedule(std::function<void ()>, long)::{lambda()#1}> const&, std::integral_constant<bool, false>) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x84A4C3: std::_Function_base::_Base_manager<SleepyDiscord::WebsocketppDiscordClient::schedule(std::function<void ()>, long)::{lambda()#1}>::_M_manager(std::_Any_data&, std::_Function_base::_Base_manager<SleepyDiscord::WebsocketppDiscordClient::schedule(std::function<void ()>, long)::{lambda()#1}> const&, std::_Manager_operation) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x81707A: std::function<void ()>::function(std::function<void ()> const&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x8162B2: SleepyDiscord::Timer::Timer(std::function<void ()>) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x849A75: SleepyDiscord::WebsocketppDiscordClient::schedule(std::function<void ()>, long) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x8164D9: SleepyDiscord::BaseDiscordClient::schedule(std::function<void ()>, long, SleepyDiscord::BaseDiscordClient::AssignmentType) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x8165BE: SleepyDiscord::BaseDiscordClient::schedule(void (SleepyDiscord::BaseDiscordClient::*)(), long, SleepyDiscord::BaseDiscordClient::AssignmentType) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x814914: SleepyDiscord::BaseDiscordClient::heartbeat() (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x8145A4: SleepyDiscord::BaseDiscordClient::processMessage(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x860B1F: SleepyDiscord::BaseDiscordClient::processMessage(SleepyDiscord::GenericMessageReceiver*&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x849DB2: SleepyDiscord::WebsocketppDiscordClient::onMessage(std::weak_ptr<void>, std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >, SleepyDiscord::GenericMessageReceiver*) (in /home/vm/Monero-TipBot/TIPBOT)
==187722== 
==187722== 104 bytes in 1 blocks are possibly lost in loss record 609 of 684
==187722==    at 0x4C2E216: operator new(unsigned long) (vg_replace_malloc.c:334)
==187722==    by 0x85AB39: asio::detail::strand_service::construct(asio::detail::strand_service::strand_impl*&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x85AE51: asio::io_context::strand::strand(asio::io_context&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x8BECBF: void __gnu_cxx::new_allocator<asio::io_context::strand>::construct<asio::io_context::strand, std::reference_wrapper<asio::io_context> >(asio::io_context::strand*, std::reference_wrapper<asio::io_context>&&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x8B989B: void std::allocator_traits<std::allocator<asio::io_context::strand> >::construct<asio::io_context::strand, std::reference_wrapper<asio::io_context> >(std::allocator<asio::io_context::strand>&, asio::io_context::strand*, std::reference_wrapper<asio::io_context>&&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x8B4443: std::_Sp_counted_ptr_inplace<asio::io_context::strand, std::allocator<asio::io_context::strand>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<std::reference_wrapper<asio::io_context> >(std::allocator<asio::io_context::strand>, std::reference_wrapper<asio::io_context>&&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x8AF46C: std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<asio::io_context::strand, std::allocator<asio::io_context::strand>, std::reference_wrapper<asio::io_context> >(std::_Sp_make_shared_tag, asio::io_context::strand*, std::allocator<asio::io_context::strand> const&, std::reference_wrapper<asio::io_context>&&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x8A7AD5: std::__shared_ptr<asio::io_context::strand, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<asio::io_context::strand>, std::reference_wrapper<asio::io_context> >(std::_Sp_make_shared_tag, std::allocator<asio::io_context::strand> const&, std::reference_wrapper<asio::io_context>&&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x89F800: std::shared_ptr<asio::io_context::strand>::shared_ptr<std::allocator<asio::io_context::strand>, std::reference_wrapper<asio::io_context> >(std::_Sp_make_shared_tag, std::allocator<asio::io_context::strand> const&, std::reference_wrapper<asio::io_context>&&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x895827: std::shared_ptr<asio::io_context::strand> std::allocate_shared<asio::io_context::strand, std::allocator<asio::io_context::strand>, std::reference_wrapper<asio::io_context> >(std::allocator<asio::io_context::strand> const&, std::reference_wrapper<asio::io_context>&&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x88A8D6: std::shared_ptr<asio::io_context::strand> std::make_shared<asio::io_context::strand, std::reference_wrapper<asio::io_context> >(std::reference_wrapper<asio::io_context>&&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x882117: websocketpp::transport::asio::connection<websocketpp::config::asio_tls_client::transport_config>::init_asio(asio::io_context*) (in /home/vm/Monero-TipBot/TIPBOT)
==187722== 
==187722== 128 bytes in 1 blocks are possibly lost in loss record 613 of 684
==187722==    at 0x4C2E216: operator new(unsigned long) (vg_replace_malloc.c:334)
==187722==    by 0x8C92AA: asio::execution_context::service* asio::detail::service_registry::create<asio::detail::resolver_service<asio::ip::tcp>, asio::io_context>(void*) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x854268: asio::detail::service_registry::do_use_service(asio::execution_context::service::key const&, asio::execution_context::service* (*)(void*), void*) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x8C48A5: asio::detail::resolver_service<asio::ip::tcp>& asio::detail::service_registry::use_service<asio::detail::resolver_service<asio::ip::tcp> >(asio::io_context&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x8BED24: asio::detail::resolver_service<asio::ip::tcp>& asio::use_service<asio::detail::resolver_service<asio::ip::tcp> >(asio::io_context&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x8B98BC: asio::basic_io_object<asio::detail::resolver_service<asio::ip::tcp>, true>::basic_io_object(asio::io_context&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x8B44EE: asio::ip::basic_resolver<asio::ip::tcp>::basic_resolver(asio::io_context&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x8AF63D: void __gnu_cxx::new_allocator<asio::ip::basic_resolver<asio::ip::tcp> >::construct<asio::ip::basic_resolver<asio::ip::tcp>, std::reference_wrapper<asio::io_context> >(asio::ip::basic_resolver<asio::ip::tcp>*, std::reference_wrapper<asio::io_context>&&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x8A7CE7: void std::allocator_traits<std::allocator<asio::ip::basic_resolver<asio::ip::tcp> > >::construct<asio::ip::basic_resolver<asio::ip::tcp>, std::reference_wrapper<asio::io_context> >(std::allocator<asio::ip::basic_resolver<asio::ip::tcp> >&, asio::ip::basic_resolver<asio::ip::tcp>*, std::reference_wrapper<asio::io_context>&&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x89FAAB: std::_Sp_counted_ptr_inplace<asio::ip::basic_resolver<asio::ip::tcp>, std::allocator<asio::ip::basic_resolver<asio::ip::tcp> >, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<std::reference_wrapper<asio::io_context> >(std::allocator<asio::ip::basic_resolver<asio::ip::tcp> >, std::reference_wrapper<asio::io_context>&&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x895A00: std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<asio::ip::basic_resolver<asio::ip::tcp>, std::allocator<asio::ip::basic_resolver<asio::ip::tcp> >, std::reference_wrapper<asio::io_context> >(std::_Sp_make_shared_tag, asio::ip::basic_resolver<asio::ip::tcp>*, std::allocator<asio::ip::basic_resolver<asio::ip::tcp> > const&, std::reference_wrapper<asio::io_context>&&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x88AE3D: std::__shared_ptr<asio::ip::basic_resolver<asio::ip::tcp>, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<asio::ip::basic_resolver<asio::ip::tcp> >, std::reference_wrapper<asio::io_context> >(std::_Sp_make_shared_tag, std::allocator<asio::ip::basic_resolver<asio::ip::tcp> > const&, std::reference_wrapper<asio::io_context>&&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722== 
==187722== 168 bytes in 1 blocks are possibly lost in loss record 618 of 684
==187722==    at 0x4C2E216: operator new(unsigned long) (vg_replace_malloc.c:334)
==187722==    by 0x868719: asio::detail::epoll_reactor::descriptor_state* asio::detail::object_pool_access::create<asio::detail::epoll_reactor::descriptor_state, bool>(bool) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x8629E3: asio::detail::epoll_reactor::descriptor_state* asio::detail::object_pool<asio::detail::epoll_reactor::descriptor_state>::alloc<bool>(bool) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x8567A4: asio::detail::epoll_reactor::allocate_descriptor_state() (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x8559E9: asio::detail::epoll_reactor::register_descriptor(int, asio::detail::epoll_reactor::descriptor_state*&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x85A182: asio::detail::reactive_socket_service_base::do_open(asio::detail::reactive_socket_service_base::base_implementation_type&, int, int, int, std::error_code&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x89664D: asio::detail::reactive_socket_service<asio::ip::tcp>::open(asio::detail::reactive_socket_service<asio::ip::tcp>::implementation_type&, asio::ip::tcp const&, std::error_code&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x88BE97: asio::async_result<std::decay<asio::detail::iterator_connect_op<asio::ip::tcp, asio::ip::basic_resolver_iterator<asio::ip::tcp>, asio::detail::default_connect_condition, asio::detail::wrapped_handler<asio::io_context::strand, std::_Bind<void (websocketpp::transport::asio::endpoint<websocketpp::config::asio_tls_client::transport_config>::*(websocketpp::transport::asio::endpoint<websocketpp::config::asio_tls_client::transport_config>*, std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::asio_tls_client::transport_config> >, std::shared_ptr<asio::basic_waitable_timer<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >, std::function<void (std::error_code const&)>, std::_Placeholder<1>))(std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::asio_tls_client::transport_config> >, std::shared_ptr<asio::basic_waitable_timer<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >, std::function<void (std::error_code const&)>, std::error_code const&)>, asio::detail::is_continuation_if_running> > >::type, void (std::error_code)>::return_type asio::basic_socket<asio::ip::tcp>::async_connect<asio::detail::iterator_connect_op<asio::ip::tcp, asio::ip::basic_resolver_iterator<asio::ip::tcp>, asio::detail::default_connect_condition, asio::detail::wrapped_handler<asio::io_context::strand, std::_Bind<void (websocketpp::transport::asio::endpoint<websocketpp::config::asio_tls_client::transport_config>::*(websocketpp::transport::asio::endpoint<websocketpp::config::asio_tls_client::transport_config>*, std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::asio_tls_client::transport_config> >, std::shared_ptr<asio::basic_waitable_timer<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >, std::function<void (std::error_code const&)>, std::_Placeholder<1>))(std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::asio_tls_client::transport_config> >, std::shared_ptr<asio::basic_waitable_timer<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >, std::function<void (std::error_code const&)>, std::error_code const&)>, asio::detail::is_continuation_if_running> > >(asio::ip::basic_endpoint<asio::ip::tcp> const&, asio::detail::iterator_connect_op<asio::ip::tcp, asio::ip::basic_resolver_iterator<asio::ip::tcp>, asio::detail::default_connect_condition, asio::detail::wrapped_handler<asio::io_context::strand, std::_Bind<void (websocketpp::transport::asio::endpoint<websocketpp::config::asio_tls_client::transport_config>::*(websocketpp::transport::asio::endpoint<websocketpp::config::asio_tls_client::transport_config>*, std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::asio_tls_client::transport_config> >, std::shared_ptr<asio::basic_waitable_timer<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >, std::function<void (std::error_code const&)>, std::_Placeholder<1>))(std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::asio_tls_client::transport_config> >, std::shared_ptr<asio::basic_waitable_timer<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >, std::function<void (std::error_code const&)>, std::error_code const&)>, asio::detail::is_continuation_if_running> >&&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x883A3B: asio::detail::iterator_connect_op<asio::ip::tcp, asio::ip::basic_resolver_iterator<asio::ip::tcp>, asio::detail::default_connect_condition, asio::detail::wrapped_handler<asio::io_context::strand, std::_Bind<void (websocketpp::transport::asio::endpoint<websocketpp::config::asio_tls_client::transport_config>::*(websocketpp::transport::asio::endpoint<websocketpp::config::asio_tls_client::transport_config>*, std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::asio_tls_client::transport_config> >, std::shared_ptr<asio::basic_waitable_timer<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >, std::function<void (std::error_code const&)>, std::_Placeholder<1>))(std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::asio_tls_client::transport_config> >, std::shared_ptr<asio::basic_waitable_timer<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >, std::function<void (std::error_code const&)>, std::error_code const&)>, asio::detail::is_continuation_if_running> >::operator()(std::error_code, int) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x87B0D5: asio::async_result<std::decay<asio::detail::wrapped_handler<asio::io_context::strand, std::_Bind<void (websocketpp::transport::asio::endpoint<websocketpp::config::asio_tls_client::transport_config>::*(websocketpp::transport::asio::endpoint<websocketpp::config::asio_tls_client::transport_config>*, std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::asio_tls_client::transport_config> >, std::shared_ptr<asio::basic_waitable_timer<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >, std::function<void (std::error_code const&)>, std::_Placeholder<1>))(std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::asio_tls_client::transport_config> >, std::shared_ptr<asio::basic_waitable_timer<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >, std::function<void (std::error_code const&)>, std::error_code const&)>, asio::detail::is_continuation_if_running> >::type, void (std::error_code, asio::ip::basic_resolver_iterator<asio::ip::tcp>)>::return_type asio::async_connect<asio::ip::tcp, asio::ip::basic_resolver_iterator<asio::ip::tcp>, asio::detail::wrapped_handler<asio::io_context::strand, std::_Bind<void (websocketpp::transport::asio::endpoint<websocketpp::config::asio_tls_client::transport_config>::*(websocketpp::transport::asio::endpoint<websocketpp::config::asio_tls_client::transport_config>*, std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::asio_tls_client::transport_config> >, std::shared_ptr<asio::basic_waitable_timer<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >, std::function<void (std::error_code const&)>, std::_Placeholder<1>))(std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::asio_tls_client::transport_config> >, std::shared_ptr<asio::basic_waitable_timer<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >, std::function<void (std::error_code const&)>, std::error_code const&)>, asio::detail::is_continuation_if_running> >(asio::basic_socket<asio::ip::tcp>&, asio::ip::basic_resolver_iterator<asio::ip::tcp>, asio::detail::wrapped_handler<asio::io_context::strand, std::_Bind<void (websocketpp::transport::asio::endpoint<websocketpp::config::asio_tls_client::transport_config>::*(websocketpp::transport::asio::endpoint<websocketpp::config::asio_tls_client::transport_config>*, std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::asio_tls_client::transport_config> >, std::shared_ptr<asio::basic_waitable_timer<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >, std::function<void (std::error_code const&)>, std::_Placeholder<1>))(std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::asio_tls_client::transport_config> >, std::shared_ptr<asio::basic_waitable_timer<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >, std::function<void (std::error_code const&)>, std::error_code const&)>, asio::detail::is_continuation_if_running>&&, std::enable_if<!asio::is_endpoint_sequence<asio::ip::basic_resolver_iterator<asio::ip::tcp> >::value, void>::type*) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x873EE9: websocketpp::transport::asio::endpoint<websocketpp::config::asio_tls_client::transport_config>::handle_resolve(std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::asio_tls_client::transport_config> >, std::shared_ptr<asio::basic_waitable_timer<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >, std::function<void (std::error_code const&)>, std::error_code const&, asio::ip::basic_resolver_iterator<asio::ip::tcp>) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x8C5121: void std::__invoke_impl<void, void (websocketpp::transport::asio::endpoint<websocketpp::config::asio_tls_client::transport_config>::*&)(std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::asio_tls_client::transport_config> >, std::shared_ptr<asio::basic_waitable_timer<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >, std::function<void (std::error_code const&)>, std::error_code const&, asio::ip::basic_resolver_iterator<asio::ip::tcp>), websocketpp::transport::asio::endpoint<websocketpp::config::asio_tls_client::transport_config>*&, std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::asio_tls_client::transport_config> >&, std::shared_ptr<asio::basic_waitable_timer<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >&, std::function<void (std::error_code const&)>&, std::error_code const&, asio::ip::basic_resolver_results<asio::ip::tcp> const&>(std::__invoke_memfun_deref, void (websocketpp::transport::asio::endpoint<websocketpp::config::asio_tls_client::transport_config>::*&)(std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::asio_tls_client::transport_config> >, std::shared_ptr<asio::basic_waitable_timer<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >, std::function<void (std::error_code const&)>, std::error_code const&, asio::ip::basic_resolver_iterator<asio::ip::tcp>), websocketpp::transport::asio::endpoint<websocketpp::config::asio_tls_client::transport_config>*&, std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::asio_tls_client::transport_config> >&, std::shared_ptr<asio::basic_waitable_timer<std::chrono::_V2::steady_clock, asio::wait_traits<std::chrono::_V2::steady_clock> > >&, std::function<void (std::error_code const&)>&, std::error_code const&, asio::ip::basic_resolver_results<asio::ip::tcp> const&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722== 
==187722== 208 bytes in 1 blocks are possibly lost in loss record 624 of 684
==187722==    at 0x4C2E216: operator new(unsigned long) (vg_replace_malloc.c:334)
==187722==    by 0x86ED9C: asio::execution_context::service* asio::detail::service_registry::create<asio::detail::epoll_reactor, asio::io_context>(void*) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x854268: asio::detail::service_registry::do_use_service(asio::execution_context::service::key const&, asio::execution_context::service* (*)(void*), void*) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x86892B: asio::detail::epoll_reactor& asio::detail::service_registry::use_service<asio::detail::epoll_reactor>(asio::io_context&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x86323D: asio::detail::epoll_reactor& asio::use_service<asio::detail::epoll_reactor>(asio::io_context&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x859DB4: asio::detail::reactive_socket_service_base::reactive_socket_service_base(asio::io_context&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x8C7C66: asio::detail::reactive_socket_service<asio::ip::tcp>::reactive_socket_service(asio::io_context&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x8C3230: asio::execution_context::service* asio::detail::service_registry::create<asio::detail::reactive_socket_service<asio::ip::tcp>, asio::io_context>(void*) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x854268: asio::detail::service_registry::do_use_service(asio::execution_context::service::key const&, asio::execution_context::service* (*)(void*), void*) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x8BDC3B: asio::detail::reactive_socket_service<asio::ip::tcp>& asio::detail::service_registry::use_service<asio::detail::reactive_socket_service<asio::ip::tcp> >(asio::io_context&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x8B8402: asio::detail::reactive_socket_service<asio::ip::tcp>& asio::use_service<asio::detail::reactive_socket_service<asio::ip::tcp> >(asio::io_context&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x8B3395: asio::basic_io_object<asio::detail::reactive_socket_service<asio::ip::tcp>, true>::basic_io_object(asio::io_context&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722== 
==187722== 240 bytes in 1 blocks are possibly lost in loss record 629 of 684
==187722==    at 0x4C2E216: operator new(unsigned long) (vg_replace_malloc.c:334)
==187722==    by 0x857F2A: asio::io_context::io_context() (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x86541A: websocketpp::transport::asio::endpoint<websocketpp::config::asio_tls_client::transport_config>::init_asio() (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x8494AE: SleepyDiscord::WebsocketppDiscordClient::init() (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x849204: SleepyDiscord::WebsocketppDiscordClient::WebsocketppDiscordClient(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x80B36F: Discord::WebsocketppDiscordClient(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char) (Discord.h:20)
==187722==    by 0x80A585: main (main.cpp:154)
==187722== 
==187722== 320 bytes in 1 blocks are possibly lost in loss record 631 of 684
==187722==    at 0x4C2F988: calloc (vg_replace_malloc.c:711)
==187722==    by 0x40138A4: allocate_dtv (dl-tls.c:322)
==187722==    by 0x40138A4: _dl_allocate_tls (dl-tls.c:539)
==187722==    by 0x5A5426E: allocate_stack (allocatestack.c:588)
==187722==    by 0x5A5426E: pthread_create@@GLIBC_2.2.5 (pthread_create.c:539)
==187722==    by 0x5CAE5B1: ??? (in /usr/lib/x86_64-linux-gnu/libcurl.so.4.4.0)
==187722==    by 0x5CB144E: ??? (in /usr/lib/x86_64-linux-gnu/libcurl.so.4.4.0)
==187722==    by 0x5C7489E: ??? (in /usr/lib/x86_64-linux-gnu/libcurl.so.4.4.0)
==187722==    by 0x5C8E7AC: ??? (in /usr/lib/x86_64-linux-gnu/libcurl.so.4.4.0)
==187722==    by 0x5C9F502: ??? (in /usr/lib/x86_64-linux-gnu/libcurl.so.4.4.0)
==187722==    by 0x5C9FF5C: curl_multi_perform (in /usr/lib/x86_64-linux-gnu/libcurl.so.4.4.0)
==187722==    by 0x5C96A0A: curl_easy_perform (in /usr/lib/x86_64-linux-gnu/libcurl.so.4.4.0)
==187722==    by 0x84114D: cpr::Session::Impl::makeRequest(void*) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x840BA3: cpr::Session::Impl::Get() (in /home/vm/Monero-TipBot/TIPBOT)
==187722== 
==187722== 320 bytes in 1 blocks are possibly lost in loss record 632 of 684
==187722==    at 0x4C2F988: calloc (vg_replace_malloc.c:711)
==187722==    by 0x40138A4: allocate_dtv (dl-tls.c:322)
==187722==    by 0x40138A4: _dl_allocate_tls (dl-tls.c:539)
==187722==    by 0x5A5426E: allocate_stack (allocatestack.c:588)
==187722==    by 0x5A5426E: pthread_create@@GLIBC_2.2.5 (pthread_create.c:539)
==187722==    by 0x6642834: std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
==187722==    by 0x8666D8: std::thread::thread<unsigned long (websocketpp::transport::asio::endpoint<websocketpp::config::asio_tls_client::transport_config>::*)(), websocketpp::client<websocketpp::config::asio_tls_client>*>(unsigned long (websocketpp::transport::asio::endpoint<websocketpp::config::asio_tls_client::transport_config>::*&&)(), websocketpp::client<websocketpp::config::asio_tls_client>*&&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x849BAF: SleepyDiscord::WebsocketppDiscordClient::runAsync() (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x810CAB: SleepyDiscord::BaseDiscordClient::start(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x849232: SleepyDiscord::WebsocketppDiscordClient::WebsocketppDiscordClient(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x80B36F: Discord::WebsocketppDiscordClient(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char) (Discord.h:20)
==187722==    by 0x80A585: main (main.cpp:154)
==187722== 
==187722== 320 bytes in 1 blocks are possibly lost in loss record 633 of 684
==187722==    at 0x4C2F988: calloc (vg_replace_malloc.c:711)
==187722==    by 0x40138A4: allocate_dtv (dl-tls.c:322)
==187722==    by 0x40138A4: _dl_allocate_tls (dl-tls.c:539)
==187722==    by 0x5A5426E: allocate_stack (allocatestack.c:588)
==187722==    by 0x5A5426E: pthread_create@@GLIBC_2.2.5 (pthread_create.c:539)
==187722==    by 0x6642834: std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
==187722==    by 0x77A511: std::thread::thread<CLI::cli_main()::{lambda()#1}>(CLI::cli_main()::{lambda()#1}&&) (thread:126)
==187722==    by 0x779AD3: CLI::cli_main() (CLI.cpp:57)
==187722==    by 0x77B98F: void std::__invoke_impl<void, void (CLI::*)(), CLI*>(std::__invoke_memfun_deref, void (CLI::*&&)(), CLI*&&) (invoke.h:73)
==187722==    by 0x77B193: std::__invoke_result<void (CLI::*)(), CLI*>::type std::__invoke<void (CLI::*)(), CLI*>(void (CLI::*&&)(), CLI*&&) (invoke.h:95)
==187722==    by 0x77CF4C: decltype (__invoke((_S_declval<0ul>)(), (_S_declval<1ul>)())) std::thread::_Invoker<std::tuple<void (CLI::*)(), CLI*> >::_M_invoke<0ul, 1ul>(std::_Index_tuple<0ul, 1ul>) (thread:234)
==187722==    by 0x77CEED: std::thread::_Invoker<std::tuple<void (CLI::*)(), CLI*> >::operator()() (thread:243)
==187722==    by 0x77CEBD: std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (CLI::*)(), CLI*> > >::_M_run() (thread:186)
==187722==    by 0x664257E: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
==187722== 
==187722== 1,640 bytes in 1 blocks are possibly lost in loss record 670 of 684
==187722==    at 0x4C2E216: operator new(unsigned long) (vg_replace_malloc.c:334)
==187722==    by 0x86F038: asio::execution_context::service* asio::detail::service_registry::create<asio::detail::strand_service, asio::io_context>(void*) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x854268: asio::detail::service_registry::do_use_service(asio::execution_context::service::key const&, asio::execution_context::service* (*)(void*), void*) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x868B7F: asio::detail::strand_service& asio::detail::service_registry::use_service<asio::detail::strand_service>(asio::io_context&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x86370C: asio::detail::strand_service& asio::use_service<asio::detail::strand_service>(asio::io_context&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x85AE2D: asio::io_context::strand::strand(asio::io_context&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x8BECBF: void __gnu_cxx::new_allocator<asio::io_context::strand>::construct<asio::io_context::strand, std::reference_wrapper<asio::io_context> >(asio::io_context::strand*, std::reference_wrapper<asio::io_context>&&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x8B989B: void std::allocator_traits<std::allocator<asio::io_context::strand> >::construct<asio::io_context::strand, std::reference_wrapper<asio::io_context> >(std::allocator<asio::io_context::strand>&, asio::io_context::strand*, std::reference_wrapper<asio::io_context>&&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x8B4443: std::_Sp_counted_ptr_inplace<asio::io_context::strand, std::allocator<asio::io_context::strand>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<std::reference_wrapper<asio::io_context> >(std::allocator<asio::io_context::strand>, std::reference_wrapper<asio::io_context>&&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x8AF46C: std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<asio::io_context::strand, std::allocator<asio::io_context::strand>, std::reference_wrapper<asio::io_context> >(std::_Sp_make_shared_tag, asio::io_context::strand*, std::allocator<asio::io_context::strand> const&, std::reference_wrapper<asio::io_context>&&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x8A7AD5: std::__shared_ptr<asio::io_context::strand, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<asio::io_context::strand>, std::reference_wrapper<asio::io_context> >(std::_Sp_make_shared_tag, std::allocator<asio::io_context::strand> const&, std::reference_wrapper<asio::io_context>&&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x89F800: std::shared_ptr<asio::io_context::strand>::shared_ptr<std::allocator<asio::io_context::strand>, std::reference_wrapper<asio::io_context> >(std::_Sp_make_shared_tag, std::allocator<asio::io_context::strand> const&, std::reference_wrapper<asio::io_context>&&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722== 
==187722== 20,384 bytes in 1 blocks are possibly lost in loss record 684 of 684
==187722==    at 0x4C2E216: operator new(unsigned long) (vg_replace_malloc.c:334)
==187722==    by 0x8B4092: __gnu_cxx::new_allocator<std::_Sp_counted_ptr_inplace<websocketpp::connection<websocketpp::config::asio_tls_client>, std::allocator<websocketpp::connection<websocketpp::config::asio_tls_client> >, (__gnu_cxx::_Lock_policy)2> >::allocate(unsigned long, void const*) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x8AF1DA: std::allocator_traits<std::allocator<std::_Sp_counted_ptr_inplace<websocketpp::connection<websocketpp::config::asio_tls_client>, std::allocator<websocketpp::connection<websocketpp::config::asio_tls_client> >, (__gnu_cxx::_Lock_policy)2> > >::allocate(std::allocator<std::_Sp_counted_ptr_inplace<websocketpp::connection<websocketpp::config::asio_tls_client>, std::allocator<websocketpp::connection<websocketpp::config::asio_tls_client> >, (__gnu_cxx::_Lock_policy)2> >&, unsigned long) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x8A77ED: std::__allocated_ptr<std::allocator<std::_Sp_counted_ptr_inplace<websocketpp::connection<websocketpp::config::asio_tls_client>, std::allocator<websocketpp::connection<websocketpp::config::asio_tls_client> >, (__gnu_cxx::_Lock_policy)2> > > std::__allocate_guarded<std::allocator<std::_Sp_counted_ptr_inplace<websocketpp::connection<websocketpp::config::asio_tls_client>, std::allocator<websocketpp::connection<websocketpp::config::asio_tls_client> >, (__gnu_cxx::_Lock_policy)2> > >(std::allocator<std::_Sp_counted_ptr_inplace<websocketpp::connection<websocketpp::config::asio_tls_client>, std::allocator<websocketpp::connection<websocketpp::config::asio_tls_client> >, (__gnu_cxx::_Lock_policy)2> >&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x89F5CD: std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<websocketpp::connection<websocketpp::config::asio_tls_client>, std::allocator<websocketpp::connection<websocketpp::config::asio_tls_client> >, bool const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::reference_wrapper<websocketpp::log::basic<websocketpp::concurrency::basic, websocketpp::log::alevel> >, std::reference_wrapper<websocketpp::log::basic<websocketpp::concurrency::basic, websocketpp::log::elevel> >, std::reference_wrapper<websocketpp::random::random_device::int_generator<unsigned int, websocketpp::concurrency::basic> > >(std::_Sp_make_shared_tag, websocketpp::connection<websocketpp::config::asio_tls_client>*, std::allocator<websocketpp::connection<websocketpp::config::asio_tls_client> > const&, bool const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::reference_wrapper<websocketpp::log::basic<websocketpp::concurrency::basic, websocketpp::log::alevel> >&&, std::reference_wrapper<websocketpp::log::basic<websocketpp::concurrency::basic, websocketpp::log::elevel> >&&, std::reference_wrapper<websocketpp::random::random_device::int_generator<unsigned int, websocketpp::concurrency::basic> >&&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x89552A: std::__shared_ptr<websocketpp::connection<websocketpp::config::asio_tls_client>, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<websocketpp::connection<websocketpp::config::asio_tls_client> >, bool const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::reference_wrapper<websocketpp::log::basic<websocketpp::concurrency::basic, websocketpp::log::alevel> >, std::reference_wrapper<websocketpp::log::basic<websocketpp::concurrency::basic, websocketpp::log::elevel> >, std::reference_wrapper<websocketpp::random::random_device::int_generator<unsigned int, websocketpp::concurrency::basic> > >(std::_Sp_make_shared_tag, std::allocator<websocketpp::connection<websocketpp::config::asio_tls_client> > const&, bool const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::reference_wrapper<websocketpp::log::basic<websocketpp::concurrency::basic, websocketpp::log::alevel> >&&, std::reference_wrapper<websocketpp::log::basic<websocketpp::concurrency::basic, websocketpp::log::elevel> >&&, std::reference_wrapper<websocketpp::random::random_device::int_generator<unsigned int, websocketpp::concurrency::basic> >&&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x88A6FC: std::shared_ptr<websocketpp::connection<websocketpp::config::asio_tls_client> >::shared_ptr<std::allocator<websocketpp::connection<websocketpp::config::asio_tls_client> >, bool const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::reference_wrapper<websocketpp::log::basic<websocketpp::concurrency::basic, websocketpp::log::alevel> >, std::reference_wrapper<websocketpp::log::basic<websocketpp::concurrency::basic, websocketpp::log::elevel> >, std::reference_wrapper<websocketpp::random::random_device::int_generator<unsigned int, websocketpp::concurrency::basic> > >(std::_Sp_make_shared_tag, std::allocator<websocketpp::connection<websocketpp::config::asio_tls_client> > const&, bool const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::reference_wrapper<websocketpp::log::basic<websocketpp::concurrency::basic, websocketpp::log::alevel> >&&, std::reference_wrapper<websocketpp::log::basic<websocketpp::concurrency::basic, websocketpp::log::elevel> >&&, std::reference_wrapper<websocketpp::random::random_device::int_generator<unsigned int, websocketpp::concurrency::basic> >&&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x881D43: std::shared_ptr<websocketpp::connection<websocketpp::config::asio_tls_client> > std::allocate_shared<websocketpp::connection<websocketpp::config::asio_tls_client>, std::allocator<websocketpp::connection<websocketpp::config::asio_tls_client> >, bool const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::reference_wrapper<websocketpp::log::basic<websocketpp::concurrency::basic, websocketpp::log::alevel> >, std::reference_wrapper<websocketpp::log::basic<websocketpp::concurrency::basic, websocketpp::log::elevel> >, std::reference_wrapper<websocketpp::random::random_device::int_generator<unsigned int, websocketpp::concurrency::basic> > >(std::allocator<websocketpp::connection<websocketpp::config::asio_tls_client> > const&, bool const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::reference_wrapper<websocketpp::log::basic<websocketpp::concurrency::basic, websocketpp::log::alevel> >&&, std::reference_wrapper<websocketpp::log::basic<websocketpp::concurrency::basic, websocketpp::log::elevel> >&&, std::reference_wrapper<websocketpp::random::random_device::int_generator<unsigned int, websocketpp::concurrency::basic> >&&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x87902C: std::shared_ptr<websocketpp::connection<websocketpp::config::asio_tls_client> > std::make_shared<websocketpp::connection<websocketpp::config::asio_tls_client>, bool const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::reference_wrapper<websocketpp::log::basic<websocketpp::concurrency::basic, websocketpp::log::alevel> >, std::reference_wrapper<websocketpp::log::basic<websocketpp::concurrency::basic, websocketpp::log::elevel> >, std::reference_wrapper<websocketpp::random::random_device::int_generator<unsigned int, websocketpp::concurrency::basic> > >(bool const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::reference_wrapper<websocketpp::log::basic<websocketpp::concurrency::basic, websocketpp::log::alevel> >&&, std::reference_wrapper<websocketpp::log::basic<websocketpp::concurrency::basic, websocketpp::log::elevel> >&&, std::reference_wrapper<websocketpp::random::random_device::int_generator<unsigned int, websocketpp::concurrency::basic> >&&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x8719E0: websocketpp::endpoint<websocketpp::connection<websocketpp::config::asio_tls_client>, websocketpp::config::asio_tls_client>::create_connection() (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x86AB9E: websocketpp::client<websocketpp::config::asio_tls_client>::get_connection(std::shared_ptr<websocketpp::uri>, std::error_code&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722==    by 0x8655C2: websocketpp::client<websocketpp::config::asio_tls_client>::get_connection(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::error_code&) (in /home/vm/Monero-TipBot/TIPBOT)
==187722== 
==187722== LEAK SUMMARY:
==187722==    definitely lost: 263 bytes in 9 blocks
==187722==    indirectly lost: 172 bytes in 4 blocks
==187722==      possibly lost: 24,096 bytes in 16 blocks
==187722==    still reachable: 100,484 bytes in 3,267 blocks
==187722==                       of which reachable via heuristic:
==187722==                         multipleinheritance: 96 bytes in 1 blocks
==187722==         suppressed: 0 bytes in 0 blocks
==187722== Reachable blocks (those to which a pointer was found) are not shown.
==187722== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==187722== 
==187722== For counts of detected and suppressed errors, rerun with: -v
==187722== ERROR SUMMARY: 25 errors from 25 contexts (suppressed: 0 from 0)
yourWaifu commented 6 years ago

Thanks for the report, I did some digging in my code and I'm not sure if this is because of my code or the library. This seems to be coming from the default initialization of the CPR Session during a request. So I'm going to guess that maybe this is an issue with CPR, maybe?

TylerTheFox commented 6 years ago

I'm not quite sure because the last version of sleepy discord I used did not have this issue. Did CPR update since then? If so ill try and get the old deps and recompile them and see if that fixes it.

On Windows the program immediately crashes after starting sleepy discord. On Linux it continues to run for some reason.

If sleepy discord is corrupting the heap (like VS is detecting) it could destroy the pointer cpr uses and the new never gets freed which would cause valgrind to detect a memleak.

TylerTheFox commented 6 years ago

I restarted Visual Studio and now the error does not occur which used to be 100% reproducible. (???)

Still occurs in Valgrind, although not a fatal error like VS. Undefined Behavior somewhere perhaps?

TylerTheFox commented 6 years ago

Still looking into this when quit is called it also throws a heap corruption error like mentioned in #81.

The call stack is unreliable/corrupted.

Debug Error!

Program: <program name unknown>

HEAP CORRUPTION DETECTED: after Normal block (#48716) at 0x0C03D0B0.
CRT detected that the application wrote to memory after end of heap buffer.

(Press Retry to debug the application)

=======================================
VERIFIER STOP 0000000F: pid 0x5F54: Corrupted suffix pattern for heap block. 

    07FC1000 : Heap handle used in the call.
    08D07000 : Heap block involved in the operation.
    0000864E : Size of the heap block.
    08D0F64E : Corruption address.

=======================================
This verifier stop is not continuable. Process will be terminated 
when you use the `go' debugger command.

=======================================
TylerTheFox commented 6 years ago

I do not believe this is related to sleepy discord. Will close soon after further investigation. (looks like another library I use corrupting the stack).

I completely removed the sleepy discord subsystem and it still occurs.

yourWaifu commented 6 years ago

Or maybe it's my code, I don't know at this point. quit stops the timer that tells discord that the bot or user is online. It also disconnects the websocket that is connected to Discord. It then calls onQuit.

TylerTheFox commented 6 years ago

I'm not entirely sure whats going on i'm going to have to go read the C++ standard for virtual functions. CRT bug? I'm calling a virtual function that is literally empty and it crashes. It only occurs in the code that handles telling sleepy discord to quit.

image

I wonder if its because i'm calling a virtual function on a separate thread?

TylerTheFox commented 6 years ago

Well the quit issue was both our codes fault. I'll continue my theory on whats occurring with that in #81