chown2 / lunaticvibesf

Lunatic Vibes F - a BMS client, a Lunatic Rave 2 clone
MIT License
8 stars 0 forks source link

Arena client: crash on lobby exiting #43

Closed chown2 closed 6 months ago

chown2 commented 6 months ago
/path/to/lunaticvibesf/src/game/arena/arena_client.cpp:191:23: runtime error: member call on null pointer of type 'struct element_type'
/path/to/lunaticvibesf/build/vcpkg_installed/x64-linux/include/boost/asio/basic_datagram_socket.hpp:1281:14: runtime error: member access within null pointer of type 'struct basic_datagram_socket'
/path/to/lunaticvibesf/build/vcpkg_installed/x64-linux/include/boost/asio/basic_datagram_socket.hpp:1281:31: runtime error: member call on null pointer of type 'struct io_object_impl'
/path/to/lunaticvibesf/build/vcpkg_installed/x64-linux/include/boost/asio/detail/io_object_impl.hpp:121:13: runtime error: member access within null pointer of type 'struct io_object_impl'
AddressSanitizer:DEADLYSIGNAL
=================================================================
==95600==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000 (pc 0x62c74034409a bp 0x795d341fcaa0 sp 0x795d341fca80 T19)
==95600==The signal is caused by a READ memory access.
==95600==Hint: address points to the zero page.
2024-04-11 23:39:25.291 DEBUG [95906] ["asynclooper.cpp"@192] [Looper] ArenaClient: End 60/s
    #0 0x62c74034409a in boost::asio::detail::io_object_impl<boost::asio::detail::reactive_socket_service<boost::asio::ip::udp>, boost::asio::any_io_executor>::get_service() /path/to/lunaticvibesf/build/vcpkg_installed/x64-linux/include/boost/asio/detail/io_object_impl.hpp:121
    #1 0x62c740335701 in void boost::asio::basic_datagram_socket<boost::asio::ip::udp, boost::asio::any_io_executor>::initiate_async_send_to::operator()<std::_Bind<void (*(std::shared_ptr<std::vector<unsigned char, std::allocator<unsigned char> > >, std::_Placeholder<1>, std::_Placeholder<2>))(std::shared_ptr<std::vector<unsigned char, std::allocator<unsigned char> > > const&, boost::system::error_code const&, unsigned long)>, boost::asio::mutable_buffers_1>(std::_Bind<void (*(std::shared_ptr<std::vector<unsigned char, std::allocator<unsigned char> > >, std::_Placeholder<1>, std::_Placeholder<2>))(std::shared_ptr<std::vector<unsigned char, std::allocator<unsigned char> > > const&, boost::system::error_code const&, unsigned long)>&&, boost::asio::mutable_buffers_1 const&, boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const&, int) const /path/to/lunaticvibesf/build/vcpkg_installed/x64-linux/include/boost/asio/basic_datagram_socket.hpp:1281
    #2 0x62c74032103d in void boost::asio::detail::completion_handler_async_result<std::_Bind<void (*(std::shared_ptr<std::vector<unsigned char, std::allocator<unsigned char> > >, std::_Placeholder<1>, std::_Placeholder<2>))(std::shared_ptr<std::vector<unsigned char, std::allocator<unsigned char> > > const&, boost::system::error_code const&, unsigned long)>, void (boost::system::error_code, unsigned long)>::initiate<boost::asio::basic_datagram_socket<boost::asio::ip::udp, boost::asio::any_io_executor>::initiate_async_send_to, std::_Bind<void (*(std::shared_ptr<std::vector<unsigned char, std::allocator<unsigned char> > >, std::_Placeholder<1>, std::_Placeholder<2>))(std::shared_ptr<std::vector<unsigned char, std::allocator<unsigned char> > > const&, boost::system::error_code const&, unsigned long)>, boost::asio::mutable_buffers_1 const&, boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const&, int>(boost::asio::basic_datagram_socket<boost::asio::ip::udp, boost::asio::any_io_executor>::initiate_async_send_to&&, std::_Bind<void (*(std::shared_ptr<std::vector<unsigned char, std::allocator<unsigned char> > >, std::_Placeholder<1>, std::_Placeholder<2>))(std::shared_ptr<std::vector<unsigned char, std::allocator<unsigned char> > > const&, boost::system::error_code const&, unsigned long)>&&, boost::asio::mutable_buffers_1 const&, boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const&, int&&) /path/to/lunaticvibesf/build/vcpkg_installed/x64-linux/include/boost/asio/async_result.hpp:273
    #3 0x62c740310163 in boost::asio::constraint<boost::asio::detail::async_result_has_initiate_memfn<std::_Bind<void (*(std::shared_ptr<std::vector<unsigned char, std::allocator<unsigned char> > >, std::_Placeholder<1>, std::_Placeholder<2>))(std::shared_ptr<std::vector<unsigned char, std::allocator<unsigned char> > > const&, boost::system::error_code const&, unsigned long)>, void (boost::system::error_code, unsigned long)>::value, decltype (boost::asio::async_result<std::decay<std::_Bind<void (*(std::shared_ptr<std::vector<unsigned char, std::allocator<unsigned char> > >, std::_Placeholder<1>, std::_Placeholder<2>))(std::shared_ptr<std::vector<unsigned char, std::allocator<unsigned char> > > const&, boost::system::error_code const&, unsigned long)> >::type, void (boost::system::error_code, unsigned long)>::initiate(static_cast<boost::asio::basic_datagram_socket<boost::asio::ip::udp, boost::asio::any_io_executor>::initiate_async_send_to&&>({parm#1}), static_cast<std::_Bind<void (*(std::shared_ptr<std::vector<unsigned char, std::allocator<unsigned char> > >, std::_Placeholder<1>, std::_Placeholder<2>))(std::shared_ptr<std::vector<unsigned char, std::allocator<unsigned char> > > const&, boost::system::error_code const&, unsigned long)>&&>({parm#2}), static_cast<boost::asio::mutable_buffers_1 const&>({parm#3}), static_cast<boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const&>({parm#3}), static_cast<int&&>({parm#3})))>::type boost::asio::async_initiate<std::_Bind<void (*(std::shared_ptr<std::vector<unsigned char, std::allocator<unsigned char> > >, std::_Placeholder<1>, std::_Placeholder<2>))(std::shared_ptr<std::vector<unsigned char, std::allocator<unsigned char> > > const&, boost::system::error_code const&, unsigned long)>, void (boost::system::error_code, unsigned long), boost::asio::basic_datagram_socket<boost::asio::ip::udp, boost::asio::any_io_executor>::initiate_async_send_to, boost::asio::mutable_buffers_1 const&, boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const&, int>(boost::asio::basic_datagram_socket<boost::asio::ip::udp, boost::asio::any_io_executor>::initiate_async_send_to&&, boost::asio::type_identity<std::_Bind<void (*(std::shared_ptr<std::vector<unsigned char, std::allocator<unsigned char> > >, std::_Placeholder<1>, std::_Placeholder<2>))(std::shared_ptr<std::vector<unsigned char, std::allocator<unsigned char> > > const&, boost::system::error_code const&, unsigned long)> >::type&, boost::asio::mutable_buffers_1 const&, boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const&, int&&) /path/to/lunaticvibesf/build/vcpkg_installed/x64-linux/include/boost/asio/async_result.hpp:570
    #4 0x62c740302c3f in decltype ((async_initiate<std::_Bind<void (*(std::shared_ptr<std::vector<unsigned char, std::allocator<unsigned char> > >, std::_Placeholder<1>, std::_Placeholder<2>))(std::shared_ptr<std::vector<unsigned char, std::allocator<unsigned char> > > const&, boost::system::error_code const&, unsigned long)>, void (boost::system::error_code, unsigned long)>)((std::declval<boost::asio::basic_datagram_socket<boost::asio::ip::udp, boost::asio::any_io_executor>::initiate_async_send_to>)(), {parm#3}, {parm#1}, {parm#2}, (int)(0))) boost::asio::basic_datagram_socket<boost::asio::ip::udp, boost::asio::any_io_executor>::async_send_to<boost::asio::mutable_buffers_1, std::_Bind<void (*(std::shared_ptr<std::vector<unsigned char, std::allocator<unsigned char> > >, std::_Placeholder<1>, std::_Placeholder<2>))(std::shared_ptr<std::vector<unsigned char, std::allocator<unsigned char> > > const&, boost::system::error_code const&, unsigned long)> >(boost::asio::mutable_buffers_1 const&, boost::asio::ip::basic_endpoint<boost::asio::ip::udp> const&, std::_Bind<void (*(std::shared_ptr<std::vector<unsigned char, std::allocator<unsigned char> > >, std::_Placeholder<1>, std::_Placeholder<2>))(std::shared_ptr<std::vector<unsigned char, std::allocator<unsigned char> > > const&, boost::system::error_code const&, unsigned long)>&&) /path/to/lunaticvibesf/build/vcpkg_installed/x64-linux/include/boost/asio/basic_datagram_socket.hpp:710
    #5 0x62c7403a152e in ArenaClient::requestChart(Hash<16ul> const&) /path/to/lunaticvibesf/src/game/arena/arena_client.cpp:191
    #6 0x62c73fdd2a93 in SceneSelect::navigateBack(lunaticvibes::Time const&, bool) /path/to/lunaticvibesf/src/game/scene/scene_select.cpp:2582
    #7 0x62c73fdf3b5d in SceneSelect::arenaLeaveLobby() /path/to/lunaticvibesf/src/game/scene/scene_select.cpp:3387
    #8 0x62c73fdf2ba5 in SceneSelect::arenaCommand() /path/to/lunaticvibesf/src/game/scene/scene_select.cpp:3332
    #9 0x62c73fdacde8 in SceneSelect::inputGamePressSelect(std::bitset<67ul>&, lunaticvibes::Time const&) /path/to/lunaticvibesf/src/game/scene/scene_select.cpp:1563
    #10 0x62c73fda36f1 in SceneSelect::inputGamePress(std::bitset<67ul>&, lunaticvibes::Time const&) /path/to/lunaticvibesf/src/game/scene/scene_select.cpp:1224
    #11 0x62c73fe507a9 in void std::__invoke_impl<void, void (SceneSelect::*&)(std::bitset<67ul>&, lunaticvibes::Time const&), SceneSelect*&, std::bitset<67ul>&, lunaticvibes::Time const&>(std::__invoke_memfun_deref, void (SceneSelect::*&)(std::bitset<67ul>&, lunaticvibes::Time const&), SceneSelect*&, std::bitset<67ul>&, lunaticvibes::Time const&) /usr/include/c++/13.2.1/bits/invoke.h:74
    #12 0x62c73fe4db0a in std::__invoke_result<void (SceneSelect::*&)(std::bitset<67ul>&, lunaticvibes::Time const&), SceneSelect*&, std::bitset<67ul>&, lunaticvibes::Time const&>::type std::__invoke<void (SceneSelect::*&)(std::bitset<67ul>&, lunaticvibes::Time const&), SceneSelect*&, std::bitset<67ul>&, lunaticvibes::Time const&>(void (SceneSelect::*&)(std::bitset<67ul>&, lunaticvibes::Time const&), SceneSelect*&, std::bitset<67ul>&, lunaticvibes::Time const&) /usr/include/c++/13.2.1/bits/invoke.h:96
    #13 0x62c73fe4ab32 in void std::_Bind<void (SceneSelect::*(SceneSelect*, std::_Placeholder<1>, std::_Placeholder<2>))(std::bitset<67ul>&, lunaticvibes::Time const&)>::__call<void, std::bitset<67ul>&, lunaticvibes::Time const&, 0ul, 1ul, 2ul>(std::tuple<std::bitset<67ul>&, lunaticvibes::Time const&>&&, std::_Index_tuple<0ul, 1ul, 2ul>) /usr/include/c++/13.2.1/functional:506
    #14 0x62c73fe445a4 in void std::_Bind<void (SceneSelect::*(SceneSelect*, std::_Placeholder<1>, std::_Placeholder<2>))(std::bitset<67ul>&, lunaticvibes::Time const&)>::operator()<std::bitset<67ul>&, lunaticvibes::Time const&, void>(std::bitset<67ul>&, lunaticvibes::Time const&) /usr/include/c++/13.2.1/functional:591
    #15 0x62c73fe3c07d in void std::__invoke_impl<void, std::_Bind<void (SceneSelect::*(SceneSelect*, std::_Placeholder<1>, std::_Placeholder<2>))(std::bitset<67ul>&, lunaticvibes::Time const&)>&, std::bitset<67ul>&, lunaticvibes::Time const&>(std::__invoke_other, std::_Bind<void (SceneSelect::*(SceneSelect*, std::_Placeholder<1>, std::_Placeholder<2>))(std::bitset<67ul>&, lunaticvibes::Time const&)>&, std::bitset<67ul>&, lunaticvibes::Time const&) /usr/include/c++/13.2.1/bits/invoke.h:61
    #16 0x62c73fe303d8 in std::enable_if<is_invocable_r_v<void, std::_Bind<void (SceneSelect::*(SceneSelect*, std::_Placeholder<1>, std::_Placeholder<2>))(std::bitset<67ul>&, lunaticvibes::Time const&)>&, std::bitset<67ul>&, lunaticvibes::Time const&>, void>::type std::__invoke_r<void, std::_Bind<void (SceneSelect::*(SceneSelect*, std::_Placeholder<1>, std::_Placeholder<2>))(std::bitset<67ul>&, lunaticvibes::Time const&)>&, std::bitset<67ul>&, lunaticvibes::Time const&>(std::_Bind<void (SceneSelect::*(SceneSelect*, std::_Placeholder<1>, std::_Placeholder<2>))(std::bitset<67ul>&, lunaticvibes::Time const&)>&, std::bitset<67ul>&, lunaticvibes::Time const&) /usr/include/c++/13.2.1/bits/invoke.h:111
    #17 0x62c73fe22ca6 in std::_Function_handler<void (std::bitset<67ul>&, lunaticvibes::Time const&), std::_Bind<void (SceneSelect::*(SceneSelect*, std::_Placeholder<1>, std::_Placeholder<2>))(std::bitset<67ul>&, lunaticvibes::Time const&)> >::_M_invoke(std::_Any_data const&, std::bitset<67ul>&, lunaticvibes::Time const&) /usr/include/c++/13.2.1/bits/std_function.h:290
    #18 0x62c7405dbc6e in std::function<void (std::bitset<67ul>&, lunaticvibes::Time const&)>::operator()(std::bitset<67ul>&, lunaticvibes::Time const&) const /usr/include/c++/13.2.1/bits/std_function.h:591
    #19 0x62c7405d19a2 in InputWrapper::_loop() /path/to/lunaticvibesf/src/game/input/input_wrapper.cpp:235
    #20 0x62c740606acd in void std::__invoke_impl<void, void (InputWrapper::*&)(), InputWrapper*&>(std::__invoke_memfun_deref, void (InputWrapper::*&)(), InputWrapper*&) /usr/include/c++/13.2.1/bits/invoke.h:74
    #21 0x62c74060617c in std::__invoke_result<void (InputWrapper::*&)(), InputWrapper*&>::type std::__invoke<void (InputWrapper::*&)(), InputWrapper*&>(void (InputWrapper::*&)(), InputWrapper*&) /usr/include/c++/13.2.1/bits/invoke.h:96
    #22 0x62c7406056ac in void std::_Bind<void (InputWrapper::*(InputWrapper*))()>::__call<void, , 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) /usr/include/c++/13.2.1/functional:506
    #23 0x62c740601f98 in void std::_Bind<void (InputWrapper::*(InputWrapper*))()>::operator()<, void>() /usr/include/c++/13.2.1/functional:591
    #24 0x62c7405f7f6e in void std::__invoke_impl<void, std::_Bind<void (InputWrapper::*(InputWrapper*))()>&>(std::__invoke_other, std::_Bind<void (InputWrapper::*(InputWrapper*))()>&) /usr/include/c++/13.2.1/bits/invoke.h:61
    #25 0x62c7405e9193 in std::enable_if<is_invocable_r_v<void, std::_Bind<void (InputWrapper::*(InputWrapper*))()>&>, void>::type std::__invoke_r<void, std::_Bind<void (InputWrapper::*(InputWrapper*))()>&>(std::_Bind<void (InputWrapper::*(InputWrapper*))()>&) /usr/include/c++/13.2.1/bits/invoke.h:111
    #26 0x62c7405e0019 in std::_Function_handler<void (), std::_Bind<void (InputWrapper::*(InputWrapper*))()> >::_M_invoke(std::_Any_data const&) /usr/include/c++/13.2.1/bits/std_function.h:290
    #27 0x62c73f8d62c0 in std::function<void ()>::operator()() const /usr/include/c++/13.2.1/bits/std_function.h:591
    #28 0x62c740a92157 in AsyncLooper::run() /path/to/lunaticvibesf/src/common/asynclooper.cpp:63
    #29 0x62c740a93485 in AsyncLooper::_loopWithSleep() /path/to/lunaticvibesf/src/common/asynclooper.cpp:186
    #30 0x62c740a96952 in void std::__invoke_impl<void, void (AsyncLooper::*)(), AsyncLooper*>(std::__invoke_memfun_deref, void (AsyncLooper::*&&)(), AsyncLooper*&&) /usr/include/c++/13.2.1/bits/invoke.h:74
    #31 0x62c740a9646a in std::__invoke_result<void (AsyncLooper::*)(), AsyncLooper*>::type std::__invoke<void (AsyncLooper::*)(), AsyncLooper*>(void (AsyncLooper::*&&)(), AsyncLooper*&&) /usr/include/c++/13.2.1/bits/invoke.h:96
    #32 0x62c740a96211 in void std::thread::_Invoker<std::tuple<void (AsyncLooper::*)(), AsyncLooper*> >::_M_invoke<0ul, 1ul>(std::_Index_tuple<0ul, 1ul>) /usr/include/c++/13.2.1/bits/std_thread.h:292
    #33 0x62c740a96091 in std::thread::_Invoker<std::tuple<void (AsyncLooper::*)(), AsyncLooper*> >::operator()() /usr/include/c++/13.2.1/bits/std_thread.h:299
    #34 0x62c740a96049 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (AsyncLooper::*)(), AsyncLooper*> > >::_M_run() /usr/include/c++/13.2.1/bits/std_thread.h:244
    #35 0x795d60ce1942 in execute_native_thread_routine /usr/src/debug/gcc/gcc/libstdc++-v3/src/c++11/thread.cc:104
    #36 0x795d60aa9559  (/usr/lib/libc.so.6+0x8b559) (BuildId: c0caa0b7709d3369ee575fcd7d7d0b0fc48733af)
    #37 0x795d60b26a3b  (/usr/lib/libc.so.6+0x108a3b) (BuildId: c0caa0b7709d3369ee575fcd7d7d0b0fc48733af)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV /path/to/lunaticvibesf/build/vcpkg_installed/x64-linux/include/boost/asio/detail/io_object_impl.hpp:121 in boost::asio::detail::io_object_impl<boost::asio::detail::reactive_socket_service<boost::asio::ip::udp>, boost::asio::any_io_executor>::get_service()
Thread T19 (InputLoop) created by T0 (LunaticVibesF) here:
    #0 0x795d6144a497 in __interceptor_pthread_create /usr/src/debug/gcc/gcc/libsanitizer/asan/asan_interceptors.cpp:208
    #1 0x795d60ce1a29 in __gthread_create /usr/src/debug/gcc/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:663
    #2 0x795d60ce1a29 in std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /usr/src/debug/gcc/gcc/libstdc++-v3/src/c++11/thread.cc:172
    #3 0x62c740a94b3e in AsyncLooper::loopStart() /path/to/lunaticvibesf/src/common/asynclooper.cpp:199
    #4 0x62c73f85a6f3 in SceneBase::inputLoopStart() (/path/to/lunaticvibesf/build/bin/Debug/LunaticVibesF+0x38806f3) (BuildId: cfb8701d6dcd47c83bfcac01d590869c4c23b790)
    #5 0x62c73f83ca3a in mainLoop() /path/to/lunaticvibesf/src/game/game.cpp:383
    #6 0x62c73f83a1a0 in main /path/to/lunaticvibesf/src/game/game.cpp:280
    #7 0x795d60a43ccf  (/usr/lib/libc.so.6+0x25ccf) (BuildId: c0caa0b7709d3369ee575fcd7d7d0b0fc48733af)