ahlstromcj / sequencer64

A major reboot of Seq24. Current release 0.97.0 (2021-05-13), native JACK MIDI, Song recording, playlists, and a Windows/Qt version. For fresher code, see the Seq66 project. Note that trigger and mute-group-in-MIDI-file formats have evolved! Back up your work!
GNU Affero General Public License v3.0
237 stars 28 forks source link

latest wip -ed -er seq64 crash when button 'Jack Transport Connect' is used #76

Closed layk closed 7 years ago

layk commented 7 years ago

Hi Pressing 'Jack Transport Connect' button in File->Options->Jack Sync tab sequencer crashes giving following error: (seq64:16172): Gtk-CRITICAL **: IA__gtk_toggle_button_get_active: assertion 'GTK_IS_TOGGLE_BUTTON (toggle_button)' failed Trace/breakpoint trap (core dumped)

So i cannot use jack with seq64 in wip branch. Don't know if this is related but recently updated gtk3-3.22.12-2, gtk3-devel-3.22.12-2 and gtk-update-icon-cache-3.22.12-2

Just for your information. I know this is a work in process branch.

The real reason i compiled the latest is that i was trying to send midi clock to my korg electribe sampler and the pbm was wrong. But this is another issue.

ahlstromcj commented 7 years ago

You can try running it from the command-line for now, adding the '-j', '-J', or '-C' options (see the --help) option. I verified the issue. As far as gtk3 goes, that is not used in seq64.

Oddly enough, one this laptop (but not the one running Debian stable), if the first thing I do after starting the GUI is hit "Alt-f", the app comes up frozen and emitting gtk2 errors to the console. But if I click in the GUI first, or use the "Ctrl-O" shortcut, no problem. This just started happening recently.

So I am suspicious of gtk2 itself. Maybe this bug will give a clue to work around my gtk-related issue. Thanks for the report.

Watching Celtics vs Rangers on teevee while doing this :-).

ahlstromcj commented 7 years ago

Oh, another workaround is to set up for JACK transport in the [jack-transport] section of the "rc" file in ~/.config/sequencer64 before you run the application.

Your bug gets triggered starting in Gtk::ToggleButton::get_active() in the callback for clicking the transport button. I will see if it happens on the other laptop soon.

layk commented 7 years ago

Alright i try those workarounds. Happy teeveeing :)

ahlstromcj commented 7 years ago

So I can run my installed seq64 v 0.90.3 (versus the latest) and it doesn't crash when clicking on the Jack Connect button. However, in the console, it emits the very same error!

ahlstromcj commented 7 years ago

Okay, I think this one is fixed. I learned that I ought to pay attention to those GTK assertions... Converting those JACK transport buttons from Gtk::Button to Gtk::ToggleButton did the trick. Not sure why the old version just emitted a warning, while the new version emitted a warning and then crashed. But check it out and let me know if it works for you now.

layk commented 7 years ago

Works now. This can be closed. Thank You.

ahlstromcj commented 7 years ago

A couple of comments. First, I realized it was crashing because I added a call to tell Gtk to make warnings fatal. I've undone that. Second, the reason I had added that was because, under Fluxbox (but not XFce), using Alt-F after spawning seq64 from the console, before clicking in the GUI, causes the GUI to freeze. The work around is to click the Ctrl-O hot key, but one still ultimately needs to click the GUI to avoid the freeze. Not sure that this is really a Fluxbox bug per se. Trying to use xtruss to see what's happening under X yields so much output I can't find any clue in the output, even if I diff it against output in XFce.