ahlstromcj/sequencer64

0.96.6 Crash when using save as (or save for new project)

simonvanderveldt opened this issue · 1 comments

Simply starting seq64 and then immediately using save or save as results in a crash.
I can replicate this back till 0.96.0, haven't tried older versions.

Config:

Build features:
  C++ version 201402
  Native JACK/ALSA (rtmidi) on
  Event editor on
  Follow progress bar on
  Highlight edit pattern on
  Highlight empty patterns on
  JACK session on
  JACK support on
  LASH support on
  MIDI vector (vs list) on
  Seq32 chord generator on
  Seq32 LFO window on
  Seq32 menu buttons on
  Seq32 transpose on
  BPM Tap button on
  Solid piano-roll grid on
  Optional pattern coloring on
  Multiple main windows on
  Song performance recording on
  Pause support on
  Save time-sig/tempo on
  64-bit support enabled

Backtrace

gdb seq64
GNU gdb (Gentoo 8.3.1 vanilla) 8.3.1
Copyright (C) 2019 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://bugs.gentoo.org/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from seq64...
(No debugging symbols found in seq64)
(gdb) run
Starting program: /usr/bin/seq64 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
[Reading rc configuration /home/simon/.config/sequencer64/sequencer64.rc]
[Filter-by-channel off]
[Reading user configuration /home/simon/.config/sequencer64/sequencer64.usr]
[New Thread 0x7ffff175f700 (LWP 6789)]
[New Thread 0x7ffff16de700 (LWP 6790)]
[JACK server already started]
[Initialized, running without JACK sync]
17 virtual ports created:
Input ports (1):
  [0] 0:0 seq64:seq64 midi in 0 (virtual)
Output ports (16):
  [0] 0:0 seq64:seq64 midi out 0 (virtual)
  [1] 1:1 seq64:seq64 midi out 1 (virtual)
  [2] 2:2 seq64:seq64 midi out 2 (virtual)
  [3] 3:3 seq64:seq64 midi out 3 (virtual)
  [4] 4:4 seq64:seq64 midi out 4 (virtual)
  [5] 5:5 seq64:seq64 midi out 5 (virtual)
  [6] 6:6 seq64:seq64 midi out 6 (virtual)
  [7] 7:7 seq64:seq64 midi out 7 (virtual)
  [8] 8:8 seq64:seq64 midi out 8 (virtual)
  [9] 9:9 seq64:seq64 midi out 9 (virtual)
  [10] 10:10 seq64:seq64 midi out 10 (virtual)
  [11] 11:11 seq64:seq64 midi out 11 (virtual)
  [12] 12:12 seq64:seq64 midi out 12 (virtual)
  [13] 13:13 seq64:seq64 midi out 13 (virtual)
  [14] 14:14 seq64:seq64 midi out 14 (virtual)
  [15] 15:15 seq64:seq64 midi out 15 (virtual)

[New Thread 0x7ffff165d700 (LWP 6791)]
[New Thread 0x7ffff15dc700 (LWP 6792)]
[New Thread 0x7ffff0ddb700 (LWP 6793)]
Connected to session bus, unique name is ":1.284"
[Connected to LASH]
[New Thread 0x7fffe7187700 (LWP 6801)]
[New Thread 0x7fffe6986700 (LWP 6802)]

(seq64:6785): GVFS-RemoteVolumeMonitor-WARNING **: 23:39:08.508: remote volume monitor with dbus name org.gtk.vfs.UDisks2VolumeMonitor is not supported

Thread 1 "seq64" received signal SIGTRAP, Trace/breakpoint trap.
0x00007ffff59c6491 in ?? () from /usr/lib64/libglib-2.0.so.0
(gdb) thread apply all bt

Thread 8 (Thread 0x7fffe6986700 (LWP 6802)):
#0  0x00007ffff71cce93 in poll () at /lib64/libc.so.6
#1  0x00007ffff59c08c9 in  () at /usr/lib64/libglib-2.0.so.0
#2  0x00007ffff59c0c62 in g_main_loop_run () at /usr/lib64/libglib-2.0.so.0
#3  0x00007ffff5c59cf6 in  () at /usr/lib64/libgio-2.0.so.0
#4  0x00007ffff59e978d in  () at /usr/lib64/libglib-2.0.so.0
#5  0x00007ffff510c3a7 in start_thread () at /lib64/libpthread.so.0
#6  0x00007ffff71d8aff in clone () at /lib64/libc.so.6

Thread 7 (Thread 0x7fffe7187700 (LWP 6801)):
#0  0x00007ffff71cce93 in poll () at /lib64/libc.so.6
#1  0x00007ffff59c08c9 in  () at /usr/lib64/libglib-2.0.so.0
#2  0x00007ffff59c09dc in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0
#3  0x00007ffff59c0a21 in  () at /usr/lib64/libglib-2.0.so.0
#4  0x00007ffff59e978d in  () at /usr/lib64/libglib-2.0.so.0
#5  0x00007ffff510c3a7 in start_thread () at /lib64/libpthread.so.0
#6  0x00007ffff71d8aff in clone () at /lib64/libc.so.6

Thread 6 (Thread 0x7ffff0ddb700 (LWP 6793)):
#0  0x00007ffff5112e57 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1  0x00007ffff7c76738 in seq64::perform::output_func() () at /usr/lib64/sequencer64-0.96/libseq64.so.0
#2  0x00007ffff7c76f08 in seq64::output_thread_func(void*) () at /usr/lib64/sequencer64-0.96/libseq64.so.0
#3  0x00007ffff510c3a7 in start_thread () at /lib64/libpthread.so.0
#4  0x00007ffff71d8aff in clone () at /lib64/libc.so.6

Thread 5 (Thread 0x7ffff15dc700 (LWP 6792)):
#0  0x00007ffff71a3089 in nanosleep () at /lib64/libc.so.6
#1  0x00007ffff71d03c5 in usleep () at /lib64/libc.so.6
#2  0x00007ffff7bbe4bf in seq64::midi_in_jack::api_poll_for_midi() () at /usr/lib64/sequencer64-0.96/libseq_rtmidi.so.0
#3  0x00007ffff7c4b5ea in seq64::busarray::poll_for_midi() () at /usr/lib64/sequencer64-0.96/libseq64.so.0
#4  0x00007ffff7c5eddb in seq64::mastermidibase::api_poll_for_midi() () at /usr/lib64/sequencer64-0.96/libseq64.so.0
#5  0x00007ffff7c7a10c in seq64::perform::input_func() () at /usr/lib64/sequencer64-0.96/libseq64.so.0
#6  0x00007ffff7c7a498 in seq64::input_thread_func(void*) () at /usr/lib64/sequencer64-0.96/libseq64.so.0
#7  0x00007ffff510c3a7 in start_thread () at /lib64/libpthread.so.0
#8  0x00007ffff71d8aff in clone () at /lib64/libc.so.6

Thread 4 (Thread 0x7ffff165d700 (LWP 6791)):
#0  0x00007ffff71d3129 in syscall () at /lib64/libc.so.6
#1  0x00007ffff54580aa in Jack::JackLinuxFutex::TimedWait(long) (this=0x5555556a2858, usec=usec@entry=2147483647) at ../linux/JackLinuxFutex.cpp:125
#2  0x00007ffff543fad1 in Jack::JackConnectionManager::SuspendRefNum(Jack::JackClientControl*, Jack::JackLinuxFutex*, Jack::JackClientTiming*, long) (this=<optimized out>, control=0x7ffff7b6f000, table=table@entry=0x5555556a17f0, timing=timing@entry=0x7fffe7df909a, time_out_usec=time_out_usec@entry=2147483647) at ../common/JackConnectionManager.cpp:238
#3  0x00007ffff5441e82 in Jack::JackGraphManager::SuspendRefNum(Jack::JackClientControl*, Jack::JackLinuxFutex*, long) (this=this@entry=0x7fffe7188000, control=<optimized out>, table=table@entry=0x5555556a17f0, usec=usec@entry=2147483647) at ../common/JackGraphManager.cpp:126
#4  0x00007ffff543eba9 in Jack::JackClient::WaitSync() (this=0x555555655150) at ../common/JackClient.cpp:639
#5  0x00007ffff543eba9 in Jack::JackClient::CycleWaitAux() (this=0x555555655150) at ../common/JackClient.cpp:603
#6  0x00007ffff543eba9 in Jack::JackClient::ExecuteThread() (this=this@entry=0x555555655150) at ../common/JackClient.cpp:596
#7  0x00007ffff543dc02 in Jack::JackClient::Execute() (this=0x555555655150) at ../common/JackClient.cpp:582
#8  0x00007ffff545616e in Jack::JackPosixThread::ThreadHandler(void*) (arg=0x555555655398) at ../posix/JackPosixThread.cpp:63
#9  0x00007ffff510c3a7 in start_thread () at /lib64/libpthread.so.0
#10 0x00007ffff71d8aff in clone () at /lib64/libc.so.6

Thread 3 (Thread 0x7ffff16de700 (LWP 6790)):
#0  0x00007ffff71c8790 in read () at /lib64/libc.so.6
#1  0x00007ffff5457688 in read (__nbytes=4, __buf=<optimized out>, __fd=<optimized out>) at /usr/include/bits/unistd.h:44
#2  0x00007ffff5457688 in Jack::JackClientSocket::Read(void*, int) (this=0x7fffec000b60, data=<optimized out>, len=4) at ../posix/JackSocket.cpp:196
#3  0x00007ffff545b269 in Jack::JackClientNotification::Read(Jack::detail::JackChannelTransactionInterface*) (trans=0x7fffec000b60, this=0x7ffff16ddb50) at ../common/JackRequest.h:1711
#4  0x00007ffff545b269 in Jack::JackSocketClientChannel::Execute() (this=0x55555564d380) at ../posix/JackSocketClientChannel.cpp:138
#5  0x00007ffff545616e in Jack::JackPosixThread::ThreadHandler(void*) (arg=0x55555564d4b0) at ../posix/JackPosixThread.cpp:63
#6  0x00007ffff510c3a7 in start_thread () at /lib64/libpthread.so.0
#7  0x00007ffff71d8aff in clone () at /lib64/libc.so.6
--Type <RET> for more, q to quit, c to continue without paging--

Thread 2 (Thread 0x7ffff175f700 (LWP 6789)):
#0  0x00007ffff5112e57 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1  0x00007ffff5456b83 in Jack::JackPosixProcessSync::Wait() (this=this@entry=0x5555556ae0b8) at ../posix/JackPosixProcessSync.cpp:81
#2  0x00007ffff544e2d3 in Jack::JackMessageBuffer::Execute() (this=0x5555556a5e80) at ../common/JackMessageBuffer.cpp:104
#3  0x00007ffff545616e in Jack::JackPosixThread::ThreadHandler(void*) (arg=0x5555556ae098) at ../posix/JackPosixThread.cpp:63
#4  0x00007ffff510c3a7 in start_thread () at /lib64/libpthread.so.0
#5  0x00007ffff71d8aff in clone () at /lib64/libc.so.6

Thread 1 (Thread 0x7ffff2c2b940 (LWP 6785)):
#0  0x00007ffff59c6491 in  () at /usr/lib64/libglib-2.0.so.0
#1  0x00007ffff59c777b in g_logv () at /usr/lib64/libglib-2.0.so.0
#2  0x00007ffff59c78d7 in g_log () at /usr/lib64/libglib-2.0.so.0
#3  0x00007ffff0383dbd in  () at /usr/lib64/gio/modules/libgioremote-volume-monitor.so
#4  0x00007ffff5c01610 in  () at /usr/lib64/libgio-2.0.so.0
#5  0x00007ffff59e9885 in g_once_impl () at /usr/lib64/libglib-2.0.so.0
#6  0x00007ffff5c014e6 in  () at /usr/lib64/libgio-2.0.so.0
#7  0x00007ffff5c01df0 in g_volume_monitor_get () at /usr/lib64/libgio-2.0.so.0
#8  0x00007ffff62476dd in  () at /usr/lib64/libgtk-x11-2.0.so.0
#9  0x00007ffff5ac9e05 in g_type_create_instance () at /usr/lib64/libgobject-2.0.so.0
#10 0x00007ffff5aaa3a0 in  () at /usr/lib64/libgobject-2.0.so.0
#11 0x00007ffff5aabb45 in g_object_new_with_properties () at /usr/lib64/libgobject-2.0.so.0
#12 0x00007ffff5aac5d9 in g_object_new () at /usr/lib64/libgobject-2.0.so.0
#13 0x00007ffff6237ab4 in  () at /usr/lib64/libgtk-x11-2.0.so.0
#14 0x00007ffff5ac9e05 in g_type_create_instance () at /usr/lib64/libgobject-2.0.so.0
#15 0x00007ffff5aa9e48 in  () at /usr/lib64/libgobject-2.0.so.0
#16 0x00007ffff6241d68 in  () at /usr/lib64/libgtk-x11-2.0.so.0
#17 0x00007ffff5aaa1ce in  () at /usr/lib64/libgobject-2.0.so.0
#18 0x00007ffff5aabb45 in g_object_new_with_properties () at /usr/lib64/libgobject-2.0.so.0
#19 0x00007ffff5aac5d9 in g_object_new () at /usr/lib64/libgobject-2.0.so.0
#20 0x00007ffff6246514 in  () at /usr/lib64/libgtk-x11-2.0.so.0
#21 0x00007ffff5aaa1ce in  () at /usr/lib64/libgobject-2.0.so.0
#22 0x00007ffff5aabb45 in g_object_new_with_properties () at /usr/lib64/libgobject-2.0.so.0
#23 0x00007ffff5aac5d9 in g_object_new () at /usr/lib64/libgobject-2.0.so.0
#24 0x00007ffff624330c in  () at /usr/lib64/libgtk-x11-2.0.so.0
#25 0x00007ffff5aaa1ce in  () at /usr/lib64/libgobject-2.0.so.0
#26 0x00007ffff5aabd7e in g_object_newv () at /usr/lib64/libgobject-2.0.so.0
#27 0x00007ffff6a23714 in Glib::Object::Object(Glib::ConstructParams const&) () at /usr/lib64/libglibmm-2.4.so.1
#28 0x00007ffff77d6cb6 in Gtk::Object::Object(Glib::ConstructParams const&) () at /usr/lib64/libgtkmm-2.4.so.1
#29 0x00007ffff7837f36 in Gtk::Widget::Widget(Glib::ConstructParams const&) () at /usr/lib64/libgtkmm-2.4.so.1
#30 0x00007ffff77abe35 in Gtk::Container::Container(Glib::ConstructParams const&) () at /usr/lib64/libgtkmm-2.4.so.1
#31 0x00007ffff7792f25 in Gtk::Bin::Bin(Glib::ConstructParams const&) () at /usr/lib64/libgtkmm-2.4.so.1
#32 0x00007ffff783cd25 in Gtk::Window::Window(Glib::ConstructParams const&) () at /usr/lib64/libgtkmm-2.4.so.1
#33 0x00007ffff77ac9e5 in Gtk::Dialog::Dialog(Glib::ConstructParams const&) () at /usr/lib64/libgtkmm-2.4.so.1
#34 0x00007ffff77b862d in Gtk::FileChooserDialog::FileChooserDialog(Glib::ustring const&, Gtk::FileChooserAction) () at /usr/lib64/libgtkmm-2.4.so.1
#35 0x00007ffff7e816af in seq64::mainwnd::file_save_as(seq64::midifile::SaveOption) () at /usr/lib64/sequencer64-0.96/libseq_gtkmm2.so.0
#36 0x00007ffff6a26668 in Glib::SignalProxyNormal::slot0_void_callback(_GObject*, void*) () at /usr/lib64/libglibmm-2.4.so.1
#37 0x00007ffff5aa4c8d in g_closure_invoke () at /usr/lib64/libgobject-2.0.so.0
#38 0x00007ffff5ab7fe1 in  () at /usr/lib64/libgobject-2.0.so.0
#39 0x00007ffff5ac0b35 in g_signal_emit_valist () at /usr/lib64/libgobject-2.0.so.0
#40 0x00007ffff5ac1557 in g_signal_emit () at /usr/lib64/libgobject-2.0.so.0
#41 0x00007ffff63a2e76 in gtk_widget_activate () at /usr/lib64/libgtk-x11-2.0.so.0
#42 0x00007ffff62a076d in gtk_menu_shell_activate_item () at /usr/lib64/libgtk-x11-2.0.so.0
#43 0x00007ffff62a0a22 in  () at /usr/lib64/libgtk-x11-2.0.so.0
#44 0x00007ffff628eb3b in  () at /usr/lib64/libgtk-x11-2.0.so.0
#45 0x00007ffff5aa4c8d in g_closure_invoke () at /usr/lib64/libgobject-2.0.so.0
#46 0x00007ffff5ab81d8 in  () at /usr/lib64/libgobject-2.0.so.0
#47 0x00007ffff5ac04d1 in g_signal_emit_valist () at /usr/lib64/libgobject-2.0.so.0
#48 0x00007ffff5ac1557 in g_signal_emit () at /usr/lib64/libgobject-2.0.so.0
#49 0x00007ffff63a412c in  () at /usr/lib64/libgtk-x11-2.0.so.0
#50 0x00007ffff628d2dc in gtk_propagate_event () at /usr/lib64/libgtk-x11-2.0.so.0
--Type <RET> for more, q to quit, c to continue without paging--
#51 0x00007ffff628d6db in gtk_main_do_event () at /usr/lib64/libgtk-x11-2.0.so.0
#52 0x00007ffff5f0526c in  () at /usr/lib64/libgdk-x11-2.0.so.0
#53 0x00007ffff59c0717 in g_main_context_dispatch () at /usr/lib64/libglib-2.0.so.0
#54 0x00007ffff59c0950 in  () at /usr/lib64/libglib-2.0.so.0
#55 0x00007ffff59c0c62 in g_main_loop_run () at /usr/lib64/libglib-2.0.so.0
#56 0x00007ffff628c707 in gtk_main () at /usr/lib64/libgtk-x11-2.0.so.0
#57 0x00007ffff77cd886 in Gtk::Main::run(Gtk::Window&) () at /usr/lib64/libgtkmm-2.4.so.1
#58 0x00005555555576d2 in  ()
#59 0x00007ffff70f7f2b in __libc_start_main () at /lib64/libc.so.6
#60 0x0000555555557bca in  ()

I'm having a heck of a time trying to replicate this on my setup! Still hacking away!