Need Help: Two of my modules crashing VCV2 VST

Hi Rack developers,

Just got an issue on OrangeLine for VCV Rack2.

Quote from the issue:

'I tested with other Orangeline modules. The crash also happens with dejavu, but all others are fine. So it is something that Fence and Dejavu have in common, but not your other modules.

In fact I do not need to quit and restart Bitwig to get the issue - I can repeat it by deleting the Rack VST instance, and then undoing. Without fence or dejavu in the patch, the undo works fine, with them, Rack immediately crashes when I undo.’

The issue can be followed here: Fence crashes VCV instance in Bitwig when reopening a project. · Issue #14 · Stubs42/OrangeLine · GitHub

I do not have any idea what may cause this and I am also unable to test this. Any help appreciated.

Regards Dieter

report via here: VCV - Support

Looks like Fence and Dejavu are the only two modules that load a font. It’s probably something to do with storing font references across frames:

https://vcvrack.com/manual/Migrate2#2-1-Don-t-store-Font-and-Image-references-across-multiple-frames

2 Likes

Ah, good guess. Doesn’t vst differ from vcv in how the gl contexts are handled?

As mentioned earlier, Meander built for V2 with no errors or serious warnings. But, I did make a few dozen changes as suggested in the migration document section on “Potential Runtime Bugs…”. In my opinion, this should be considered “probable runtime bugs” if you do a loadFont() in a widget constructor and cache it between calls. Documentation refers to this in the context of DAW’s, so is referring to VST usage. The recommended change is to move loadFont() from the widget constructor to the widget draw() function and check for a nullptr on the font before using it.

Seems like it would be a good idea for everyone to consider if they are loading fonts in widgets and if so, make these trivial changes.

I’ve had Fence crash now and can test for you if needed Dieter. I didn’t report it to you because I’ve had a few similar crashes from a range of modules and just decided to be patient for some of the kinks to be ironed out, but I’m happy to go there if you need it.