View Issue Details

IDProjectCategoryView StatusLast Update
0007434ardourbugspublic2020-04-19 20:18
ReporterOnkelDead Assigned Toovenwerks  
PrioritynormalSeveritymajorReproducibilityalways
Status closedResolutionfixed 
Platformany 
Product Version5.10 
Summary0007434: Ardour crashes during OSC set_surface
DescriptionIf a OSC client connects to a session which contains a VCA strip, Ardour crashes.

ardour-5.10.381: /usr/include/boost/smart_ptr/shared_ptr.hpp:648: typename boost::detail::sp_member_access<T>::type boost::shared_ptr<T>::operator->() const [with T = ARDOUR::SoloIsolateControl; typename boost::detail::sp_member_access<T>::type = ARDOUR::SoloIsolateControl*]: Assertion `px != 0' failed.

(gdb) backtrace
#0 0x00007fffef117428 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54
0000001 0x00007fffef11902a in __GI_abort () at abort.c:89
#2 0x00007fffef10fbd7 in __assert_fail_base (fmt=<optimized out>, assertion=assertion@entry=0x13e6e34 "px != 0", file=file@entry=0x13e6e08 "/usr/include/boost/smart_ptr/shared_ptr.hpp", line=line@entry=648,
    function=function@entry=0x13e7180 <boost::shared_ptr<ARDOUR::SoloIsolateControl>::operator->() const::__PRETTY_FUNCTION__> "typename boost::detail::sp_member_access<T>::type boost::shared_ptr<T>::operator->() const [with T = ARDOUR::SoloIsolateControl; typename boost::detail::sp_member_access<T>::type = ARDOUR::SoloIsolate"...) at assert.c:92
#3 0x00007fffef10fc82 in __GI___assert_fail (assertion=0x13e6e34 "px != 0", file=0x13e6e08 "/usr/include/boost/smart_ptr/shared_ptr.hpp", line=648,
    function=0x13e7180 <boost::shared_ptr<ARDOUR::SoloIsolateControl>::operator->() const::__PRETTY_FUNCTION__> "typename boost::detail::sp_member_access<T>::type boost::shared_ptr<T>::operator->() const [with T = ARDOUR::SoloIsolateControl; typename boost::detail::sp_member_access<T>::type = ARDOUR::SoloIsolate"...) at assert.c:101
0000004 0x000000000105d2b7 in boost::shared_ptr<ARDOUR::SoloIsolateControl>::operator-> (this=0x7fff83ffd9c0) at /usr/include/boost/smart_ptr/shared_ptr.hpp:648
0000005 0x00007fffdec72db5 in OSCRouteObserver::OSCRouteObserver (this=0x7fff780e8f40, s=..., ss=13, su=0x7fff780d2600) at ../libs/surfaces/osc/osc_route_observer.cc:64
#6 0x00007fffdec0c9d3 in ArdourSurface::OSC::listen_to_route (this=0x2bc81b0, strip=..., addr=0x7fff780d1ee0) at ../libs/surfaces/osc/osc.cc:720
#7 0x00007fffdec1205a in ArdourSurface::OSC::_set_bank (this=0x2bc81b0, bank_start=1, addr=0x7fff780d1ee0) at ../libs/surfaces/osc/osc.cc:1894
0000008 0x00007fffdec11b9c in ArdourSurface::OSC::set_bank (this=0x2bc81b0, bank_start=1, msg=0x7fff780b2050) at ../libs/surfaces/osc/osc.cc:1830
0000009 0x00007fffdec10a6d in ArdourSurface::OSC::set_surface (this=0x2bc81b0, b_size=0, strips=693, fb=9555, gm=1, se_size=0, pi_size=0, msg=0x7fff780b2050) at ../libs/surfaces/osc/osc.cc:1597
0000010 0x00007fffdec10520 in ArdourSurface::OSC::surface_parse (this=0x2bc81b0, path=0x7fff780d6400 "/set_surface", types=0x7fff780b20f1 "iiii", argv=0x7fff780d63d0, argc=4, msg=0x7fff780b2050) at ../libs/surfaces/osc/osc.cc:1500
0000011 0x00007fffdec0e864 in ArdourSurface::OSC::catchall (this=0x2bc81b0, path=0x7fff780d6400 "/set_surface", types=0x7fff780b20f1 "iiii", argv=0x7fff780d63d0, argc=4, msg=0x7fff780b2050) at ../libs/surfaces/osc/osc.cc:1068
0000012 0x00007fffdec0d506 in ArdourSurface::OSC::_catchall (path=0x7fff780d6400 "/set_surface", types=0x7fff780b20f1 "iiii", argv=0x7fff780d63d0, argc=4, data=0x7fff780b2050, user_data=0x2bc81b0) at ../libs/surfaces/osc/osc.cc:865
0000013 0x00007ffff0a86ede in dispatch_method (s=0x2bc8730, path=0x7fff780d6400 "/set_surface", msg=0x7fff780b2050, sock=-1) at server.c:1754
0000014 0x00007ffff0a86b57 in dispatch_data (s=0x2bc8730, data=0x7fff780d6400, size=40, sock=-1) at server.c:1678
#15 0x00007ffff0a862f1 in lo_server_recv (s=0x2bc8730) at server.c:1506
0000016 0x00007fffdec0c627 in ArdourSurface::OSC::osc_input_handler (this=0x2bc81b0, ioc=Glib::IO_IN, srv=0x2bc8730) at ../libs/surfaces/osc/osc.cc:654
#17 0x00007fffdec658a4 in sigc::bound_mem_functor2<bool, ArdourSurface::OSC, Glib::IOCondition, void*>::operator() (this=0x7fff780016e0, _A_a1=@0x7fff83ffe9b4: Glib::IO_IN, _A_a2=@0x7fff78001700: 0x2bc8730)
    at /usr/include/sigc++-2.0/sigc++/functors/mem_fun.h:1927
0000018 0x00007fffdec60c77 in sigc::adaptor_functor<sigc::bound_mem_functor2<bool, ArdourSurface::OSC, Glib::IOCondition, void*> >::operator()<Glib::IOCondition const&, void*&> (this=0x7fff780016d8, _A_arg1=@0x7fff83ffe9b4: Glib::IO_IN,
    _A_arg2=@0x7fff78001700: 0x2bc8730) at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:108
0000019 0x00007fffdec5ad56 in sigc::bind_functor<-1, sigc::bound_mem_functor2<bool, ArdourSurface::OSC, Glib::IOCondition, void*>, void*, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>::operator()<Glib::IOCondition const&> (this=0x7fff780016d0, _A_arg1=@0x7fff83ffe9b4: Glib::IO_IN) at /usr/include/sigc++-2.0/sigc++/adaptors/bind.h:1129
0000020 0x00007fffdec543ec in sigc::internal::slot_call1<sigc::bind_functor<-1, sigc::bound_mem_functor2<bool, ArdourSurface::OSC, Glib::IOCondition, void*>, void*, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>, bool, Glib::IOCondition>::call_it (rep=0x7fff780016a0, a_1=@0x7fff83ffe9b4: Glib::IO_IN) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:142
0000021 0x00007ffff3c51987 in Glib::IOSource::dispatch(sigc::slot_base*) () from /usr/lib/x86_64-linux-gnu/libglibmm-2.4.so.1
0000022 0x00007ffff3c5137f in Glib::Source::dispatch_vfunc(_GSource*, int (*)(void*), void*) () from /usr/lib/x86_64-linux-gnu/libglibmm-2.4.so.1
0000023 0x00007ffff36e404a in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#24 0x00007ffff36e43f0 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
0000025 0x00007ffff36e4712 in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
0000026 0x00007ffff43b5ed1 in BaseUI::main_thread (this=0x2bc8340) at ../libs/pbd/base_ui.cc:86
0000027 0x00007ffff43ba496 in sigc::bound_mem_functor0<void, BaseUI>::operator() (this=0x416c958) at /usr/include/sigc++-2.0/sigc++/functors/mem_fun.h:1787
0000028 0x00007ffff43ba0ea in sigc::adaptor_functor<sigc::bound_mem_functor0<void, BaseUI> >::operator() (this=0x416c950) at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:256
0000029 0x00007ffff43b9ad8 in sigc::internal::slot_call0<sigc::bound_mem_functor0<void, BaseUI>, void>::call_it (rep=0x416c920) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:108
0000030 0x00007ffff3c4919d in ?? () from /usr/lib/x86_64-linux-gnu/libglibmm-2.4.so.1
0000031 0x00007ffff370abb5 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
0000032 0x00007ffff08646ba in start_thread (arg=0x7fff83fff700) at pthread_create.c:333
0000033 0x00007fffef1e93dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
Additional InformationRoot cause seems to be, that a route observer on solo_isolate_control and solo_safe_control would be established, which do not make sense on VCA strips.
TagsNo tags attached.

Activities

ovenwerks

2017-07-31 02:13

reporter   ~0019935

Commit e94771a58 Should have fixed this problem. Please test. Thank you for your bug report

OnkelDead

2017-07-31 06:57

reporter   ~0019937

confirmed, works like a charm.

system

2020-04-19 20:18

developer   ~0023768

Issue has been closed automatically, by Trigger Close Plugin.
Feel free to re-open with additional information if you think the issue is not resolved.

Issue History

Date Modified Username Field Change
2017-07-30 12:24 OnkelDead New Issue
2017-07-31 02:13 ovenwerks Note Added: 0019935
2017-07-31 02:13 ovenwerks Status new => resolved
2017-07-31 02:13 ovenwerks Resolution open => fixed
2017-07-31 02:13 ovenwerks Assigned To => ovenwerks
2017-07-31 06:57 OnkelDead Note Added: 0019937
2020-04-19 20:18 system Note Added: 0023768
2020-04-19 20:18 system Status resolved => closed