[Fixed 2.6] Never Ending Loops In Track Observables Notifiers

I found a bug that can make renoise crash :

  1. get the app here : Duplex : A Better Mixer App

  2. In the file LCD_view.lua, change the value of track_index to 0 in line 42.

  3. run the app, now adding a track to the song will make renoise crash

I know setting this value to zero is a bug in itself, but it shouldn’t be possible to crash renoise with a script, right?

Thanks for reporting bystrano.

Basically the problem is:

  
renoise.song().tracks_observable:add_notifier(function()  
 while true do   
 -- freeze  
 end  
end)  
  

The never ending loop will at some point show a “Script not responding - Terminate?” message, which will in this case cause a crash, because the notifier stopped inserting the track. The track is only half-way added in Renoise while the dialog is shown.

This will be important to solve because this can ruin the document and can also happen with a few other list notifiers. Unfortunately this is quite hard to solve, so I’ll need a bit of time to do so.

OK I understand the problem now. Sorry for posting 1000 lines of code for a problem that can be described so quickly…

Thanks for your reponsiveness, and for having such high standards with debugging! I imagine the whole “no script should be able to crash renoise” objective must be a very hard to achieve…

Finally fixed (for the next Renoise 2.6 build, not in RC3)…