ossia / score

ossia score, an interactive sequencer for the intermedia arts
https://ossia.io
Other
1.45k stars 101 forks source link

score segfaults if it ever stops outputting to Syphon #1492

Closed Rhys-T closed 5 months ago

Rhys-T commented 8 months ago

(Note: This is the issue I mentioned in #1491. As I said there, I ran into this on 3.1.11, and haven't had a chance to test whether it still happens in 3.1.12.)

If I have a Syphon output device, and score ever stops sending video to it - either because I stopped playback, or because it hits the end of the video-generating interval without looping - score crashes with a segmentation fault, apparently from trying to dereference a null pointer. Pausing playback does not cause this crash, nor does stopping before it ever reaches that interval. It happens whether or not there's any Syphon client on the other end.

Here's what seem to be the most relevant parts of the crash log. I can give the complete log file if you need it, but I'll need time to make sure I've cleaned out any personal info.

Crash log excerpts ``` Process: score [6869] Path: /Applications/score.app/Contents/MacOS/score Identifier: io.ossia.score Version: 3.1.11 (3.1.11) Code Type: X86-64 (Native) OS Version: Mac OS X 10.15.7 (19H2026) Crashed Thread: 0 Dispatch queue: com.apple.main-thread Exception Type: EXC_BAD_ACCESS (SIGSEGV) Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000000 Exception Note: EXC_CORPSE_NOTIFY Termination Signal: Segmentation fault: 11 Termination Reason: Namespace SIGNAL, Code 0xb Terminating Process: exc handler [6869] Thread 0 Crashed:: Dispatch queue: com.apple.main-thread 0 ??? 0x000000011f4f41ed 0 + 4820255213 1 GLEngine 0x00007fff3f9324e6 glDrawArrays_IMM_Exec + 898 2 io.ossia.score 0x00000001123366ed -[SyphonServerRendererLegacy drawFrameTexture:textureTarget:imageRegion:textureDimensions:flipped:] + 1021 3 io.ossia.score 0x0000000112331774 -[SyphonOpenGLServer publishFrameTexture:textureTarget:imageRegion:textureDimensions:flipped:] + 196 4 io.ossia.score 0x000000010a537f29 Gfx::SyphonNode::render() + 281 5 io.ossia.score 0x0000000111d3e647 QObject::event(QEvent*) + 103 6 io.ossia.score 0x000000011011a407 QApplicationPrivate::notify_helper(QObject*, QEvent*) + 247 7 io.ossia.score 0x000000011011b1d8 QApplication::notify(QObject*, QEvent*) + 440 8 io.ossia.score 0x0000000109c4cd06 SafeQApplication::notify(QObject*, QEvent*) + 22 9 io.ossia.score 0x0000000111cfce39 QCoreApplication::notifyInternal2(QObject*, QEvent*) + 169 10 io.ossia.score 0x0000000111e60f41 QTimerInfoList::activateTimers() + 961 11 io.ossia.score 0x000000010aa327f5 QCocoaEventDispatcherPrivate::activateTimersSourceCallback(void*) + 421 12 com.apple.CoreFoundation 0x00007fff34f24f92 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17 13 com.apple.CoreFoundation 0x00007fff34f24f31 __CFRunLoopDoSource0 + 103 14 com.apple.CoreFoundation 0x00007fff34f24d4b __CFRunLoopDoSources0 + 209 15 com.apple.CoreFoundation 0x00007fff34f23a7a __CFRunLoopRun + 927 16 com.apple.CoreFoundation 0x00007fff34f2307e CFRunLoopRunSpecific + 462 17 com.apple.HIToolbox 0x00007fff33b4faad RunCurrentEventLoopInMode + 292 18 com.apple.HIToolbox 0x00007fff33b4f7c5 ReceiveNextEventCommon + 584 19 com.apple.HIToolbox 0x00007fff33b4f569 _BlockUntilNextEventMatchingListInModeWithFilter + 64 20 com.apple.AppKit 0x00007fff321983c9 _DPSNextEvent + 883 21 com.apple.AppKit 0x00007fff32196c10 -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 1352 22 com.apple.AppKit 0x00007fff3218891e -[NSApplication run] + 658 23 io.ossia.score 0x000000010aa33647 QCocoaEventDispatcher::processEvents(QFlags) + 2631 24 io.ossia.score 0x0000000111d044d6 QEventLoop::exec(QFlags) + 486 25 io.ossia.score 0x0000000111cfd427 QCoreApplication::exec() + 119 26 io.ossia.score 0x0000000109bd88c0 main + 1328 27 libdyld.dylib 0x00007fff6eba9cc9 start + 1 ```

I'm seeing one other Syphon-related problem too, but I'm not sure if it has anything to do with this one or not. I'm including it here in case it's relevant, but I can report it as a separate issue if it isn't.

The other Syphon problem When I connect some nodes to a Syphon output, the image received by the client is covered by a white (or unpainted?) triangle, from the center to the top right corner to the bottom right corner. Other nodes work fine, and none of them have this problem when connected to a window instead. It doesn't seem to matter what client I use - it happens with both OBS Studio's Syphon source and [the example Simple Client](https://github.com/Syphon/Simple). Results so far: |Connection|Result| |-:|-| |Camera → Passthrough → Syphon|❌ White triangle| |Solid Color → Syphon|✔️ Works| |Solid Color → Passthrough → Syphon|❌ White triangle| |Color Bars[^cb] → Syphon|❌ White triangle| |Image file → Syphon|❌ White triangle| |Video file → Syphon|❌ White triangle| [^cb]: From: Visuals → ISF Shader → generator → Color Bars
jcelerier commented 7 months ago

Okay, I managed to get some time on a mac and fix this :) as well as the syphon input which was broken.

jcelerier commented 7 months ago

also could fix the white triangle thing, it's actually a bug in syphon (https://stackoverflow.com/questions/34011793/gpuimage-and-syphon)

Rhys-T commented 7 months ago

Just found Syphon/Syphon-Framework#31 which appears to be related to that StackOverflow question you linked. Might have some more info.

jcelerier commented 7 months ago

https://github.com/ossia/score/releases/tag/continuous can you try this version?

Rhys-T commented 7 months ago

No, unfortunately I can't - I'm still stuck on macOS 10.15, and that version seems to be built for macOS 11+. Sorry.

(This isn't the same problem I was running into with #1491. This version actually gives me a dialog from the system:

You can’t use this version of the application “ossia score” with this version of macOS.

You have macOS 10.15.7. The application requires macOS 11.0 or later.

and has the 🚫 symbol over its icon.)

jcelerier commented 7 months ago

argh :) okay, I'll try to downgrade the macintel build to 10.15. Note that at some point upgrade to 11.0 will be mandatory as it's necessary for us to support MIDI 2.0...

Rhys-T commented 6 months ago

Fair enough. I certainly don't expect the rest of the world to maintain Catalina compatibility forever just for me 😄

jcelerier commented 5 months ago

can you try https://github.com/ossia/score/releases/v3.1.13 ? the Intel build should work on 10.15

jcelerier commented 5 months ago

(with this bug fixed)

Rhys-T commented 5 months ago

3.1.13 seems to have solved both the segfault issue and the white triangle. Thanks!