Hide Forgot
Created attachment 498881 [details] vsthost stacktrace Description of problem: currently dssi-vst page faults on all VST plugins (see attached backtrace). Using the package built for F14 appears to instantiate the plugin without error. After doing some debugging it appears that there is some kind of stack corruption occurring at line 1272 dssi-vst-server.cpp 1240 AEffect *(__stdcall* getInstance)(audioMasterCallback); 1241 1242 getInstance = (AEffect*(__stdcall*)(audioMasterCallback)) 1243 GetProcAddress(libHandle, NEW_PLUGIN_ENTRY_POINT); 1244 1245 if (!getInstance) { 1246 if (debugLevel > 0) { 1247 cerr << "dssi-vst-server[1]: VST 2.4 entrypoint \"" 1248 << NEW_PLUGIN_ENTRY_POINT << "\" not found in DLL \"" 1249 << libname << "\", looking for \"" 1250 << OLD_PLUGIN_ENTRY_POINT << "\"" << endl; 1251 } 1252 1253 getInstance = (AEffect*(__stdcall*)(audioMasterCallback)) 1254 GetProcAddress(libHandle, OLD_PLUGIN_ENTRY_POINT); 1255 1256 if (!getInstance) { 1257 cerr << "dssi-vst-server: ERROR: VST entrypoints \"" 1258 << NEW_PLUGIN_ENTRY_POINT << "\" or \"" 1259 << OLD_PLUGIN_ENTRY_POINT << "\" not found in DLL \"" 1260 << libname << "\"" << endl; 1261 return 1; 1262 } else if (debugLevel > 0) { 1263 cerr << "dssi-vst-server[1]: VST entrypoint \"" 1264 << OLD_PLUGIN_ENTRY_POINT << "\" found" << endl; 1265 } 1266 1267 } else if (debugLevel > 0) { 1268 cerr << "dssi-vst-server[1]: VST entrypoint \"" 1269 << NEW_PLUGIN_ENTRY_POINT << "\" found" << endl; 1270 } 1271 1272 AEffect *plugin = getInstance(hostCallback); 1273 After this point the memory pointed to by fileInfo has changed. The program crashes at some point after Version-Release number of selected component (if applicable): dssi-vst-wine-0.9.2 wine-1.3.19.i686 gcc-4.6.0 I can get dssi-vst-wine to work by rebuilding without %{optflags}, specifically without the -O2 flag. The flags governed by O2 have changed between gcc versions in F15 and F14 and I'm yet to narrow it down to one is causing the problem. How reproducible: Always Steps to Reproduce: vsthost [some plugin]
Created attachment 498882 [details] diff O2 flags gcc 4.5.1 vs 4.6.1 diff <(/fedora14/usr/bin/gcc -c -Q -O2 --help=optimizers) <(/usr/bin/gcc -c -Q -O2 --help=optimizers)
I am assigning this to gcc maintainers. Their opinion might help us track the issue.
If code doesn't work with -O2, but works with -O0, it might be of course a compiler bug, but many times more likely it is just a bug in the program being compiled, where it relies on undefined behavior somewhere. Therefore, I'm not going to debug arbitrarily large wrong-code issues unless the package maintainers do their homework and reduce it significantly. You can use a binary search in between objects compiled with -O0 and -O2 (if -O0 works) to narrow it down to a particular object, in that object try -fno-inline to see if inlining isn't irrelevant, use __attribute__((optimize (0))) on some routines in the file to narrow it down to a particular routine (or you can alternatively use a debugger to see where things go wrong). Try -fno-strict-aliasing, if that helps, you might be violating strict aliasing, check -W -Wall output, etc. See http://gcc.gnu.org/bugs.html for more details about proper gcc bugreporting. As I said, most of the time you just find a bug in your package.
Thanks Jakub. I am aware that such bugs usually occur due the code relying on undefined behavior (why the compiler changes its behavior between releases in such circumstances is beyond my understanding). I didn't assign the bug to you for requesting to go through the code. I was just wondering if this is one of the common issues you encounter, and if there are specific things to look for. Again thanks for the feedback.
Rebuilding with %{optflags} -fno-omit-frame-pointer -Ivestige -fPIC results in a working dssi-vst-wine. I'm not across wine but a little research has found that some apps require -fno-omit-frame-pointer to work correctly (eg. LMMS sets this when compiling for VST support).
*Bump* Please rebuild for Fedora 15. Thanks Lars
dssi-vst-0.9.2-4.fc15 has been submitted as an update for Fedora 15. https://admin.fedoraproject.org/updates/dssi-vst-0.9.2-4.fc15
I built on F-15+ with the -fno-omit-frame-pointer flag as it is the only solution we have right now. Let us know how it goes.
Thanks! Works ok here.
FWIW I posted this upstream a while ago. No response as yet. http://code.breakfastquay.com/issues/6
I had the same issue with this upstream tracker in the past. I think it is best to email the author directly in this case. See: http://lists.linuxaudio.org/pipermail/linux-audio-user/2010-May/069096.html
Package dssi-vst-0.9.2-4.fc15: * should fix your issue, * was pushed to the Fedora 15 testing repository, * should be available at your local mirror within two days. Update it with: # su -c 'yum update --enablerepo=updates-testing dssi-vst-0.9.2-4.fc15' as soon as you are able to. Please go to the following url: https://admin.fedoraproject.org/updates/dssi-vst-0.9.2-4.fc15 then log in and leave karma (feedback).
dssi-vst-0.9.2-4.fc15 has been pushed to the Fedora 15 stable repository. If problems still persist, please make note of it in this bug report.