x42 / fat1.lv2

Fons Adriaensen's AT1 -- Autotune LV2 plugin
http://x42-plugins.com/x42/x42-autotune
GNU General Public License v2.0
72 stars 16 forks source link

Recent versions crash Qtractor #2

Closed suedwestlicht closed 8 years ago

suedwestlicht commented 8 years ago

Hi, I have a version from 2016-07-28 that runs fine in Qtractor. A version from 2016-08-20 doesn't work and freezes or crashes recent Qtractor from git (qt4 build).

When I load fat1.v2 in Carla.lv2 in Qtractor then the recent version works fine.

I irc'd with rncbc and he couldn't help, except the robtk submodule looked suspicious to him.

rncbc commented 8 years ago

ftr. probably the same issue on all x42-plugins that use robtk submodule: second lv2_ui instantiation freezes qtractor.

some suspicious messages:

qtractorLv2Plugin[0x45db2f0]::openEditor("http://lv2plug.in/ns/extensions/ui#X11UI")
qtractorLv2Plugin[0x45db2f0]::lv2_ui_instantiate("http://gareus.org/oss/lv2/fil4#ui_gl")
(process:*****): GLib-GObject-WARNING **: cannot register existing type 'PangoFontMap'
(process:*****): GLib-CRITICAL **: g_once_init_leave: assertion 'result != 0' failed
(process:*****): GLib-GObject-CRITICAL **: g_type_register_static: assertion 'parent_type > 0' failed
(process:*****): GLib-CRITICAL **: g_once_init_leave: assertion 'result != 0' failed
(process:*****): GLib-GObject-CRITICAL **: g_type_register_static: assertion 'parent_type > 0' failed
(process:*****): GLib-GObject-WARNING **: cannot register existing type 'PangoCairoFontMap'

hth.

x42 commented 8 years ago

I can't reproduce this on debian/testing (qtractor 0.7.8-1, x42-plugins 20160619 from debian) I don't see these warnings, either.

Where did you get the plugins from? What distro is that?

robtk does not directly call any glib methods. It's probably libpango on the system in question (versions libcairo < 1.12.10, libpixman < 0.30.2 and libpango < 1.32.6 are not thread safe).

I'll need more information. ldd on the plugin .so would be a start. Then again it's still likely out of my control to address this.

Binaries from x42-plugins.com come with a static glib and static libpango and should not have this issue. Can you try http://x42-plugins.com/x42/linux/x42-autotune-v0.2.1-4-x86_64.tar.gz

suedwestlicht commented 8 years ago

Qtractor from git. fat1 from git.

hm@regen:/usr/local/lib/lv2/fat1.lv2$ ldd fat1.so
    linux-vdso.so.1 =>  (0x00007fffb6179000)
    libfftw3f.so.3 => /usr/lib/libfftw3f.so.3 (0x00007f1041764000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f1041468000)
    libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f1041155000)
    libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f1040f3e000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f1040d21000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f1040962000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f1041cff000)
hm@regen:/usr/local/lib/lv2/fat1.lv2$ ldd fat1UI_gl.so 
    linux-vdso.so.1 =>  (0x00007fff02714000)
    libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007f4b42d16000)
    libpangocairo-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libpangocairo-1.0.so.0 0x00007f4b42b0a000)
    libpango-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libpango-1.0.so.0 (0x00007f4b428c0000)
    libcairo.so.2 => /usr/lib/x86_64-linux-gnu/libcairo.so.2 (0x00007f4b42602000)
    libgobject-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 (0x00007f4b423b3000)
    libGL.so.1 => /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1 (0x00007f4b42152000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f4b41e56000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f4b41c39000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f4b4187a000)
    libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f4b4165c000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f4b41458000)
    libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007f4b41162000)
    libpangoft2-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libpangoft2-1.0.so.0 (0x00007f4b40f38000)
    libfreetype.so.6 => /usr/lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007f4b40c9b000)
    libfontconfig.so.1 => /usr/lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007f4b40a64000)
    libgmodule-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgmodule-2.0.so.0 (0x00007f4b40860000)
    libpixman-1.so.0 => /usr/lib/x86_64-linux-gnu/libpixman-1.so.0 (0x00007f4b405c9000)
    libpng12.so.0 => /lib/x86_64-linux-gnu/libpng12.so.0 (0x00007f4b403a0000)
    libxcb-shm.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0 (0x00007f4b4019d000)
    libxcb-render.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-render.so.0 (0x00007f4b3ff93000)
    libXrender.so.1 => /usr/lib/x86_64-linux-gnu/libXrender.so.1 (0x00007f4b3fd88000)
    libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f4b3fb71000)
    libffi.so.6 => /usr/lib/x86_64-linux-gnu/libffi.so.6 (0x00007f4b3f969000)
    libglapi.so.0 => /usr/lib/x86_64-linux-gnu/libglapi.so.0 (0x00007f4b3f743000)
    libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007f4b3f532000)
    libXdamage.so.1 => /usr/lib/x86_64-linux-gnu/libXdamage.so.1 (0x00007f4b3f32f000)
    libXfixes.so.3 => /usr/lib/x86_64-linux-gnu/libXfixes.so.3 (0x00007f4b3f128000)
    libX11-xcb.so.1 => /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1 (0x00007f4b3ef26000)
    libxcb-glx.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0 (0x00007f4b3ed0f000)
    libXxf86vm.so.1 => /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1 (0x00007f4b3eb09000)
    libdrm.so.2 => /usr/lib/x86_64-linux-gnu/libdrm.so.2 (0x00007f4b3e8fe000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f4b43288000)
    libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007f4b3e6fa000)
    libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f4b3e4f4000)
    libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f4b3e2b7000)
    librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f4b3e0af000)
    libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007f4b3de84000)

Results when using http://x42-plugins.com/x42/linux/x42-autotune-v0.2.1-4-x86_64.tar.gz:

My system has libpango-1.0, maybe that's the cause. Maybe fat1.lv2's version from 2016-07-28 didn't use threads. It runs fine with that libpango.

x42 commented 8 years ago

There hasn't been a change there. But threading issues (race conditions) are always erratic. Sometimes it works, sometimes it doesn't.

x42 commented 8 years ago

OK. So system wide libs. There's little I can do about, except ask you to update them.

Or link it statically so that pango/glib is not shared among the instances (the Makefile has an option to pass flags to pkgconfig for that: PKG_UI_FLAGS=--static), but you'll also need to get all the static .a libs for all dependencies.

Or simply keep using the binary.

x42 commented 8 years ago

ftr. probably the same issue on all x42-plugins that use robtk submodule: second lv2_ui instantiation freezes qtractor.

Works fine here. 2 x fat1 for example. I can switch GUIs too. I tried the debian versions (meters), self-compiled ones and static binaries.

2xfat1

suedwestlicht commented 8 years ago

OK, I'd say problem solved. Merci beaucoup.