Corrupted double linked list
I get this error in renoise after loading a new plugin in place of an old one.. To reproduce:
In renoise, load P8, choose the Bright Strings patch, then hold a note, and without closing the GUI, load Spire (Demo) into the same slot. Hold a note down and after moving the LFO1 rate knob, the host crashes - renoise says
Renoise Plugin Server LOG> Closing log file... *** Error in `renoise': corrupted double-linked list: 0x0000000008fd68d0 ***
It appears to me that this may be due to airwave not closing the old plugin before opening the new one which is supposed to replace it. This is the Log output:
1412804598.191503790 P8.dll : (0x9) effGetChunk: index=0, data_=0xf67df312
1412804598.192477542 P8.dll : effGetChunk: 49806
1412804598.192829507 P8.so : effGetChunk: chunk size 49806 bytes
1412804598.193377969 P8.dll : handleGetDataBlock: 10220 bytes
1412804598.193626808 P8.dll : handleGetDataBlock: 10220 bytes
1412804598.193831327 P8.dll : handleGetDataBlock: 10220 bytes
1412804598.193989439 P8.dll : handleGetDataBlock: 8926 bytes
1412804598.194220611 P8.so : effGetChunk: received 49806 bytes
1412804598.920199873 airwave-plugin : Starting Airwave master unit 0.5.0
1412804598.920303604 Spire.so : Plugin binary: /home/james/.vst/airwave/Spire.so
1412804598.920335270 Spire.so : Host binary: /usr/local/bin/airwave-host-32.exe
1412804598.921768996 Spire.so : VST binary: /home/james/.wine/drive_c/Program Files/VSTPlugins/Spire (x86)/Spire.dll
1412804598.921793473 Spire.so : Main thread id: 0xf7155a00
1412804598.922759149 Spire.so : Child process started, pid=28286
1412804598.922896161 Spire.so : WINELOADER is not set, using wine from the PATH
1412804598.923422810 Spire.so : Callback thread started
1412804598.923458173 Spire.so : Waiting for child response...
1412804599.399782709 airwave-host : Starting Airwave slave unit 0.5.0
1412804599.399809014 Spire.dll : Main thread id: 0x26
1412804599.445058783 Spire.dll : Waiting for master unit request...
1412804599.605277260 Spire.dll : Slave unit initialized
1412804599.605289701 Spire.so : VST plugin summary:
1412804599.605747534 Spire.so : flags: 0x00000131
1412804599.605760545 Spire.so : program count: 0
1412804599.605763568 Spire.so : param count: 714
1412804599.605766103 Spire.so : input count: 0
1412804599.605768688 Spire.so : output count: 2
1412804599.605771459 Spire.so : unique ID: 0x53706972
1412804599.605774843 Spire.so : version: 1
1412804599.605779243 Spire.so : Master unit initialized
1412804599.606640922 Spire.so : Unhandled dispatch event: effVendorSpecific
1412804599.606699972 Spire.so : Setting block size to 256 frames
1412804599.607119541 Spire.dll : Audio thread started
1412804599.607210609 Spire.so : Setting block size to 256 frames
1412804599.657211591 Spire.dll : Audio thread terminated
1412804599.658175003 Spire.dll : Audio thread started
1412804599.658752520 Spire.so : Unhandled dispatch event: effSetSpeakerArrangement
1412804599.852160083 Spire.so : effGetChunk
1412804599.852198558 Spire.dll : (0x26) effGetChunk: index=0, data_=(nil)
1412804599.852921721 Spire.dll : effGetChunk: 804915
1412804599.852994770 Spire.so : effGetChunk: chunk size 804915 bytes
1412804599.854711802 Spire.dll : handleGetDataBlock: 10220 bytes
1412804599.854768049 Spire.dll : handleGetDataBlock: 10220 bytes
1412804599.854811319 Spire.dll : handleGetDataBlock: 10220 bytes
1412804599.854853592 Spire.dll : handleGetDataBlock: 10220 bytes
OK. I have managed to fix this bug now. Seems that if I comment out the whole of the case effClose: in slaveunit.cpp nothing bad happens, and this error no longer occurs. Plugins close in renoise fine.
Doing some more testing in Bitwig, I think this "fix" leaves ghost processes running of the plugins.. Not a problem in Renoise for some reason.