Opened 5 years ago

Closed 5 years ago

#805 closed Bug Report (fixed)

ingen segfaults on exit

Reported by: agraef Owned by: dave
Priority: major Component: Ingen
Keywords: Cc:


This isn't 100% reproducible, but quite often ingen, if I load a patch with it and then immediately quit ingen, segfaults in main() at main.cpp:248 (gdb backtrace attached). Sometimes it also bails out with an assertion like this:

ingen: /usr/include/boost/intrusive/detail/utilities.hpp:356: void boost::intrusive::detail::destructor_impl(Hook&, boost::intrusive::detail::link_dispatch<(boost::intrusive::link_mode_type)1u>) [with Hook = boost::intrusive::detail::generic_hook<boost::intrusive::get_list_node_algo<void*>, boost::intrusive::default_tag, (boost::intrusive::link_mode_type)1u, 1>]: Assertion `!hook.is_linked()' failed.

In either case, commenting out the 'delete world;' at main.cpp:248 fixes the problem. It seems that there's some double deallocation going on there, but I haven't looked into this very deeply.

I've been able to reproduce this issue fairly reliably with the attached patch, created with the latest ingen revision.

Attachments (3)

bt.log (11.8 KB) - added by agraef 5 years ago.
gdb backtrace
test.ingen.tar.gz (891 bytes) - added by agraef 5 years ago.
tarball with test patch
bt-disconnect.log (9.9 KB) - added by agraef 5 years ago.
gdb backtrace for disconnect segfault

Download all attachments as: .zip

Change History (5)

Changed 5 years ago by agraef

gdb backtrace

Changed 5 years ago by agraef

tarball with test patch

comment:1 Changed 5 years ago by agraef

Addendum: I don't know whether that's related, but I get a very similar segfault when _window_factory->clear() gets called in App::detach() at App.cpp:184. This is 100% reproducible for me. Simply open a patch (test.ingen from above will do) and disconnect the engine (Windows / Engine / Disconnect).

Also, when starting ingen -eg without a patch, the disconnect works, but then trying to reconnect gives the following assertion:

ingen: /usr/include/boost/smart_ptr/shared_ptr.hpp:418: T* boost::shared_ptr< <template-parameter-1-1> >::operator->() const [with T = Ingen::ServerInterface]: Assertion `px != 0' failed.

BTW, I'm running all this on Ubuntu 11.04 (x86_64) with the latest lv2 and ingen + support libraries from svn. Jack is version 0.121.3.

Changed 5 years ago by agraef

gdb backtrace for disconnect segfault

comment:2 Changed 5 years ago by dave

  • Resolution set to fixed
  • Status changed from new to closed

Fixed in r3942.

Note: See TracTickets for help on using tickets.