Page 1 of 1

Segmentation fault when using external MIDI input

Posted: Tue Jan 02, 2018 5:43 am
by dobs
Hi there,

I'm new to both QLC+ and Linux in general, so I may be overlooking something obvious... But my situation is this:

I've been attempting to set up my XL35 Mini Par Light through QLC+ so that I can control it using a MIDI device. So far, I've been able to successfully create the fixture and control it using various functions, and I've had no difficulty using buttons in the Virtual Console to link keys on my keyboard to any given function. I've also had no trouble actually connecting my MIDI device ‒ I can see that it is connected when I press the keys, move the faders, etc. ‒ it shows the joystick, no problem. The issue occurs when I attempt to set an External Input to my MIDI device... As soon as I switch to Operate Mode (via the green play button), IF there is a button in the Virtual Console that references a MIDI device, then QLC+ crashes with a segfault, like so:

Code: Select all

# qlcplus

Q Light Controller Plus version 4.11.1
This program is licensed under the terms of the Apache 2.0 license.
Copyright (c) Heikki Junnila (hjunnila@users.sf.net)
Copyright (c) Massimo Callegari (massimocallegari@yahoo.it)

Segmentation fault (core dumped)
I've attempted to find the problem using the -d flag, but strangely it doesn't print any additional information at all.

Note that this exact same issue has occurred both on my Raspberry Pi 3 (running the qlcplus-raspbian-jessie-20171028.img that was provided to me) and on my laptop (running Arch Linux), so I don't expect it's an OS issue, though I could certainly be wrong.

Can someone please help me to resolve this? I'm not sure where to go from here, as I've searched the forum and found nothing particularly relevant to my issue. I am happy to try anything and everything when it comes to troubleshooting.

Thanks.

Re: Segmentation fault when using external MIDI input

Posted: Tue Jan 02, 2018 12:10 pm
by mcallegari
Apparently this is the same as
viewtopic.php?f=33&t=11625

However, being able to reproduce on Linux would definitely speed up to solve the issue.
The -d option doesn't show anything because you're using a released version of QLC+ which doesn't include debug information.

Which Qt version are you using ?
Does it happen with the latest GIT sources (building QLC+ yourself) or with an OBS build ?
Is this behaviour sistematic or is it random ?

Re: Segmentation fault when using external MIDI input

Posted: Tue Jan 02, 2018 8:12 pm
by dobs
Here's my Qt version:

Code: Select all

# qmake --version

QMake version 3.1
Using Qt version 5.10.0 in /usr/lib
Perhaps some additional information would be helpful:
  • Light source: TSSS XL35 Mini Par Light (manual)
  • USB-DMX interface: Lixada USB-DMX512
  • USB-MIDI interface: Unlabeled, but lsusb tells me it's "Textech International Ltd. MIDI Interface cable"
  • MIDI controller: Multiple attempted, mainly using a Novation 25SL MkII,
    for which I've created a custom
The problem seems to be systematic, as it happens without fail, provided that I've assigned a MIDI input to my button. Likewise, it does occur using the OBS build for Arch Linux, and I also just compiled from the Git sources, which had the same problem.

Re: Segmentation fault when using external MIDI input

Posted: Wed Jan 03, 2018 12:02 pm
by mcallegari
Thanks for the info.
Unfortunately I cannot reproduce this issue in my environment: QLC+ git, Qt 5.9.3, KDE Neon, MIDI from KORG NanoKontrol 2, DMX out to Open DMX USB clone

I think there is something I'm missing but I don't understand what it is.
Can you please share a simple workspace that crashes in your environment ?

[EDIT] tried also with Qt 5.10.0 and not reproduced :(

Re: Segmentation fault when using external MIDI input

Posted: Wed Jan 03, 2018 1:08 pm
by GGGss
Out of curiosity: How many midi controllers are attached?

I remember one case where I had novation touchpad pro & mini connected and all QLC+ did was crashing without any lead to what or who. (BFC2000 was connected also)
Didn't had the time to document since we were setting up... the show went on with only the touchpad pro. (and a redo of all VC features to make sure no controls were bound to the mini)

Re: Segmentation fault when using external MIDI input

Posted: Thu Jan 04, 2018 3:01 am
by dobs
Here's one edition of the workspace I've been playing with:
qlc_test_xl35mpl_(segfault).qxw
(2.49 KiB) Downloaded 79 times

I've set a handful of them up, but this one is pretty run of the mill in terms of how I've been trying to test everything out.

Note that I haven't yet created a proper Fixture Model for my XL35 Mini Par Light using the Fixture Editor. I'm unsure of whether or not this would affect anything. I did however set up a simple (unfinished) Input Profile for my Novation 25SL MkII MIDI controller, since that's what I'd like to use, but I don't experience any difference between using that profile versus if I use the Generic MIDI one.

With regards to multiple MIDI controllers, I've actually only attempted to use a single controller at any given time, though I have tried a variety of them, none of which have any problems being picked up by the software.

Re: Segmentation fault when using external MIDI input

Posted: Thu Jan 04, 2018 2:50 pm
by mcallegari
I think I found it.
As soon as I plugged a uDMX adapter, the issue came out.
Apparently, the attempt to preserve input/output mapping even when the adapters/controllers are disconnected, caused this.
In your workspace (thanks for that!) you can clearly see nonsense feedback entries referencing non existing plugins:

Code: Select all

<Feedback Line="0"/>
A valid feedback entry should look like:

Code: Select all

<Feedback Plugin="MIDI" Line="0"/>
Should be fixed on GIT. OBS and Windows TEST versions are available. Please let me know if the issue is gone.

Re: Segmentation fault when using external MIDI input

Posted: Thu Jan 04, 2018 6:24 pm
by dobs
Brilliant observation, everything seems to be in working order now :)

Thanks very much for all your patience and hard work, Mr. Callegari.