You are here

Qtractor segfaults when loading linuxsampler plugin [SOLVED]

I've been getting segfaults with Qtractor when trying to load the linuxsampler plugin ever since Qtractor 5.3. I rebuilt Qtractor today
with SVN 2742 and still get the problem. The scenario is:
o start qtractor, create midi track.
o attempt to select linuxsampler plugin for track, get segfault when hit OK

Here is a strace of the crash in case that is useful:

mmap2(NULL, 528384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0xab7be000
mprotect(0xab7be000, 4096, PROT_NONE) = 0
clone(child_stack=0xab83e2b4, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0xab83ebd8, {entry_number:6, base_addr:0xab83eb70, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}, child_tidptr=0xab83ebd8) = 21794
sched_setscheduler(21794, SCHED_OTHER, { 0 }) = 0
futex(0xa06944c, FUTEX_WAIT_PRIVATE, 3, NULL) = 0
futex(0xa06942c, FUTEX_WAIT_PRIVATE, 2, NULL) = 0
futex(0xa06942c, FUTEX_WAKE_PRIVATE, 1) = 0
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++
Segmentation fault

I was intending to test the "state" restoration of linuxsampler which has not been working for me, so I had:

o built the entire drobilla-lad SVN 3982 (this includes lilv)
o built libgig, linuxsampler, qsampler, lscp SVN 2322

which is supposed to get the state restoration (i.e. get linuxsampler to reload the sample file you had loaded in a previous session). Obviously, cannot test this in qtractor right now. I'm running AVlinux 5.0.2.

Forums: 
rncbc's picture

well, i've just built linuxsampler from svn trunk rev.2322 today and it breaks on me too.

it all seems related to the lv2/lilv state api feature recently introduced in the linuxsampler-lv2 plugin implementation.

if you build qtractor with ./configure --enable-debug you'll get a better stacktrace which always points you to linuxsampler's PluginLv2::Restore at the segfault crash spot.

previously, the lv2 state feature extension (when is was independent from a lilv api) it was working great--blame this to the all-mighty-l33t aka. drobilla xD

i'll have to investigate this too, probably i'll have to take measures on this kind of hidenbugs o.O

[UPDATE:] fixed on svn trunk rev.2743+ (aka. qtractor 0.5.3.38+) -- in fact it is a bug in linuxsampler lv2 state interface, due to lack of validation for some null input parameter.

cheers

Thanks for the quick work. I just built SVN 2744 and linuxsampler plugin works and state is properly restored. I tried SF2, gig, and SFZ files and restore worked for all of them. I did find that if you change the instrument in linuxsampler and do not change anything else in qtractor then "save" never is enabled and you cannot save the new instrument state, unless you make some other change to activate the "save" button which is a minor issue.

I also noticed with Qtractor that you cannot minimize the main window separately from the mixer window. I had some idea of using Qtractor as a live mixer (which I like because you can put plugins on tracks and easily enable/disable them which is not possible in most linux "mixer" applications). For this purpose I only need to see the mixer window, so I'd like to minimize the main window to get it out of the way. So it would be nice to be able to do that.

Thanks again for the speedy action on the linuxsampler problem.

rncbc's picture

you can have that if you turn off View/Options.../General/Keep tool windows always on top option and restart.

byee

Ok, good to learn these things

Add new comment