-
Notifications
You must be signed in to change notification settings - Fork 22
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Crash on beginning certain streams #73
Comments
I have seen this bug a few times, but could not reproduce it now. The fix I have just pushed hopefully fixes the problem (a similar change fixed a similar bug a while ago), but I'm not sure. Please check if the crash is gone now. |
Thanks for the update. It still crashes as before. Here is the backtrace from the crash on the most recent build:
|
Sigh. OK, I still can't reproduce it. When you do, please type in gdb: |
Exactly what I have been doing today (works every time) Hit Enter/start on the France Inter stream, then hit Tab to switch windows. I was getting the same crash in other contexts, but I can't recall them at the moment.
|
I found it: a
I always thought canceled timers would still be invoked, but with Lines 26 to 29 in 6394fa5
But that's not enough. Timers which are canceled "too late" will be invoked without an error condition, as the Boost documentation says. |
This is ncmpc 0.38. I pulled from git after commit fb34258. I can reliably reproduce by loading https://direct.radiofrance.fr/live/franceinter-midfi.mp3. I was unable to reproduce over SSH in a reasonable sized window, but it crashes on a very small screen (a 20x9 xterm) with high consistency.
--Backtrace follows--
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1 0xb6bc2230 in __GI_abort () at abort.c:79
#2 0xb6bcfbb8 in __assert_fail_base (fmt=0xb6cd66b0 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n",
assertion=0x98f14 "basic.IsDefined()", assertion@entry=0xb6f69cb0 "\001", file=0x98edc "../src/hscroll.cxx",
file@entry=0x990f4 <hscroll::Paint() const::PRETTY_FUNCTION> "void hscroll::Paint() const", line=66,
line@entry=3066914480,
function=function@entry=0x990f4 <hscroll::Paint() const::PRETTY_FUNCTION> "void hscroll::Paint() const")
at assert.c:92
#3 0xb6bcfc6c in __GI___assert_fail (assertion=0xb6f69cb0 "\001",
file=0x990f4 <hscroll::Paint() const::PRETTY_FUNCTION> "void hscroll::Paint() const", line=3066914480,
function=0x990f4 <hscroll::Paint() const::PRETTY_FUNCTION> "void hscroll::Paint() const") at assert.c:101
#4 0x00065b54 in hscroll::Paint (this=0xbee09390) at ../src/hscroll.cxx:66
#5 0x00065fcc in hscroll::TimerCallback (this=0xbee09390, error=...) at ../src/hscroll.cxx:32
#6 0x00066fc4 in std::__invoke_impl<void, void (hscroll::&)(boost::system::error_code const&) noexcept, hscroll&, boost::system::error_code const&>(std::__invoke_memfun_deref, void (hscroll::&)(boost::system::error_code const&) noexcept, hscroll&, boost::system::error_code const&) (__f=
@0xbee09070: (void (hscroll::)(class hscroll * const, const class boost::system::error_code &)) 0x65f94 <hscroll::TimerCallback(boost::system::error_code const&)>, __t=@0xbee09078: 0xbee09390, __args#0=...)
at /usr/include/c++/8/bits/invoke.h:73
#7 0x00066ef8 in std::__invoke<void (hscroll::&)(boost::system::error_code const&) noexcept, hscroll*&, boost::system::error_code const&>(void (hscroll::&)(boost::system::error_code const&) noexcept, hscroll&, boost::system::error_code const&) (__fn=
@0xbee09070: (void (hscroll::)(class hscroll * const, const class boost::system::error_code &)) 0x65f94 <hscroll::TimerCallback(boost::system::error_code const&)>, __args#0=@0xbee09078: 0xbee09390, __args#1=...)
at /usr/include/c++/8/bits/invoke.h:95
#8 0x00066dd4 in std::_Bind<void (hscroll::(hscroll*, std::_Placeholder<1>))(boost::system::error_code const&) noexcept>::__call<void, boost::system::error_code const&, 0u, 1u>(std::tuple<boost::system::error_code const&>&&, std::_Index_tuple<0u, 1u>) (this=0xbee09070, __args=...) at /usr/include/c++/8/functional:400
#9 0x00066d50 in std::_Bind<void (hscroll::(hscroll, std::_Placeholder<1>))(boost::system::error_code const&) noexcept>::operator()<boost::system::error_code const&, void>(boost::system::error_code const&) (this=0xbee09070,
__args#0=...) at /usr/include/c++/8/functional:484
#10 0x00066d00 in boost::asio::detail::binder1<std::_Bind<void (hscroll::(hscroll, std::_Placeholder<1>))(boost::system::error_code const&) noexcept>, boost::system::error_code>::operator()() (this=0xbee09070)
at /usr/include/boost/asio/detail/bind_handler.hpp:65
#11 0x00066cc4 in boost::asio::asio_handler_invoke<boost::asio::detail::binder1<std::_Bind<void (hscroll::(hscroll, std::_Placeholder<1>))(boost::system::error_code const&) noexcept>, boost::system::error_code> >(boost::asio::detail::binder1<std::_Bind<void (hscroll::(hscroll, std::_Placeholder<1>))(boost::system::error_code const&) noexcept>, boost::system::error_code>&, ...) (function=...) at /usr/include/boost/asio/handler_invoke_hook.hpp:69
#12 0x00066ca4 in boost_asio_handler_invoke_helpers::invoke<boost::asio::detail::binder1<std::_Bind<void (hscroll::(hscroll, std::_Placeholder<1>))(boost::system::error_code const&) noexcept>, boost::system::error_code>, std::_Bind<void (hscroll::(hscroll, std::_Placeholder<1>))(boost::system::error_code const&) noexcept> >(boost::asio::detail::binder1<std::_Bind<void (hscroll::(hscroll, std::_Placeholder<1>))(boost::system::error_code const&) noexcept>, boost::system::error_code>&, std::_Bind<void (hscroll::(hscroll, std::_Placeholder<1>))(boost::system::error_code const&) noexcept>&) (function=..., context=...) at /usr/include/boost/asio/detail/handler_invoke_helpers.hpp:37
#13 0x00066b24 in boost::asio::detail::handler_work<std::_Bind<void (hscroll::(hscroll, std::_Placeholder<1>))(boost::system::error_code const&) noexcept>, boost::asio::system_executor>::complete<boost::asio::detail::binder1<std::_Bind<void (hscroll::(hscroll, std::_Placeholder<1>))(boost::system::error_code const&) noexcept>, boost::system::error_code> >(boost::asio::detail::binder1<std::_Bind<void (hscroll::(hscroll, std::_Placeholder<1>))(boost::system::error_code const&) noexcept>, boost::system::error_code>&, std::_Bind<void (hscroll::(hscroll, std::_Placeholder<1>))(boost::system::error_code const&) noexcept>&) (this=0xbee09084, function=..., handler=...)
at /usr/include/boost/asio/detail/handler_work.hpp:82
#14 0x0006680c in boost::asio::detail::wait_handler<std::_Bind<void (hscroll::(hscroll, std::_Placeholder<1>))(boost::system::error_code const&) noexcept> >::do_complete(void*, boost::asio::detail::scheduler_operation*, boost::system::error_code const&, unsigned int) (owner=0x1964c90, base=0x196c450)
at /usr/include/boost/asio/detail/wait_handler.hpp:72
#15 0x00024a78 in boost::asio::detail::scheduler_operation::complete (this=0x196c450, owner=0x1964c90, ec=...,
bytes_transferred=0) at /usr/include/boost/asio/detail/scheduler_operation.hpp:40
#16 0x00027ed8 in boost::asio::detail::scheduler::do_run_one (this=0x1964c90, lock=..., this_thread=..., ec=...) at /usr/include/boost/asio/detail/impl/scheduler.ipp:401
#17 0x00027b00 in boost::asio::detail::scheduler::run (this=0x1964c90, ec=...) at /usr/include/boost/asio/detail/impl/scheduler.ipp:154
#18 0x0002814c in boost::asio::io_context::run (this=0xbee09190) at /usr/include/boost/asio/impl/io_context.ipp:62
#19 0x00023bc4 in Instance::Run (this=0xbee09190) at ../src/Instance.cxx:102
#20 0x00018e84 in main (argc=1, argv=0xbee09664) at ../src/Main.cxx:360
The text was updated successfully, but these errors were encountered: