|
From: Element G. <el...@el...> - 2016-07-06 07:13:18
|
Hello Aaron, Fixed several bugs related to the instrument soloing feature, including: - Assertion crash when deleting instrument zone which is currently solo - Negative object reference if a non-solo-able instrument is selected while in solo mode Hopefully that should make your life a little easier ;-) Let me know if you dig up any other bugs and thanks for helping track these down! Cheers. Element On Tue, Jul 5, 2016 at 2:58 PM, Element Green <el...@el...> wrote: > Ok, that one I can reproduce.. It looks like it occurred when you deleted > a preset zone which was currently in solo mode. I was not able to get it > to crash, if I first unsolo the instrument before deleting it. I'll look > in to this later today. > > Element > > > > On Tue, Jul 5, 2016 at 2:49 PM, Aaron Laws <dar...@gm...> wrote: > >> On Tue, Jul 5, 2016 at 4:15 PM, Element Green < >> el...@el...> wrote: >> >>> It looks like debugging may still be disabled since it isn't showing >>> line numbers. However, that information is helpful. Is that backtrace >>> from the latest git revision on the main branch? Please double check that >>> the libraries shown in /usr/local/lib64 look up to date (ls -l >>> /usr/local/lib64). >>> >>> It seems from that backtrace that the crash occurred in relation to a >>> zone being removed (can't tell if it is a preset or instrument zone). It >>> seems it got removed and then the crash occurs in the GtkTree related code, >>> which is probably still trying to access a deleted item or something. >>> >>> I just opened up that SoundFont and went on a deleting spree without ill >>> effect. If you could get a general idea of what kinds of operations you >>> are performing during a session, that might help me to reproduce it. >>> >>> It could be there is something happening with library versions or other >>> weirdness on your system though. If the backtraces seem fairly >>> inconsistent this could point more to this possibility. For example if >>> libInstPatch and Swami are out of sync, because of duplicate libraries >>> somewhere or something like that. If in doubt delete libInstPatch and >>> Swami from /usr/local and make clean/rebuild libInstPatch and Swami. >>> >>> When things get really random with memory corruption issues, I will >>> sometimes use valgrind (like so: valgrind --tool=memcheck >>> --trace-children=yes swami). This has the side effect of slowing the >>> application quite a bit, but it will often catch the first sign of memory >>> corruption occurring which is extremely helpful. I just did this and >>> didn't find anything real noteworthy until exiting the application, where >>> some invalid memory reads were occurring. Probably not related to what you >>> are experiencing though. >>> >>> Best regards, >>> >>> Element >>> >> >> I removed, built, and reinstalled libinst and swami from 77ea3e0 >> (currently master). I attempted to remove an instrument from a melodic >> preset and received the following error with backtrace: >> >> ** >> Gtk:ERROR:gtktreestore.c:522:gtk_tree_store_get_path: assertion failed: >> (G_NODE (iter->user_data)->parent != NULL) >> >> Thread 1 "swami" received signal SIGABRT, Aborted. >> 0x00007ffff64a6295 in raise () from /usr/lib/libc.so.6 >> (gdb) bt >> #0 0x00007ffff64a6295 in raise () from /usr/lib/libc.so.6 >> #1 0x00007ffff64a76da in abort () from /usr/lib/libc.so.6 >> #2 0x00007ffff6b5f485 in g_assertion_message () from >> /usr/lib/libglib-2.0.so.0 >> #3 0x00007ffff6b5f51a in g_assertion_message_expr () from >> /usr/lib/libglib-2.0.so.0 >> #4 0x00007ffff7520c10 in ?? () from /usr/lib/libgtk-x11-2.0.so.0 >> #5 0x00007ffff7522f98 in gtk_tree_store_set_valist () from >> /usr/lib/libgtk-x11-2.0.so.0 >> #6 0x00007ffff7523054 in gtk_tree_store_set () from >> /usr/lib/libgtk-x11-2.0.so.0 >> #7 0x00007ffff7bb6f6f in swamigui_tree_store_change (store=0x6b14c0, >> item=0x105eba0, label=label@entry=0x0, icon=0x7ffff7bc6bf6 >> "swamigui_inst") >> at /home/lawsa/source/swami/swami/src/swamigui/SwamiguiTreeStore.c:294 >> #8 0x00007ffff7ba3695 in swamigui_root_update_solo_item (root=root@entry=0x70c000, >> solo_item=0x0) >> at /home/lawsa/source/swami/swami/src/swamigui/SwamiguiRoot.c:1496 >> #9 0x00007ffff7ba381a in swamigui_root_cb_solo_item (root=0x70c000, >> pspec=<optimized out>, user_data=<optimized out>) >> at /home/lawsa/source/swami/swami/src/swamigui/SwamiguiRoot.c:1468 >> #10 0x00007ffff6e0efa5 in g_closure_invoke () from >> /usr/lib/libgobject-2.0.so.0 >> #11 0x00007ffff6e20fb2 in ?? () from /usr/lib/libgobject-2.0.so.0 >> #12 0x00007ffff6e29c1c in g_signal_emit_valist () from >> /usr/lib/libgobject-2.0.so.0 >> #13 0x00007ffff6e29fff in g_signal_emit () from >> /usr/lib/libgobject-2.0.so.0 >> #14 0x00007ffff6e133d4 in ?? () from /usr/lib/libgobject-2.0.so.0 >> #15 0x00007ffff6e12c76 in ?? () from /usr/lib/libgobject-2.0.so.0 >> #16 0x00007ffff6e17160 in g_object_set_property () from >> /usr/lib/libgobject-2.0.so.0 >> #17 0x00007ffff7957d21 in control_prop_set_value_method >> (control=0x6a08e0, event=0xffc780, value=0xffc798) >> at /home/lawsa/source/swami/swami/src/libswami/SwamiControlProp.c:492 >> #18 0x00007ffff7954e88 in swami_control_set_event_real (event=0xffc780, >> control=0x6a08e0) >> at /home/lawsa/source/swami/swami/src/libswami/SwamiControl.c:1539 >> #19 swami_control_set_event (control=control@entry=0x6a08e0, >> event=event@entry=0xffc780) >> at /home/lawsa/source/swami/swami/src/libswami/SwamiControl.c:1402 >> #20 0x00007ffff7956b7e in swami_control_transmit_value (control=0xacf820, >> value=<optimized out>) >> at /home/lawsa/source/swami/swami/src/libswami/SwamiControl.c:1670 >> #21 0x00007ffff7957960 in swami_control_prop_cb_notify (object=0xac3c50, >> pspec=0xad3e70, ctrlprop=0xacf820) >> at /home/lawsa/source/swami/swami/src/libswami/SwamiControlProp.c:765 >> #22 0x00007ffff6e0efa5 in g_closure_invoke () from >> /usr/lib/libgobject-2.0.so.0 >> #23 0x00007ffff6e20fb2 in ?? () from /usr/lib/libgobject-2.0.so.0 >> #24 0x00007ffff6e29c1c in g_signal_emit_valist () from >> /usr/lib/libgobject-2.0.so.0 >> #25 0x00007ffff6e29fff in g_signal_emit () from >> /usr/lib/libgobject-2.0.so.0 >> #26 0x00007ffff6e133d4 in ?? () from /usr/lib/libgobject-2.0.so.0 >> #27 0x00007ffff6e15891 in g_object_notify () from >> /usr/lib/libgobject-2.0.so.0 >> #28 0x00007ffff7bb30cf in swamigui_tree_update_selection (tree=0xac3c50) >> at /home/lawsa/source/swami/swami/src/swamigui/SwamiguiTree.c:371 >> #29 0x00007ffff6e0f1d4 in ?? () from /usr/lib/libgobject-2.0.so.0 >> #30 0x00007ffff6e2990d in g_signal_emit_valist () from >> /usr/lib/libgobject-2.0.so.0 >> #31 0x00007ffff6e2a4ab in g_signal_emit_by_name () from >> /usr/lib/libgobject-2.0.so.0 >> #32 0x00007ffff752bfd7 in ?? () from /usr/lib/libgtk-x11-2.0.so.0 >> #33 0x00007ffff6e0efa5 in g_closure_invoke () from >> /usr/lib/libgobject-2.0.so.0 >> #34 0x00007ffff6e20fb2 in ?? () from /usr/lib/libgobject-2.0.so.0 >> #35 0x00007ffff6e29c1c in g_signal_emit_valist () from >> /usr/lib/libgobject-2.0.so.0 >> #36 0x00007ffff6e29fff in g_signal_emit () from >> /usr/lib/libgobject-2.0.so.0 >> #37 0x00007ffff75231c0 in gtk_tree_store_remove () from >> /usr/lib/libgtk-x11-2.0.so.0 >> #38 0x00007ffff7bb7403 in swamigui_tree_store_remove (store=0x6b14c0, >> item=0x105eba0) >> at /home/lawsa/source/swami/swami/src/swamigui/SwamiguiTreeStore.c:319 >> #39 0x00007ffff7ba3c00 in ctrl_remove_set_func (control=0x710980, >> event=<optimized out>, value=<optimized out>) >> at /home/lawsa/source/swami/swami/src/swamigui/SwamiguiRoot.c:841 >> #40 0x00007ffff7954e88 in swami_control_set_event_real (event=0xf3a580, >> control=0x710980) >> at /home/lawsa/source/swami/swami/src/libswami/SwamiControl.c:1539 >> #41 swami_control_set_event (control=control@entry=0x710980, >> event=event@entry=0xf3a580) >> at /home/lawsa/source/swami/swami/src/libswami/SwamiControl.c:1402 >> #42 0x00007ffff79557ee in swami_control_transmit_event (control=0x69f860, >> event=0xf3a580) >> at /home/lawsa/source/swami/swami/src/libswami/SwamiControl.c:1765 >> #43 0x00007ffff79639db in container_remove_notify (container=<optimized >> out>, item=0x105eba0, user_data=<optimized out>) >> at /home/lawsa/source/swami/swami/src/libswami/libswami.c:223 >> #44 0x00007ffff68407f5 in ipatch_container_remove_notify () from >> /usr/local/lib64/libinstpatch-1.0.so.0 >> #45 0x00007ffff683f2ab in ipatch_container_remove () from >> /usr/local/lib64/libinstpatch-1.0.so.0 >> #46 0x00007ffff6864a30 in ipatch_item_item_remove_full () from >> /usr/local/lib64/libinstpatch-1.0.so.0 >> #47 0x00007ffff689cc12 in ipatch_sf2_zone_item_remove_full () from >> /usr/local/lib64/libinstpatch-1.0.so.0 >> #48 0x00007ffff6865aba in ipatch_item_real_remove_full () from >> /usr/local/lib64/libinstpatch-1.0.so.0 >> #49 0x00007ffff68659d6 in ipatch_item_remove () from >> /usr/local/lib64/libinstpatch-1.0.so.0 >> #50 0x00007ffff7bba3a2 in swamigui_delete_items (item_list=<optimized >> out>) at /home/lawsa/source/swami/swami/src/swamigui/patch_funcs.c:551 >> #51 0x00007ffff7b93d28 in swamigui_item_menu_callback_activate >> (mitem=<optimized out>, user_data=0x0) >> at /home/lawsa/source/swami/swami/src/swamigui/SwamiguiItemMenu.c:474 >> #52 0x00007ffff6e0efa5 in g_closure_invoke () from >> /usr/lib/libgobject-2.0.so.0 >> #53 0x00007ffff6e20fb2 in ?? () from /usr/lib/libgobject-2.0.so.0 >> #54 0x00007ffff6e29c1c in g_signal_emit_valist () from >> /usr/lib/libgobject-2.0.so.0 >> #55 0x00007ffff6e29fff in g_signal_emit () from >> /usr/lib/libgobject-2.0.so.0 >> #56 0x00007ffff754f06e in gtk_widget_activate () from >> /usr/lib/libgtk-x11-2.0.so.0 >> #57 0x00007ffff744a6dd in gtk_menu_shell_activate_item () from >> /usr/lib/libgtk-x11-2.0.so.0 >> #58 0x00007ffff744aa46 in ?? () from /usr/lib/libgtk-x11-2.0.so.0 >> #59 0x00007ffff743891c in ?? () from /usr/lib/libgtk-x11-2.0.so.0 >> #60 0x00007ffff6e0efa5 in g_closure_invoke () from >> /usr/lib/libgobject-2.0.so.0 >> #61 0x00007ffff6e213ad in ?? () from /usr/lib/libgobject-2.0.so.0 >> #62 0x00007ffff6e296bf in g_signal_emit_valist () from >> /usr/lib/libgobject-2.0.so.0 >> #63 0x00007ffff6e29fff in g_signal_emit () from >> /usr/lib/libgobject-2.0.so.0 >> #64 0x00007ffff75502dc in ?? () from /usr/lib/libgtk-x11-2.0.so.0 >> #65 0x00007ffff74370b4 in gtk_propagate_event () from >> /usr/lib/libgtk-x11-2.0.so.0 >> #66 0x00007ffff743746b in gtk_main_do_event () from >> /usr/lib/libgtk-x11-2.0.so.0 >> #67 0x00007ffff70ac3ac in ?? () from /usr/lib/libgdk-x11-2.0.so.0 >> #68 0x00007ffff6b39dd7 in g_main_context_dispatch () from >> /usr/lib/libglib-2.0.so.0 >> #69 0x00007ffff6b3a040 in ?? () from /usr/lib/libglib-2.0.so.0 >> #70 0x00007ffff6b3a362 in g_main_loop_run () from >> /usr/lib/libglib-2.0.so.0 >> #71 0x00007ffff74364e7 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0 >> #72 0x0000000000401409 in main (argc=<optimized out>, argv=<optimized >> out>) at /home/lawsa/source/swami/swami/src/swamigui/main.c:179 >> >> >> Apparently I compiled swami with -g, but not libinst. Would it help to >> have libinst file names and line numbers, too? >> >> It's not just deleting that causes the problem, but specifically (for >> me), deleting instruments from presets. I'm not impressed with the jeux 1.4 >> font combining instruments to create new melodic presets. For instance, the >> first melodic preset is Montre 8; fine. Then Prestant 4, then Doublette 2; >> all fine. Then the next is "Montre 8 Prestant 4". I'm fully capable of >> combining them on my own, so I'm trying to trim out some of this fat (and >> there is a lot). >> >> This includes removing lots of instruments from some of these presets. >> For instance, on preset 000-003, I delete Montre and Prestant and rename >> the preset "Pan pipes". Often when deleting those two principal stops, >> that's where the program crashes...about 1 out of 10 times? Of course, >> between doing this, I'm listening to the melodic preset and the individual >> instruments (toggle solo) several times to decide if there's something I'm >> missing by trimming the preset. >> >> I hope it helps! >> >> In Christ, >> Aaron Laws >> > > |