reaper-oss / sws

The SWS extension is a collection of features that seamlessly integrate into REAPER, the Digital Audio Workstation (DAW) software by Cockos, Inc
https://www.sws-extension.org/
MIT License
455 stars 85 forks source link

Crash on OSX using Groove Tool (and others) #912

Open veto-gh opened 7 years ago

veto-gh commented 7 years ago

Adding this here only for reference: https://forum.cockos.com/showpost.php?p=1900773&postcount=8 FWIW I could not reproduce on linux.

Vanhaze:

Any OSX user experience a hard Reaper crash with this version, when using SWS FNG Groove Tool in MIDI Editor, on selected midi notes ?

OSX 10.12.6 SWS version 2.9.7

Part of my crash report: Date/Time: 2017-10-21 12:23:26.864 +0200 OS Version: Mac OS X 10.12.6 (16G29) Report Version: 12 Anonymous UUID: CC8F9E58-5BFF-FD08-CD8D-E67C3EF7547D

Time Awake Since Boot: 13000 seconds

System Integrity Protection: enabled

Notes: Translocated Process

Crashed Thread: 0 Dispatch queue: com.apple.main-thread

Exception Type: EXC_BAD_ACCESS (SIGSEGV) Exception Codes: EXC_I386_GPFLT Exception Note: EXC_CORPSE_NOTIFY

Termination Signal: Segmentation fault: 11 Termination Reason: Namespace SIGNAL, Code 0xb Terminating Process: exc handler [0]

Application Specific Information: Performing @selector(swellOnControlDoubleClick from sender REAPERSwell_listview 0x1206206e0

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread 0 reaper_sws_extension.dylib 0x000000011337e7e4 RprMidiEvent::getOffset() const + 4 1 reaper_sws_extension.dylib 0x0000000113381ce1 removeDuplicates(std::vector<RprMidiCC, std::allocator<RprMidiCC> >) + 193 2 reaper_sws_extension.dylib 0x0000000113384d0e RprMidiTake::~RprMidiTake() + 238 3 reaper_sws_extension.dylib 0x0000000113374979 GrooveTemplateHandler::ApplyGroove(int, double, double) + 937 4 reaper_sws_extension.dylib 0x000000011336e54e GrooveDialog::ApplySelectedGroove() + 814 5 reaper_sws_extension.dylib 0x0000000113203aca SWS_DockWnd::WndProc(unsigned int, unsigned long, long) + 954 6 com.cockos.reaper 0x00000001004f50bc SwellDialogDefaultWindowProc(HWND__, unsigned int, unsigned long, long) + 364 7 com.cockos.reaper 0x00000001004f16eb -[REAPERSwell_hwnd swellOnControlDoubleClick:] + 395 8 libsystem_trace.dylib 0x00007fffa67b73a7 _os_activity_initiate_impl + 53 9 com.apple.AppKit 0x00007fff8f074721 -[NSApplication(NSResponder) sendAction:to:from:] + 456 10 com.apple.AppKit 0x00007fff8eb58cc4 -[NSControl sendAction:to:] + 86 11 com.apple.AppKit 0x00007fff8ebcfd10 -[NSTableView _sendAction:to:row:column:] + 111 12 com.apple.AppKit 0x00007fff8ebce41c -[NSTableView mouseDown:] + 7196 13 com.cockos.reaper 0x0000000100504553 -[REAPERSwell_listview mouseUp:] + 227 14 com.apple.AppKit 0x00007fff8f1ec8de -[NSWindow(NSEventRouting) _reallySendEvent:isDelayedEvent:] + 1544 15 com.apple.AppKit 0x00007fff8f1ebf0a -[NSWindow(NSEventRouting) sendEvent:] + 541 16 com.apple.AppKit 0x00007fff8f070681 -[NSApplication(NSEvent) sendEvent:] + 1145 17 com.cockos.reaper 0x000000010035cef5 -[REAPERapp sendEvent:] + 789 18 com.apple.AppKit 0x00007fff8e8eb427 -[NSApplication run] + 1002 19 com.apple.AppKit 0x00007fff8e8b5e0e NSApplicationMain + 1237 20 com.cockos.reaper 0x000000010001102c main + 28 21 com.cockos.reaper 0x0000000100010ff4 start + 52

EDIT: Ouch, i experience hard Reaper crashes with this Reaper version, with quite many other SWS actions. This hurts.. I am guessing SWS needs an update, (at least on mac) to be compatible with this Reaper version.

OSX 10.12.6 Reaper 5.60repre2.

veto-gh commented 7 years ago

I have no experience of reading crashlogs but does this have something to do with double clicking items in listboxes? If so Justin just pushed a fix for SWELL to his latest WDL: https://github.com/justinfrankel/WDL/commit/607d7d6a2ffab7dab84488a4d3541801bae824fe

On linux it doesn't do anything before the fix but also doesn't crash. After the fix dbl-click works great.

Maybe somebody on OSX could test too so that we can close the issue.

cfillion commented 7 years ago

This change only affects Linux's SWELL (GTK). The macOS version (.mm files for Cocoa) already supports LBN_DBLCLK.

veto-gh commented 7 years ago

This change only affects Linux's SWELL (GTK).

Ah of course. That was brain blackout.

The macOS version (.mm files for Cocoa) already supports LBN_DBLCLK.

  • crash here -> RprMidiEvent::getOffset
  • called from: removeDuplicates
  • RprMidiTake::~RprMidiTake
  • GrooveTemplateHandler::ApplyGroove

Thank you for that cfillion!

dacameron commented 6 years ago

Original author here. Will take a look. If you have an example project or take which crashes, please post. Thanks.

Breeder commented 6 years ago

I'm also getting crashes but it seems it's related to specific take FX (my guess it's due to something in chunk created by the effect cause it's not crashing with all FXs)

Repro project and problematic JS: Download archive

Prepro steps:

  1. Put effect (sequencer_megababy_nm) from archive to: C:\Users\User\AppData\Roaming\REAPER\Effects\midi\sequencer_megababy_nm

  2. Open supplied project

  3. Open the only item in MIDI editor and run any of these commands: SWS/FNG: Cycle through CC lanes (keep lane heights constant) SWS/BR: Show only used CC lanes (detect 14-bit)

Instant crash here. Usin Win10x64, REAPER v5.96rc1, SWS 2.9.8

cfillion commented 6 years ago

Fixed in #1049! (It doesn't appear to be related to veto's crash.) I've uploaded a Win64 test build at https://cfillion.ca/files/sws/fix-fng-big-chunk-line.

(By the way, REAPER now supports loading effects located in an Effects folder next to the .RPP.)

Breeder commented 6 years ago

Beautiful, thank you!